Apakah ada cara mudah untuk menggabungkan dua model glm dalam R?

9

Saya memiliki dua model regresi logistik dalam R yang dibuat dengan glm(). Keduanya menggunakan variabel yang sama, tetapi dibuat menggunakan subset matriks yang berbeda. Apakah ada cara mudah untuk mendapatkan model rata-rata yang memberikan nilai koefisien dan kemudian menggunakannya dengan fungsi predict ()?

[maaf jika pertanyaan jenis ini harus diposting di situs pemrograman, beri tahu saya dan saya akan mengirimkannya di sana]

Terima kasih

Andrew
sumber
1
Anda mungkin menemukan beberapa informasi berguna di utas terkait di stats.stackexchange.com/q/8502/919 .
whuber
Dalam R, caretpaket ini memiliki beberapa fitur keren untuk menggabungkan model.
screechOwl

Jawaban:

2

Apakah Anda ingin mengambil rata-rata probabilitas yang diprediksi, atau rata-rata koefisien? Mereka akan memberikan hasil yang berbeda, karena regresi logistik melibatkan transformasi nonlinier dari prediktor linier.

Fungsi untuk melakukan keduanya adalah seperti ini. Tetapkan avguntuk "prob"mendapatkan yang pertama, atau yang lain untuk yang terakhir.

pred_comb <- function(mod1, mod2, dat, avg="prob", ...)
{
    xb1 <- predict(mod1, dat, type="link", ...)
    xb2 <- predict(mod2, dat, type="link", ...)
    if(avg == "prob")
        (plogis(xb1) + plogis(xb2))/2
    else plogis((xb1 + xb2)/2)
}
Hong Ooi
sumber
@Hong Ooi: Terima kasih! Kode ini benar-benar berguna, dan akan melakukan triknya, tetapi apa yang saya tuju utamanya adalah fungsi yang akan memberikan model R baru yang kemudian dapat saya prediksi () nanti dalam alur kerja. Namun, saya pikir fungsi Anda cukup elegan, dan seperti cara Anda mengaturnya untuk memberikan probabilitas.
Andrew
@Andrew Anda dapat memanfaatkan pemrograman berorientasi objek R untuk ini. Masukkan dua model Anda ke dalam daftar, dan berikan kelas, katakanlah glm_2. Panggil fungsi di atas predict.glm_2dan Anda kemudian dapat menggunakan predict()objek Anda sesuai kebutuhan.
Hong Ooi
2
Mengapa rata-rata koefisien sesuai? Jika kedua dataset memiliki ukuran yang berbeda, maka tentunya setidaknya beberapa bentuk rata-rata tertimbang harus digunakan.
whuber
@ Hong - terima kasih, saya akan coba ini. @whuber - terima kasih telah menunjukkan ini. Jika dua set data saya memiliki ukuran yang sama, berarti mempertimbangkan masalah (saya tidak pernah memikirkan ini sebelumnya). Jika mereka berbeda, apakah saya hanya membobot rasio ukuran (mis. Jika satu dua kali lebih besar, apakah saya memberikannya dua kali berat)?
Andrew
@Andrew Memang benar untuk bobot berdasarkan data hanya jika nilai variabel independen sama di kedua himpunan bagian. Untuk pendekatan yang lebih baik (yang juga secara teoritis valid), lihat utas yang saya rujuk dalam komentar untuk pertanyaan Anda.
whuber