Fórmula para intervalo de confiança de 95% para

13

Pesquisei no google e pesquisei stats.stackexchange, mas não consigo encontrar a fórmula para calcular um intervalo de confiança de 95% para um R2 valor para uma regressão linear. Alguém pode fornecer?

Melhor ainda, digamos que eu executei a regressão linear abaixo em R. Como eu calcularia um intervalo de confiança de 95% para o valor de R2 usando o código R.

lm_mtcars <- lm(mpg ~ wt, mtcars)
luciano
fonte
1
Bem, você sabe a relação entre a correlação e R 2 é que você está em quadratura com o coeficiente de correlação para obter R 2 então porque não calcular o intervalo de confiança para r e, em seguida, quadrado dos limites inferior e superior do intervalo? rR2R2r
1
@ Zero: que funcionará em uma regressão linear simples, ou seja, com um único preditor e uma interceptação. Não funcionará para regressão linear múltipla com mais de um preditor.
#
@StephanKolassa, very true! Acho que estava baseando-o no Rcódigo dele , onde há apenas um regressor, mas esse é um ponto muito bom para esclarecer.
Você pode, por exemplo, usar uma função R muito pequena github.com/mayer79/R-confidence-intervals-R-squared com base nas propriedades da distribuição F não central.
Michael M

Respostas:

16

Você sempre pode inicializá-lo:

> 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) fornecer uma introdução legível para bootstrapping intervalos de confiança, focada embora não especificamente em .R2

Stephan Kolassa
fonte
1
(1) Pode ser interessante que a fórmula aproximada citado por @Durden, com e k = 1 dá o intervalo ( 0,546 , 0,960 ) . Seria quase perfeitamente correto se reduzíssemos o fator 2 multiplicando o SE nessa fórmula! n=32k=1(0.546,0.960)2
whuber
Também pode ser interessante notar que você pode obter outros tipos de intervalo de confiança (por exemplo, BCa) a partir da distribuição de reamostragem de bootstrap usando boot.ci().
Jeffrey Girard
6

Em R, você pode fazer uso da CI.Rsq()função fornecida pelo pacote psicométrico . Quanto à fórmula que se aplica, veja Cohen et al. (2003) , Análise de regressão múltipla / correlação aplicada para as ciências do comportamento , p. 88:

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

Then, the 95% CI is your R2±2SER2.

Durden
fonte
3
(1) (1R2) is squared in your reference. (2) It is important to note that "R2" is intended to be the sample value rather than the population value (which clearly is what "R2" refers to in the question, whence the potential for confusion). (3) It is also important that this is only an asymptotic ("large-sample") result, giving "adequate approximations" for "nk1>60". (I believe k+1 counts an intercept plus the number of independent variables.) It would be useful to see a worked example supported by simulation, because this interval looks too wide.
whuber
According to Wishart (1931) the formula is unsuitable for nonnormal distributions.
abukaj