R: menghitung nilai-p yang diberikan Chi Kuadrat dan Derajat Kebebasan


11

Bagaimana saya bisa menghitung nilai p yang diberikan Chi Kuadrat dan Derajat Kebebasan? Sebagai contoh, berapakah nilai p yang tepat dari Chi Squared = 15 dengan df = 2?


Untuk menentukan nilai-p Anda perlu menentukan apakah itu satu sisi atau dua sisi. Untuk dua sisi itu adalah P (| X |> 15) dan untuk ekor bawah satu sisi itu adalah P (X <-15) dan P (X.> 15) untuk ekor atas satu sisi. X adalah variabel acak chi-square dengan 2 derajat kebebasan.
Michael R. Chernick

Itu dua sisi. Apa yang akan menjadi kode dalam R untuk melakukan tes ini?
mat

Saya tidak tahu R dengan baik. Saya akan berpikir ada fungsi chi-square yang bisa Anda panggil. Selain dari R Anda bisa mendapatkan nilai dari tabel distribusi chi-square yang tersedia di banyak buku stat dasar. Satu-satunya masalah dengan tabel adalah bahwa 15 mungkin tidak muncul dalam hal ini Anda bisa mendekati dengan intrtpolasi.
Michael R. Chernick

Biarkan saya memperbaiki sendiri. Chi-square tidak negatif. Untuk tes satu sisi Anda ingin P (X> 15). Dalam buku saya P (X> 13.815) adalah 0,001. Jadi nilai-p adalah <0,001.
Michael R. Chernick

2
(1) Jarang untuk tes Chi-square menjadi dua sisi: apa aplikasi Anda? (2) (cc @michael) Seseorang tidak akan menyisipkan ke dalam ekor; orang akan memperkirakan integral. BTW, ini adalah integral integral, karena distribusi Chi-squared dengan 2 DF adalah distribusi Eksponensial: Anda harus memperoleh untuk probabilitas ekor atas. Lihat en.wikipedia.org/wiki/Chi-squared_distribution . e15/2
whuber

Jawaban:


18

Dalam statistik terapan, statistik uji chisquared muncul sebagai jumlah residu kuadrat, atau dari jumlah efek kuadrat atau dari perbedaan log-kemungkinan. Dalam semua aplikasi ini, tujuannya adalah untuk menguji apakah beberapa parameter vektor adalah nol vs alternatif yang bukan nol dan statistik chisquare terkait dengan ukuran kuadrat dari efek yang diamati. Nilai p yang diperlukan adalah probabilitas ekor kanan untuk nilai chisquare, yang dalam R untuk contoh Anda adalah:

> pchisq(15, df=2, lower.tail=FALSE)
[1] 0.0005530844

Untuk nilai df atau statistik lainnya, Anda jelas hanya menggantinya dengan kode di atas.

Semua fungsi probabilitas kumulatif dalam R menghitung probabilitas ekor kiri secara default. Namun mereka juga memiliki lower.tailargumen, dan Anda selalu dapat mengatur ini FALSEuntuk mendapatkan probabilitas ekor yang tepat. Ini adalah praktik yang baik untuk melakukan ini daripada menghitung seperti yang Anda lihat di beberapa buku teks dasar.1p


1
Apakah mungkin untuk mundur? Turunkan nilai Chi-Square menggunakan nilai-P dan derajat kebebasan menggunakan kode R?
Eric

2
@Eric Cukup ketik yang berikut ini di R: help (qchisq)
Gordon Smyth

3

R memiliki seperangkat fungsi probabilitas untuk kerapatan atau massa dalam bentuk d*(misalnya dbeta,, dchisq), dan distribusi dalam bentuk p*(misalnya pf,, pgamma). Anda mungkin ingin memulai dari sana.


Apakah mungkin untuk mundur? Turunkan nilai Chi-Square menggunakan nilai-P dan derajat kebebasan menggunakan kode R?
Eric

0

Ya, adalah mungkin untuk menghitung nilai chi-square untuk nilai-p yang diberikan (p) dan derajat kebebasan (df). Di bawah ini adalah cara melakukannya:

Demi verifikasi, pertama-tama saya menghitung p untuk nilai chi-square yang diberikan = 1,1 dan df = 1:

Larutan:

pchisq (1.1, df = 1, lower.tail = FALSE) # jawabannya adalah p = 0.2942661

Sekarang, untuk mundur dengan menggunakan p dan df untuk menghitung nilai chi-square, saya menggunakan p = 0,2942661 yang saya peroleh dari atas dan df = 1 di atas:

Larutan:

qchisq (0.2942661, 1, lower.tail = FALSE) # jawabannya adalah 1.1 seperti pada solusi pertama.

Jadi, gunakan contoh Chi Squared = 15 dengan df = 2, solusinya di bawah:

Solusi: hitung nilai-p

pchisq (15, df = 2, lower.tail = FALSE) # answer: p = 0,0005530844

gunakan p = 0,0005530844 dan df = 2 untuk mendapatkan kembali nilai chi-square

qchisq (0,0005530844, 2, lower.tail = FALSE) # answer: chi-square = 15

Semoga ini membantu!!!


-3

Mencoba,

pchisq(chi,df)

dalam contoh Anda,

pchisq(15,2)

[1] 0.9994469

1
Saya tidak berpikir ini adalah nilai-p. Mungkinkah itu kemungkinan kumulatif? Seperti yang dikatakan whuber, nilai p akan exp (-15/2) yang jauh lebih kecil dari 0,999469.
Michael R. Chernick

7
Ini salah. Bahkan tidak lulus uji bau. Pertimbangkan bahwa nilai yang diharapkan dari distribusi chi-squared adalah df, dan variansnya adalah 2 * df ( wikipedia ), jadi 15 adalah ~ 9 SD dari rata-rata. Itu seharusnya memberitahu Anda ada sesuatu yang salah di sini. Intinya, Anda menggunakan ini untuk melakukan tes 1-tail bahwa kecocokan adalah 'terlalu bagus' (lih. Sini ). Di bawah penggunaan khas chi-squared, yang Anda inginkan pchisq(15, 2, lower.tail=FALSE), atau 1-pchisq(15, 2), yang 0.0005530844.
gung - Reinstate Monica

(Yang mengatakan, ini adalah jawaban, bahkan jika salah, jadi itu tidak boleh dihapus karena bukan jawaban. Aku memilih voting OK .)
gung - Reinstate Monica

@gung +1 Saya menambahkan jawaban saya sendiri hari ini tetapi belum membaca komentar Anda terlebih dahulu, yang memberikan solusi jelas yang sama.
Gordon Smyth

Apakah mungkin untuk mundur? Turunkan nilai Chi-Square menggunakan nilai-P dan derajat kebebasan menggunakan kode R?
Eric
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.