R implementasi koefisien determinasi parsial


9

Adakah yang punya saran atau paket yang akan menghitung koefisien determinasi parsial?

Koefisien determinasi parsial dapat didefinisikan sebagai persentase variasi yang tidak dapat dijelaskan dalam model yang direduksi, tetapi dapat dijelaskan oleh prediktor yang ditentukan dalam model lengkap (er). Koefisien ini digunakan untuk memberikan wawasan tentang apakah satu atau lebih prediktor tambahan dapat berguna dalam model regresi yang lebih lengkap.

Perhitungan untuk parsial r ^ 2 relatif lurus ke depan setelah memperkirakan dua model Anda dan menghasilkan tabel ANOVA untuk mereka. Perhitungan untuk parsial r ^ 2 adalah:

(SSEreduced - SSEfull) / SSEreduced

Saya telah menulis fungsi yang relatif sederhana ini yang akan menghitung ini untuk model regresi linier berganda. Saya tidak terbiasa dengan struktur model lain di R di mana fungsi ini mungkin tidak berkinerja juga:

partialR2 <- function(model.full, model.reduced){
    anova.full <- anova(model.full)
    anova.reduced <- anova(model.reduced)

    sse.full <- tail(anova.full$"Sum Sq", 1)
    sse.reduced <- tail(anova.reduced$"Sum Sq", 1)

    pR2 <- (sse.reduced - sse.full) / sse.reduced
    return(pR2)

    }

Setiap saran atau tip tentang fungsi yang lebih kuat untuk menyelesaikan tugas ini dan / atau implementasi kode di atas yang lebih efisien akan sangat dihargai.


2
Saya sarankan mencoba model lain dan lihat apakah kodenya berfungsi atau tidak. R biasanya bagus, jadi anova harus mengembalikan hal serupa untuk model yang berbeda. Masalahnya adalah dengan formula awal Anda. Apakah itu berlaku untuk model lain? Jika tidak, maka tidak ada gunanya mendapatkan kode untuk bekerja, lebih lanjut kode harus mengeluarkan peringatan bahwa itu digunakan untuk model di mana formula tidak berlaku.
mpiktas

Saya tidak benar-benar melihat pertanyaannya. Anda menginginkan fungsi yang menghitung R2 parsial, tetapi Anda sudah memilikinya. Apakah Anda tahu sensitivitas paket (tidak ada R2 parsial tetapi pcc yang merupakan kasus tertentu diterapkan)?
robin girard

@robin - Saya minta maaf jika pertanyaan saya tidak jelas. Saya tertarik untuk menemukan paket yang berisi perhitungan ini (karena mungkin berisi banyak fungsi bermanfaat lainnya yang akan berguna) dan / atau saran tentang cara meningkatkan fungsi yang saya tulis di atas. Jelas tidak ada pengecekan kesalahan, dan mungkin tidak berlaku untuk semua tipe model.
Chase

Saya menyarankan pertanyaan ini dimigrasikan ke SE. Inti pertanyaannya adalah masalah implementasi, bukan masalah statistik.
caracal

@caracal - apa pun yang Anda inginkan. Saya tahu ada cukup banyak diskusi tentang di mana garis di pasir harus ditarik antara SO dan CV tentang pertanyaan terkait R. Saya juga tidak memiliki preferensi yang kuat. Pekerjaan saya telah menjauhkan saya dari masalah khusus ini untuk bagian terakhir, tetapi akan mengunjunginya lagi dalam beberapa minggu mendatang sehingga saya dapat menemukan solusi yang lebih baik sendiri. Saya juga baik-baik saja membiarkan pertanyaan memudar ke eter ...
Chase

Jawaban:


0

Nah, r ^ 2 benar-benar hanya kovarians yang dikuadratkan pada produk varian, jadi Anda mungkin dapat melakukan sesuatu seperti cov (Yfull, Ytrue) / var (Ytrue) var (Yfull) - cov (YReduced, Ytrue) / var (Ytrue ) var (YRed) terlepas dari jenis model; periksa untuk memverifikasi yang memberi Anda jawaban yang sama dalam lm case.

http://www.stator-afm.com/image-files/r-squared.gif

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.