Berechnung des Standardfehlers nach einer Log-Transformation


19

Betrachten Sie eine zufällige Menge von Zahlen, die normalerweise verteilt sind:

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

Wir möchten den Mittelwert und den Standardfehler des Mittelwerts kennen, also machen wir Folgendes:

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

Groß!

Nehmen wir jedoch an, wir wissen nicht unbedingt, dass unsere ursprüngliche Verteilung einer Normalverteilung folgt. Wir protokollieren die Daten und führen die gleiche Standardfehlerberechnung durch.

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

Cool, aber jetzt müssen wir eine Rücktransformation durchführen, um unsere Antwort in Einheiten zu erhalten, NICHT in Log-Einheiten.

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

Meine Frage: Warum unterscheidet sich bei einer Normalverteilung der Standardfehler davon, ob er aus der Verteilung selbst berechnet wurde oder ob er transformiert, berechnet und rücktransformiert wurde? Hinweis: Die Mittelwerte waren unabhängig von der Transformation gleich.

EDIT # 1: Letztendlich bin ich daran interessiert, einen Mittelwert und Konfidenzintervalle für nicht normalverteilte Daten zu berechnen. Wenn Sie also eine Anleitung zur Berechnung von 95% -KI für transformierte Daten geben können, einschließlich der Rücktransformation in ihre nativen Einheiten , Ich würde es schätzen!
ENDE BEARBEITEN # 1

EDIT # 2: Ich habe versucht, mit der Quantil-Funktion die 95% -Konfidenzintervalle zu erhalten:

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]

Das lief also auf die gleiche Antwort hinaus, was gut ist. Bei Verwendung dieser Methode wird jedoch nicht dasselbe Intervall bei Verwendung von nicht normalen Daten mit "kleinen" Stichprobengrößen bereitgestellt:

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]

Welche Methode wäre "richtiger"? Ich nehme an, man würde die konservativste Schätzung wählen?

Würden Sie dieses Ergebnis als Beispiel für die nicht normalen Daten (t) mit einem Mittelwert von 0,92 Einheiten mit einem 95% -Konfidenzintervall von [0,211, 4,79] angeben?
ENDE BEARBEITEN # 2

Vielen Dank für Ihre Zeit!


1
SE ist SD geteilt durch die Quadratwurzel von N. Nicht nur N.
Penguin_Knight

3
Vielen Dank! Ich habe das Problem behoben. Das Problem, das ich habe, bleibt jedoch bestehen.
verblüfft

Antworten:


12

Ihr Hauptproblem bei der anfänglichen Berechnung ist, dass es keinen guten Grund gibt, warum esd(log(Y)) wie . Es ist im Allgemeinen ganz anders.sd(Y)

In einigen Situationen können Sie eine grobe Näherung von aus sd ( logsd(Y) über dieTaylor-Erweiterung.sd(log(Y))

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

Wenn wir als Zufallsvariable auf der logarithmischen Skala betrachten, ist hier g ( X ) =Xg(X)=exp(X)

Var(exp(X))exp(μX)2σX2

sd(exp(X))exp(μX)σX

Diese Begriffe wirken sich auf Stichprobenverteilungen aus.

Dies funktioniert in der Regel recht gut, wenn die Standardabweichung im Vergleich zum Mittelwert, wie in Ihrem Beispiel, sehr klein ist.

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

Wenn Sie ein CI für einen Parameter transformieren möchten, werden dazu die Endpunkte transformiert.

E(exp(X))exp(μX)(1+σX2/2)(c.exp(L),c.exp(U))L,Uc1+σX2/2

Wenn Ihre Daten auf der Protokollskala ungefähr normal sind, möchten Sie sie möglicherweise als Problem bei der Erstellung eines Intervalls für einen logarithmischen Mittelwert behandeln.


1
Danke Glen_b. Das habe ich im Statistikunterricht nie gelernt.
verblüfft

2
Ich habe nicht den Ruf, einen Kommentar abzugeben, aber für den Fall, dass in diesem Beitrag eine andere neugierige Seele auftaucht, sollte die korrekte Schätzung für den Mittelwert , wenn Sie sich den Taylor-Erweiterungslink auf Wikipedia ansehen.
E[f(X)]f(μX)+f(μX)2σX2=exp(μX)(1+σX22)
exp(μx)σX2E[exp(X)]

Danke @Dezmond. Ja das ist richtig. Ich werde meiner Antwort eine Korrektur hinzufügen, dass ein Teil davon gegen Ende ziemlich verstümmelt ist.
Glen_b

0

Es hört sich so an, als wollten Sie effektiv den geometrischen Standardfehler, ähnlich dem geometrischen Mittelwert exp(mean(log(x))).

Es mag zwar vernünftig erscheinen, dies wie folgt zu berechnen:

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

Sie und andere haben bereits darauf hingewiesen, dass dies aus mehreren Gründen nicht zutrifft. Verwenden Sie stattdessen:

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

Welches ist das geometrische Mittel multipliziert mit dem logarithmischen Standardfehler? Dies sollte sich dem "natürlichen" Standardfehler ziemlich gut annähern.

Quelle: https://www.jstor.org/stable/pdf/2235723.pdf

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.