1

私は R を初めて使用し、ブートストラップ法を使用して応答変数をリサンプリングし、回帰によって 999 個の線形モデルを作成することによって形成された R 二乗値と線形モデルの残差標準誤差の 95% 信頼区間を計算しようとしています。これらの 999 個のブートストラップされた応答変数は、元の説明変数に基づいています。

まず第一に、R-2 乗の 95% CI と ORIGINAL 線形モデル (ブートストラップ データなし) の残差標準誤差を計算する必要があるかどうかわかりません。はその線形モデルに対して 100% 正確であり、CI を計算しても意味がありません。

あれは正しいですか?

重要なのは、ブートストラップから作成した 999 個の線形モデルの R 二乗値と残差標準誤差値の CI を計算する方法がわかりません。

4

1 に答える 1

3

これを行うには、間違いなく boot パッケージを使用できます。でも、あなたが何を望んでいるのか、私は混乱するかもしれないので、私は一歩一歩進んでいきます。

私はいくつかの偽のデータを作成します

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

興味のある統計を取得するための空の場所を作成します。

rsquared=NA
sse=NA

次に、データを再サンプリングする for ループを作成し、回帰を実行して、反復ごとに 2 つの統計を収集します。

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) 番目と (n*.975) 番目の最初の順序で統計を報告します。

 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 に答える