【问题标题】:R - calculating 95% confidence interval for R-squared and residual standard error by boot strap linear modelR - 通过引导带线性模型计算 R 平方和残差标准误差的 95% 置信区间
【发布时间】:2013-10-01 08:53:21
【问题描述】:

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

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

正确吗?

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

【问题讨论】:

  • 我从未听说过对响应变量进行重新采样并使用原始解释变量。你确定这是你想做的吗?
  • 您是否应该对响应变量和解释变量进行重采样?
  • 在正常的引导过程中,您通过从原始数据帧中重新采样整个行来创建一个新数据帧。
  • 我认为这就是我正在做的事情。我所拥有的是一张有两列的表格。一个是小费百分比,一个是总账单。我正在尝试研究我们是否可以使用总账单(解释变量)来预测小费百分比(响应变量)。现在,我通过对其自身的小费百分比进行抽样来进行引导,以生成 999 个新的小费百分比样本。

标签: r statistics-bootstrap


【解决方案1】:

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

我编造了一些假数据

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

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 2013-08-22
    • 2010-11-26
    • 2013-12-06
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多