Quelqu'un a-t-il des suggestions ou des packages pour calculer le coefficient de détermination partielle?
Le coefficient de détermination partielle peut être défini comme le pourcentage de variation qui ne peut pas être expliqué dans un modèle réduit, mais peut être expliqué par les prédicteurs spécifiés dans un modèle complet (er). Ce coefficient est utilisé pour indiquer si un ou plusieurs prédicteurs supplémentaires peuvent être utiles dans un modèle de régression plus précis.
Le calcul du r ^ 2 partiel est relativement simple après avoir estimé vos deux modèles et généré les tables ANOVA pour eux. Le calcul pour le r ^ 2 partiel est:
(SSEreduced - SSEfull) / SSEreduced
J'ai écrit cette fonction relativement simple qui calculera cela pour un modèle de régression linéaire multiple. Je ne connais pas les autres structures de modèle dans R où cette fonction peut ne pas fonctionner aussi bien:
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)
}
Toutes suggestions ou astuces sur des fonctions plus robustes pour accomplir cette tâche et / ou des implémentations plus efficaces du code ci-dessus seraient très appréciées.
la source
Réponses:
Eh bien, r ^ 2 est vraiment juste une covariance au carré sur le produit des variances, donc vous pourriez probablement faire quelque chose comme cov (Yfull, Ytrue) / var (Ytrue) var (Yfull) - cov (YReduced, Ytrue) / var (Ytrue ) var (YRed) quel que soit le type de modèle; vérifiez si cela vous donne la même réponse dans le cas lm.
http://www.stator-afm.com/image-files/r-squared.gif
la source