R - 通过自举带线性模型计算R平方和残差标准误差的95%置信区间

时间:2013-09-25 16:30:31

标签: r statistics-bootstrap

我是R的新手,我正在尝试计算R平方值的95%置信区间,线性模型的残差标准误差是通过使用bootstrap方法重新采样响应变量而形成的,然后创建999线性模型通过在原始解释变量上回归这999个自举响应变量。

首先,我不确定是否应该为ORIGINAL线性模型(没有自举数据)计算R平方和残差标准误差的95%CI,因为这没有意义--R -ququared值对于该线性模型是100%精确的,并且为它计算CI没有意义。

这是正确的吗?

重要的是,我不确定如何计算我通过自举创建的999线性模型的R平方值和残差标准误差值的CI。

1 个答案:

答案 0 :(得分:3)

您绝对可以使用启动包来执行此操作。但是因为我可能会对你想要的东西感到困惑,我会一步步走。

我编造了一些假数据

n=10
x=rnorm(n)
realerror=rnorm(n,0,.9)
beta=3
y=beta*x+realerror

建立一个空位以捕捉我感兴趣的统计数据。

rsquared=NA
sse=NA

然后创建一个for循环,重新采样数据,运行回归并为每次迭代收集两个统计信息。

for(i in 1:999)
{
   #create a vector of the index to resample data row-wise with replacement.
  use=sample(1:n,replace=T)

  lm1=summary(lm(y[use]~x[use]))  

  rsquared[i]=lm1$r.squared

  sse[i]=sum(lm1$residuals^2)
}

现在我想弄清楚置信区间,所以我订购了它们并报告了(n * .025)th和(n * .975)th 首先订购统计数据

 sse=sse[order(sse)]
 rsquared=rsquared[order(rsquared)]

然后第25个是置信下限,第975个是置信上限

> sse[c(25,975)]
[1]  2.758037 18.027106
> rsquared[c(25,975)]
[1] 0.5613399 0.9795167
相关问题