Dua metode ini untuk menghitung nilai p harus setara:
t.test(rats.drug,mu=1.2)$p.value
2*pt((mean(rats.drug)-1.2)*sqrt(n)/sd(rats.drug),df=n-1)
Masalah dengan metode kedua adalah bahwa ada risiko mendapatkan nilai lebih besar dari (sebenarnya hingga ):
2*pt((1.5-1.2)*sqrt(100)/.5,df=100-1)
[1] 2
Ini tentu saja bisa diperbaiki oleh
2*pt((1.5-1.2)*sqrt(100)/.5,df=100-1,lower=F)
[1] 3.245916e-08
Pertanyaan saya
Jelas algoritma fungsi t-test cukup cerdas untuk membedakan kedua kasus ini (apakah rata-rata sampel lebih besar atau lebih kecil dari rata-rata yang diberikan). Apakah ada metode mudah untuk mereplikasi perhitungan nilai-p secara manual seperti yang dilakukan oleh fungsi uji-t?
Solusi saya saat ini adalah pernyataan if yang memeriksa apakah nilai yang dihasilkan lebih besar dari dan dalam hal ini melakukan perhitungan yang sama lagi dengan opsi = F lebih rendah tapi mungkin ada cara yang lebih baik.
getAnywhere(t.test.default)
. Anda akan menemukannya dipval <- 2 * pt(-abs(tstat), df)
sana.