Saya memiliki dataset sampel dengan 31 nilai. Saya menjalankan uji dua sisi menggunakan R untuk menguji apakah rata-rata sebenarnya sama dengan 10:
t.test(x=data, mu=10, conf.level=0.95)
Keluaran:
t = 11.244, df = 30, p-value = 2.786e-12
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
19.18980 23.26907
sample estimates:
mean of x
21.22944
Sekarang saya mencoba melakukan hal yang sama secara manual:
t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data)))
p.value = dt(t.value, df=length(lengths-1))
Nilai-t yang dihitung menggunakan metode ini sama dengan output oleh fungsi t-test R. Nilai p, bagaimanapun, keluar menjadi 3.025803e-12.
Ada ide yang saya lakukan salah?
Terima kasih!
SUNTING
Ini adalah kode R lengkap, termasuk dataset saya:
# Raw dataset -- 32 observations
data = c(21.75, 18.0875, 18.75, 23.5, 14.125, 16.75, 11.125, 11.125, 14.875, 15.5, 20.875,
17.125, 19.075, 25.125, 27.75, 29.825, 17.825, 28.375, 22.625, 28.75, 27, 12.825,
26, 32.825, 25.375, 24.825, 25.825, 15.625, 26.825, 24.625, 26.625, 19.625)
# Student t-Test
t.test(x=data, mu=10, conf.level=0.95)
# Manually calculate p-value
t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data)))
p.value = dt(t.value, df=length(data) - 1)
r
statistical-significance
t-test
p-value
herbps10
sumber
sumber
abs
.Saya memposting ini sebagai komentar tetapi ketika saya ingin menambahkan sedikit lebih banyak di edit, itu menjadi terlalu lama sehingga saya memindahkannya ke sini.
Sunting : Statistik pengujian dan df Anda benar. Jawaban lain mencatat masalah dengan perhitungan area ekor pada panggilan ke
pt()
, dan penggandaan untuk dua-ekor, yang menyelesaikan perbedaan Anda. Namun demikian saya akan meninggalkan diskusi / komentar saya sebelumnya karena membuat poin yang relevan lebih umum tentang nilai-p di ekor ekstrim:Mungkin saja Anda tidak melakukan kesalahan apa pun dan masih mendapatkan perbedaan, tetapi jika Anda memposting contoh yang dapat direproduksi, Anda dapat menyelidiki lebih lanjut apakah Anda memiliki kesalahan (misalnya dalam df).
Hal-hal ini dihitung dari perkiraan yang mungkin tidak terlalu akurat di bagian paling ekstrem.
Jika kedua hal tersebut tidak menggunakan perkiraan yang identik, mereka mungkin tidak setuju secara dekat, tetapi kurangnya kesepakatan tidak menjadi masalah (untuk wilayah ekor yang tepat sejauh itu menjadi angka yang bermakna, asumsi yang diperlukan harus berpegang pada derajat yang mengejutkan dari ketepatan). Apakah Anda benar-benar memiliki normalitas, kemandirian yang tepat, varian yang konstan?
sumber
Cara terbaik untuk menghitungnya secara manual adalah:
sumber
Saya sangat suka jawaban @ Harun yang diberikan, bersama dengan
abs
komentar. Saya menemukan konfirmasi berguna untuk dijalankanpt(1.96, 1000000, lower.tail = F) * 2
yang menghasilkan
0.04999607
.Di sini, kami menggunakan properti terkenal bahwa 95% dari area di bawah distribusi normal terjadi pada ~ 1,96 standar deviasi, sehingga output ~ 0,05 memberikan nilai-p kami. Saya menggunakan 1000000 karena ketika N sangat besar, distribusi t hampir sama dengan distribusi normal. Menjalankan ini memberi saya kenyamanan dalam solusi @ Aaron.
sumber