R kısmi belirleme katsayısının uygulanması


9

Kısmi belirleme katsayısını hesaplayacak herhangi bir öneri veya paket var mı?

Kısmi belirleme katsayısı, azaltılmış bir modelde açıklanamayan varyasyon yüzdesi olarak tanımlanabilir, ancak tam (er) bir modelde belirtilen öngörücüler tarafından açıklanabilir. Bu katsayı, bir veya daha fazla ek öngörücünün daha tam olarak belirlenmiş bir regresyon modelinde yararlı olup olmayacağı konusunda fikir vermek için kullanılır.

Kısmi r ^ 2 için hesaplama, iki modelinizi tahmin ettikten ve onlar için ANOVA tablolarını oluşturduktan sonra nispeten basittir. Kısmi r ^ 2 için hesaplama:

(SSEreduced - SSEfull) / SSEreduced

Bunu çoklu doğrusal regresyon modeli için hesaplayacak nispeten basit bir fonksiyon yazdım. Bu işlevin de performans göstermeyebileceği R'deki diğer model yapılara aşina değilim:

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)

    }

Bu görevi yerine getirmek için daha sağlam fonksiyonlar ve / veya yukarıdaki kodun daha verimli uygulamaları ile ilgili herhangi bir öneri veya ipucu çok takdir edilecektir.


2
Diğer modelleri denemenizi ve kodun çalışıp çalışmadığını görmenizi öneririm. R genellikle güzel, bu yüzden anova farklı modeller için benzer şeyler döndürmelidir. Sorun ilk formülünüzde. Diğer modeller için geçerli mi? Değilse, kodun çalışmasını sağlamanın bir anlamı yoktur, ayrıca kod, formülün bulunmadığı modeller için kullanıldığına dair bir uyarı vermelidir.
mpiktas

Soruyu gerçekten göremiyorum. Kısmi R2'yi hesaplayan bir işlev istiyorsunuz, ancak zaten bir işleviniz var. Paket hassasiyetini biliyor musunuz (kısmi R2 yok ama belirli bir durum olan pcc uygulandı)?
robin girard

@robin - Sorum net değilse özür dilerim. Bu hesaplamayı içeren bir paket (muhtemelen yararlı olabilecek birçok yararlı işlev içerdiğinden) ve / veya yukarıda yazdığım işlevi nasıl geliştireceğime dair öneriler bulmakla ilgileniyorum. Açıkçası herhangi bir hata kontrolünden yoksundur ve tüm model tipleri için geçerli olmayabilir.
Chase

Bu sorunun SE'ye taşınmasını öneriyorum. Sorunun merkezinde istatistiksel bir sorun değil, bir uygulama sorunu olduğu görülmektedir.
karakulak

@caracal - uygun gördüğünüz her şey. R ile ilgili sorularda SO ve CV arasında kumdaki çizginin nereye çekilmesi gerektiği konusunda oldukça fazla tartışma olduğunu biliyorum. Her iki şekilde de güçlü bir tercihim yok. İşim beni son bit için bu özel problemden uzaklaştırdı, ancak önümüzdeki haftalarda tekrar gözden geçirecek, böylece kendim daha iyi bir çözüm bulabilirim. Ben de sorunun etere kaybolmasına izin vermekte iyiyim ...
Chase

Yanıtlar:


0

Şey, r ^ 2 gerçekten sadece varyansların ürünü üzerinde kovaryanstır, bu yüzden muhtemelen cov (Yfull, Ytrue) / var (Ytrue) var (Yfull) - cov (YReduced, Ytrue) / var (Ytrue) gibi bir şey yapabilirsiniz. ) model türünden bağımsız olarak var (YRed); lm durumunda aynı cevabı verdiğini doğrulamak için kontrol edin.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.