Obliczanie błędu standardowego po transformacji dziennika


19

Rozważ losowy zestaw liczb, które są zwykle dystrybuowane:

x <- rnorm(n=1000, mean=10)

Chcielibyśmy poznać średnią i błąd standardowy średniej, dlatego wykonujemy następujące czynności:

se <- function(x) { sd(x)/sqrt(length(x)) }
mean(x) # something near 10.0 units
se(x)   # something near 0.03 units

Świetny!

Załóżmy jednak, że niekoniecznie wiemy, że nasza pierwotna dystrybucja przebiega normalnie. Logujemy transformacje danych i wykonujemy te same standardowe obliczenia błędów.

z <- log(x, base=10)
mean(z) # something near 1 log units
se(z)   # something near 0.001 log units

Fajnie, ale teraz musimy dokonać transformacji wstecznej, aby uzyskać odpowiedź w jednostkach NIE w dziennikach.

10^mean(z) # something near 10.0 units
10^se(z)   # something near 1.00 units

Moje pytanie: Dlaczego w przypadku rozkładu normalnego błąd standardowy różni się w zależności od tego, czy został obliczony na podstawie samego rozkładu, czy też został przekształcony, obliczony i poddany transformacji wstecznej? Uwaga: środki wyszły tak samo, niezależnie od transformacji.

EDYCJA nr 1: Ostatecznie jestem zainteresowany obliczeniem średniej i przedziałów ufności dla danych normalnie rozłożonych, więc jeśli możesz podać jakieś wskazówki, jak obliczyć 95% CI na przekształconych danych, w tym jak przekształcić wstecz na ich jednostki macierzyste , Doceniłbym to!
EDYCJA KOŃCOWA nr 1

EDYCJA 2: Próbowałem użyć funkcji kwantylu, aby uzyskać 95% przedziały ufności:

quantile(x, probs = c(0.05, 0.95))     # around [8.3, 11.6]
10^quantile(z, probs = c(0.05, 0.95))  # around [8.3, 11.6]

Tak więc zbiega się to z tą samą odpowiedzią, co jest dobre. Jednak użycie tej metody nie zapewnia dokładnie tego samego interwału przy użyciu niestandardowych danych z „małymi” wielkościami próbek:

t <- rlnorm(10)
mean(t)                            # around 1.46 units
10^mean(log(t, base=10))           # around 0.92 units
quantile(t, probs = c(0.05, 0.95))                     # around [0.211, 4.79]
10^(quantile(log(t, base=10), probs = c(0.05, 0.95)))  # around [0.209, 4.28]

Którą metodę można uznać za „bardziej poprawną”. Zakładam, że ktoś wybrałby najbardziej zachowawczy szacunek?

Jako przykład, czy zgłosiłbyś ten wynik dla danych nienormalnych (t) jako mających średnią 0,92 jednostki z 95% przedziałem ufności wynoszącym [0,211, 4,79]?
KONIEC EDYCJI # 2

Dziękuję za Twój czas!


1
SE to SD podzielone przez pierwiastek kwadratowy z N. Nie tylko N.
Penguin_Knight

3
Dzięki! Naprawiłem ten problem. Pozostaje mi jednak problem.
zbity z tropu

Odpowiedzi:


12

Twój główny problem z początkowymi obliczeniami polega na tym, że nie ma dobrego powodu, dla którego powinien być podobny do . Na ogół jest zupełnie inaczej.esd(log(Y))sd(Y)

W niektórych sytuacjach można obliczyć przybliżone przybliżenie z poprzez rozszerzenie Taylora .sd(Y)sd(log(Y))

Var(g(X))(g(μX))2σX2.

Jeśli uznamy za zmienną losową w skali logarytmicznej, tutajXg(X)=exp(X)

JeśliVar(exp(X))exp(μX)2σX2

następniesd(exp(X))exp(μX)σX

Te pojęcia przenoszą się na rozkłady próbkowania.

Zwykle działa to dość dobrze, jeśli odchylenie standardowe jest naprawdę małe w porównaniu ze średnią, jak w twoim przykładzie.

> mean(y)
[1] 10
> sd(y)
[1] 0.03
> lm=mean(log(y))
> ls=sd(log(y))
> exp(lm)*ls
[1] 0.0300104 

Jeśli chcesz przekształcić element CI dla parametru , działa to poprzez transformację punktów końcowych.

Jeśli próbujesz przekształcić z powrotem w celu uzyskania oszacowania punktu i interwału dla średniej na oryginalnej (niezalogowanej) skali, będziesz również chciał rozdzielić oszacowanie średniej (patrz powyższy link): , więc ( bardzo ) przybliżony duży przedział prób dla średniej może wynosić , gdzie są górną i dolną granicą przedziału skali logarytmicznej, a jest pewnym spójnym oszacowaniem .( c . Exp ( L ) , c . Exp ( U ) ) L , U c 1 + σE(exp(X))exp(μX)(1+σX2/2)(c.exp(L),c.exp(U))L,Uc1+σX2/2

Jeśli twoje dane są w przybliżeniu normalne w skali logów, możesz potraktować je jako problem tworzenia przedziału dla logarytmicznej średniej.


1
Dzięki Glen_b. Nigdy nie nauczyłem się tego w klasie statystyki.
zbity z tropu

2
Nie mam reputacji do komentowania, ale na wypadek, gdyby w tym poście wydarzyła się kolejna ciekawa dusza, od spojrzenia na link do rozszerzenia Taylora w Wikipedii, poprawne oszacowanie średniej powinno być W przeciwnym razie, jeśli , możesz nie docenićexp(μx)σ2XE[exp(X)]
E[f(X)]f(μX)+f(μX)2σX2=exp(μX)(1+σX22)
exp(μx)σX2E[exp(X)]
deasmhumnha

Dzięki @Dezmond. Tak, to jest poprawne. Dodam poprawkę do mojej odpowiedzi, ta część pod koniec jest dość zniekształcona.
Glen_b

0

Wygląda na to, że skutecznie potrzebujesz standardowego błędu geometrycznego, zbliżonego do średniej geometrycznej exp(mean(log(x))).

Chociaż może się wydawać rozsądne obliczenie tego jako:

exp(sd(log(x)/sqrt(n-1)))

Ty i inni już zauważyliście, że to nie jest poprawne z kilku powodów. Zamiast tego użyj:

exp(mean(log(x))) * (sd(log(x))/sqrt(n-1))

Jest to średnia geometryczna pomnożona przez błąd standardu logarytmicznego. Powinno to całkiem dobrze przybliżyć naturalny błąd standardowy.

Źródło: https://www.jstor.org/stable/pdf/2235723.pdf

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.