Bantu saya memahami nilai- di Bayesian glm


13

Saya mencoba menjalankan Bayesian logit pada data di sini . Saya menggunakan bayesglm()dalam armpaket di R. Pengodean cukup mudah:

df = read.csv("http://dl.dropbox.com/u/1791181/bayesglm.csv", header=T)
library(arm)
model = bayesglm(PASS ~ SEX + HIGH, family=binomial(link="logit"), data=df)

summary(model) memberikan hasil sebagai berikut:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.10381    0.10240   1.014    0.311    
SEXMale      0.02408    0.09363   0.257    0.797    
HIGH        -0.27503    0.03562  -7.721 1.15e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2658.2  on 1999  degrees of freedom
Residual deviance: 2594.3  on 2000  degrees of freedom
AIC: 2600.3

Tolong ajak saya melewati ini. Saya mengerti bahwa kode ini menggunakan prior yang sangat lemah (karena saya tidak menentukan cara sebelumnya) sehingga output akan secara praktis sama jika saya menggunakan glm()bukan bayesglm(). Tetapi hasilnya harus tetap dalam semangat Bayesian, kan? Apa nilai- dan nilai- sini? Bukankah ini alat inferensi yang sering? Apakah mereka ditafsirkan berbeda di sini?pz


Ini adalah komentar dan bukan jawaban, tapi inilah yang masuk akal bagi saya. Anda mendapatkan perkiraan yang mungkin merupakan nilai yang dimaksimalkan distribusi posterior. Mungkin juga mereka hanyalah alat posterior? Layak dicoba jika Anda bisa. Namun, apa pun detail pastinya, begitu Anda memiliki beberapa taksiran, Anda dapat mengujinya dengan Estimate / Std yang biasa. Kesalahan -> prosedur z-skor yang bekerja jika posterior cukup dekat dengan normal (masuk ke normal dalam beberapa kondisi yang biasanya berlaku).
Erik

Erik ... Anda benar: koefisien memang merupakan sarana kepadatan posterior. Pertanyaan saya adalah tentang nilai p dan z. Apa yang mereka wakili di sini?
user3671

Baik. Jika Anda memiliki kepadatan yang kira-kira terdistribusi normal, Anda dapat menguji apakah rata-rata itu nol dengan mengambil z-score = mean / standar deviasi dari distribusi dan membandingkannya dengan distribusi normal standar. Kemudian Anda melihat betapa tidak mungkin nilai Anda atau nilai yang lebih besar akan berada di bawah distribusi normal standar -> nilai-p. Lihat skor-z di Wikipedia untuk detailnya.
Erik

Baiklah. Tapi mengapa repot-repot melakukan itu di lingkungan Bayesian? Dalam inferensi Bayesian, estimasi titik adalah tebakan terbaik saya tentang parameter acak, jadi tidak perlu mengujinya. Paling-paling, saya dapat memasukkan "interval kredibel" yang setara dengan "interval kepercayaan" yang sering terjadi tetapi yang penafsiran statistiknya sangat berbeda. Ini bagian yang membingungkan tentang ringkasan () keluaran. Semangat itu adalah Bayesian, tetapi hasilnya sering?
user3671

Satu hal adalah bahwa estimasi yang Anda dapatkan akan berbeda, karena Anda menggunakan sebelumnya. Dan sementara estimasi titik adalah "tebakan terbaik" jika Anda ingin menunjukkan dengan cara Bayesian bahwa sesuatu memiliki efek Anda akan mencoba untuk menunjukkan bahwa interval yang kredibel tidak mengandung nol. Ketika Anda memperkirakan posterior dengan normal dengan mean yang sama dan sd (asymptotically correct) maka interval kredibilitas (1-p / 2) adalah interval kredibilitas simetris terbesar yang mengandung nol, jadi jawaban Anda pada dasarnya sama. P adalah nilai-p yang dinyatakan di atas.
Erik

Jawaban:


16

Pertanyaan bagus! Meskipun ada nilai-p Bayesian , dan salah satu penulis paket lengan adalah advokat, apa yang Anda lihat dalam output Anda bukan nilai-p Bayesian. Periksa kelasmodel

class(model)
"bayesglm" "glm"      "lm" 

dan Anda dapat melihat bahwa bayesglm kelas mewarisi dari glm. Selain itu, pemeriksaan paket lengan tidak menunjukkan metode ringkasan khusus untuk objek bayesglm. Jadi ketika Anda melakukannya

summary(model)

Anda benar-benar melakukannya

summary.glm(model)

dan sering mendapatkan interpretasi hasil. Jika Anda ingin perspektif Bayesian lebih banyak fungsi di lengan adalahdisplay()


+1 Jawaban luar biasa! Ini adalah masalah dengan R, ada begitu banyak ahli statistik yang sangat cerdas yang menulis kode mengerikan yang membuat ranjau darat seperti ini berada di sekitarnya.
Bogdanovist

Sepertinya pilihan yang disengaja pada bagian desainer, daripada pengawasan.
atiretoo - mengembalikan monica

Setelah membaca tautan, saya setuju dengan maksudnya, tetapi dalam hal itu ringkasan () seharusnya diimplementasikan kembali hanya untuk memanggil tampilan () daripada memberikan hasil omong kosong tanpa peringatan. Orang yang mengajukan pertanyaan ini tersandung oleh kode yang memecahkan model pengguna untuk R yang telah dibuat oleh setiap objek lain yang pernah mereka gunakan. Itu praktik pemrograman yang mengerikan.
Bogdanovist

2
Terima kasih banyak, atiretoo. Ini menimbulkan pertanyaan lain. Apa perbedaan antara tampilan () dan ringkasan ()? Tampak bagi saya bahwa output dari yang pertama hanya output dari yang terakhir, kurang dua kolom, dan dibulatkan menjadi 2 digit. Tampaknya begitu, dari pos Gelman yang Anda tautkan di atas.
user3671

Ya, dan dari diskusi di blog Andrew Gelman, sepertinya mereka akan memperbaikinya dalam versi paket lengan yang akan datang.
atiretoo - mengembalikan monica
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.