Formule pour l'intervalle de confiance à 95% pour

13

J'ai googlé et recherché sur stats.stackexchange mais je ne trouve pas la formule pour calculer un intervalle de confiance à 95% pour une valeur pour une régression linéaire. Quelqu'un peut-il le fournir?R2

Mieux encore, disons que j'ai exécuté la régression linéaire ci-dessous dans R. Comment calculer un intervalle de confiance à 95% pour la valeur aide du code R.R2

lm_mtcars <- lm(mpg ~ wt, mtcars)
luciano
la source
1
Eh bien, vous savez que la relation entre la corrélation et est que vous équerrez le coefficient de corrélation pour obtenir alors pourquoi ne pas calculer l'intervalle de confiance pour , puis faire le carré des limites inférieure et supérieure de l'intervalle? R 2 R 2 rrR2R2r
1
@ZERO: cela fonctionnera dans une régression linéaire simple, c'est-à-dire avec un seul prédicteur et une interception. Cela ne fonctionnera pas pour la régression linéaire multiple avec plus d'un prédicteur.
Stephan Kolassa du
@StephanKolassa, très vrai! Je suppose que je le basais sur son Rcode où il n'y a qu'un seul régresseur mais c'est un très bon point à clarifier.
Vous pouvez par exemple utiliser une très petite fonction R github.com/mayer79/R-confidence-intervals-R-squared en fonction des propriétés de la distribution F non centrale.
Michael M

Réponses:

16

Vous pouvez toujours l'amorcer:

> library(boot)
> foo <- boot(mtcars,function(data,indices)
        summary(lm(mpg~wt,data[indices,]))$r.squared,R=10000)

> foo$t0
[1] 0.7528328

> quantile(foo$t,c(0.025,0.975))
     2.5%     97.5% 
0.6303133 0.8584067

Carpenter & Bithell (2000, Statistics in Medicine) fournissent une introduction lisible aux intervalles de confiance d'amorçage, bien qu'ils ne soient pas spécifiquement axés sur .R2

Stephan Kolassa
la source
1
(+1) Il pourrait être intéressant de noter que la formule approximative citée par @Durden, avec et donne l'intervalle . Il serait presque parfaitement correct de supprimer le facteur multipliant le SE dans cette formule! n=32k=1(0.546,0.960)2
whuber
Il peut également être intéressant de noter que vous pouvez obtenir d'autres types d'intervalle de confiance (par exemple, BCa) à partir de la distribution de rééchantillonnage bootstrap à l'aide de boot.ci().
Jeffrey Girard
7

Dans R, vous pouvez utiliser la CI.Rsq()fonction fournie par le package psychométrique . Quant à la formule qu'elle applique, voir Cohen et al. (2003) , Analyse de régression / corrélation multiple appliquée pour les sciences du comportement , p. 88:

SER2=4R2(1R2)2(nk1)2(n21)(n+3)

Ensuite, l'IC à 95% est votre .R2±2SER2

Durden
la source
3
(1) est au carré dans votre référence. (2) Il est important de noter que " " est censé être la valeur de l'échantillon plutôt que la valeur de la population (ce qui est clairement ce à quoi " " fait référence dans la question, d'où le risque de confusion). (3) Il est également important qu'il ne s'agisse que d'un résultat asymptotique ("grand échantillon"), donnant des "approximations adéquates" pour " ". (Je crois que compte une interception plus le nombre de variables indépendantes.) Il serait utile de voir un exemple travaillé supporté par la simulation, car cet intervalle semble trop large. R 2 R 2 n - k - 1 > 60 k + 1(1R2)R2R2nk1>60k+1
whuber
Selon Wishart (1931), la formule ne convient pas aux distributions non normales.
abukaj