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!
Antworten:
Ihr Hauptproblem bei der anfänglichen Berechnung ist, dass es keinen guten Grund gibt, warumesd(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))
Wenn wir als Zufallsvariable auf der logarithmischen Skala betrachten, ist hier g ( X ) =X g(X)=exp(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.
Wenn Sie ein CI für einen Parameter transformieren möchten, werden dazu die Endpunkte transformiert.
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.
quelle
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:
Sie und andere haben bereits darauf hingewiesen, dass dies aus mehreren Gründen nicht zutrifft. Verwenden Sie stattdessen:
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
quelle