使い方がわからない ブートストラップをして線形回帰モデルの予測間隔を計算。誰かがステップバイステップの手順を概説できますか?私はグーグルで検索しましたが、何も本当に意味がありません。
モデルパラメータの信頼区間を計算するためにブートストラップを使用する方法を理解しています。
使い方がわからない ブートストラップをして線形回帰モデルの予測間隔を計算。誰かがステップバイステップの手順を概説できますか?私はグーグルで検索しましたが、何も本当に意味がありません。
モデルパラメータの信頼区間を計算するためにブートストラップを使用する方法を理解しています。
回答:
信頼区間では、推定の不確実性が考慮されます。予測間隔はこれに基本的な不確実性を追加します。R predict.lm
は、線形モデルの予測区間を提供します。そこから、ブートストラップされたサンプルで繰り返し実行するだけです。
n <- 100
n.bs <- 30
dat <- data.frame( x<-runif(n), y=x+runif(n) )
plot(y~x,data=dat)
regressAndPredict <- function( dat ) {
model <- lm( y~x, data=dat )
predict( model, interval="prediction" )
}
regressAndPredict(dat)
replicate( n.bs, regressAndPredict(dat[ sample(seq(n),replace=TRUE) ,]) )
の結果replicate
は3次元配列(n
x 3
x n.bs
)です。長さ3の次元は、各データ要素の適合値、および95%予測区間の下限/上限で構成されます。
ゲイリー・キング法
必要に応じて、King、Tomz、Wittenbergによるクールな方法があります。実装は比較的簡単で、特定の見積もりのブートストラップの問題を回避します(例:max(Y)
)の。
基本的な不確実性の彼の定義から引用します、それは合理的に素晴らしいからです:
2番目の変動性、式1の確率的要素(分布f)で表される基本的な不確実性は、Yに影響するがXには含まれない天候や病気などの無数の偶然の出来事から生じます。パラメーターの正確な値を知っていた(それにより推定の不確実性が排除された)ため、基本的な不確実性により、エラーなしでYを予測できなくなります。
ブートストラップは、サンプルが作成された元の親ディストリビューションの形式に関する知識を想定していません。従来の古典的な統計パラメータ推定値は、正規性の仮定に基づいています。ブートストラップは非正規性を扱い、実際には従来の方法よりも正確です。
ブートストラップは、厳密な理論的分析のためにコンピューターの生の計算能力を代用します。これは、データセットの誤差項のサンプリング分布の推定値です。ブートストラップには、指定された回数のデータセットの再サンプリング、各サンプルからの平均の計算、および平均の標準誤差の検出が含まれます。
次の「R」コードはその概念を示しています。
この実用的な例は、ブートストラップの有用性を示し、標準誤差を推定します。信頼区間を計算するには標準誤差が必要です。
歪んだデータセット「a」があると仮定します。
a<-rexp(395, rate=0.1) # Create skewed data
歪んだデータセットの視覚化
plot(a,type="l") # Scatter plot of the skewed data
boxplot(a,type="l") # Box plot of the skewed data
hist(a) # Histogram plot of the skewed data
ブートストラップ手順を実行します。
n <- length(a) # the number of bootstrap samples should equal the original data set
xbarstar <- c() # Declare the empty set “xbarstar” variable which will be holding the mean of every bootstrap iteration
for (i in 1:1000) { # Perform 1000 bootstrap iteration
boot.samp <- sample(a, n, replace=TRUE) #”Sample” generates the same number of elements as the original data set
xbarstar[i] <- mean(boot.samp)} # “xbarstar” variable collects 1000 averages of the original data set
##
plot(xbarstar) # Scatter plot of the bootstrapped data
boxplot(xbarstar) # Box plot of the bootstrapped data
hist(xbarstar) # Histogram plot of the bootstrapped data
meanOfMeans <- mean(xbarstar)
standardError <- sd(xbarstar) # the standard error is the standard deviation of the mean of means
confidenceIntervalAboveTheMean <- meanOfMeans + 1.96 * standardError # for 2 standard deviation above the mean
confidenceIntervalBelowTheMean <- meanOfMeans - 1.96 * standardError # for 2 standard deviation above the mean
confidenceInterval <- confidenceIntervalAboveTheMean + confidenceIntervalBelowTheMean
confidenceInterval