1

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

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

那是对的吗?

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

4

1 回答 1

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
于 2013-09-25T19:21:12.893 回答