Menghitung kesalahan standar setelah log-transform

19

Pertimbangkan satu set angka acak yang didistribusikan secara normal:

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

Kami ingin mengetahui rata-rata dan kesalahan standar pada rata-rata sehingga kami melakukan hal berikut:

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

Bagus!

Namun, mari kita asumsikan kita tidak perlu tahu bahwa distribusi asli kita mengikuti distribusi normal. Kami melakukan log-transformasi data dan melakukan perhitungan kesalahan standar yang sama.

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

Keren, tapi sekarang kita perlu melakukan transformasi balik untuk mendapatkan jawaban kita dalam unit TIDAK mencatat unit.

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

Pertanyaan saya: Mengapa, untuk distribusi normal, apakah kesalahan standar berbeda tergantung pada apakah itu dihitung dari distribusi itu sendiri atau jika itu diubah, dihitung, dan ditransformasikan kembali? Catatan: cara keluar yang sama terlepas dari transformasi.

EDIT # 1: Pada akhirnya, saya tertarik untuk menghitung interval rata-rata dan kepercayaan diri untuk data yang tidak terdistribusi normal, jadi jika Anda dapat memberikan beberapa panduan tentang bagaimana menghitung 95% CI pada data yang ditransformasikan termasuk cara mengubah kembali ke unit asal mereka , Saya akan sangat menghargainya!
AKHIR EDIT # 1

EDIT # 2: Saya mencoba menggunakan fungsi kuantil untuk mendapatkan interval kepercayaan 95%:

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]

Jadi, itu menyatu pada jawaban yang sama, mana yang baik. Namun, menggunakan metode ini tidak memberikan interval yang sama persis menggunakan data tidak normal dengan ukuran sampel "kecil":

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]

Metode mana yang akan dianggap "lebih benar". Saya berasumsi orang akan memilih estimasi yang paling konservatif?

Sebagai contoh, apakah Anda akan melaporkan hasil ini untuk data yang tidak normal (t) memiliki rata-rata 0,92 unit dengan interval kepercayaan 95% [0,211, 4,79]?
AKHIR EDIT # 2

Terima kasih atas waktunya!

bingung
sumber
1
SE adalah SD dibagi dengan akar kuadrat dari N. Bukan hanya N.
Penguin_Knight
3
Terima kasih! Saya memperbaiki masalah itu. Masalah saya masih tetap.
bingung

Jawaban:

12

Masalah utama Anda dengan perhitungan awal adalah tidak ada alasan mengapa harus seperti . Secara umum sangat berbeda.esd(log(Y))sd(Y)

Dalam beberapa situasi, Anda dapat menghitung perkiraan kasar dari melalui ekspansi Taylor .sd(Y)sd(log(Y))

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

Jika kita menganggap sebagai variabel acak pada skala log, di sini,Xg(X)=exp(X)

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

lalusd(exp(X))exp(μX)σX

Gagasan ini dibawa ke distribusi sampel.

Ini cenderung bekerja dengan baik jika standar deviasi sangat kecil dibandingkan dengan rata-rata, seperti dalam contoh Anda.

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

Jika Anda ingin mengubah CI untuk parameter , itu berfungsi dengan mengubah titik akhir.

Jika Anda mencoba mengubah kembali untuk mendapatkan estimasi titik dan interval untuk rata-rata pada skala asli (tidak dicatat), Anda juga akan ingin membatalkan estimasi estimasi rata-rata (lihat tautan di atas): , sehingga interval sampel besar ( sangat ) kasar untuk mean mungkin , di mana adalah batas atas dan bawah dari interval skala log, dan adalah beberapa perkiraan yang konsisten dari .( c . Exp ( L ) , c . Exp ( U ) ) L , U c 1 + σ 2 X / 2E(exp(X))exp(μX)(1+σX2/2)(c.exp(L),c.exp(U))L,Uc1+σX2/2

Jika data Anda mendekati normal pada skala log, Anda mungkin ingin memperlakukannya sebagai masalah menghasilkan interval untuk rata-rata lognormal.

Glen_b -Reinstate Monica
sumber
1
Terima kasih Glen_b. Saya tidak pernah mempelajarinya di kelas statistik.
Bingung
2
E[f(X)]f(μX)+f(μX)2σX2=exp(μX)(1+σX22)
exp(μx)σX2E[exp(X)]
Terima kasih @Dezmond. Ya itu benar. Saya akan menambahkan koreksi pada jawaban saya, bagian itu di dekat bagian akhir cukup berantakan.
Glen_b -Reinstate Monica
0

Sepertinya Anda ingin kesalahan standar geometrik secara efektif, mirip dengan rata-rata geometrik exp(mean(log(x))).

Meskipun mungkin masuk akal untuk menghitungnya sebagai:

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

Anda dan orang lain telah menunjukkan bahwa itu tidak benar karena beberapa alasan. Sebaliknya, gunakan:

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

Yang merupakan rata-rata geometrik dikalikan dengan kesalahan standar log. Ini seharusnya mendekati kesalahan standar "alami" dengan cukup baik.

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

dmp
sumber