異分散性を伴う予測区間


回答:


4

それは異分散性の性質に依存します。予測間隔が必要な場合は、通常、次のようなパラメトリック仕様が必要です。

yNバツβσバツz
つまり、は通常、平均で分布されます、および標準偏差、ここで標準偏差はまたは他の変数のセット既知の関数です、これにより、各観測の標準偏差を推定できます。X ' I β σ IX IZ IX I 、Z I I T Hyバツβσバツzバツzth

可能な機能の例には、 (企業収益の研究、Greeneの「Econometric Analysis」第7版CH 9の例)、ここでは従属変数の観測、または、時系列データを処理する場合は、GARCHおよび/または確率的ボラティリティ指定。 、X iはkは iがtは時間 k個のT 時間σ2バツ=σ2バツkバツkthkth

て、予測間隔の標準誤差として推定を使用できます。の推定エラーを説明することは複雑になる可能性があるため、ここでは正式な扱いを ますが、サンプルが十分に大きい場合、推定エラーを無視しても影響はありません予測間隔はそれだけです。つまり、ワームの缶をここで開く必要はありません。このすべての例とより多くの例の詳細な説明については、Wooldridgeの本「Introductory Econometrics:A Modern Approach」、Ch 8を参照してください。σ^バツzσ^バツz

問題は、人々が不均一分散または「堅牢な」回帰に言及するとき、彼らは通常、不均一分散の正確な性質(関数)は不明です。この場合、ホワイトまたは2ステップの推定量が使用されます。これらは一貫した推定値を提供しますが、は提供しません。そのため、予測間隔を推定する自然な方法はありません。σバツzvarβ^σ いずれにしても、このコンテキストでは予測間隔は意味がありません。これらのサンドイッチ型推定器の背後にある考え方は、係数の標準誤差を一貫して推定することですβ^、個々の観測ごとに正確な予測間隔を提供する負担がないため、推定がより「ロバスト」になります。

編集:

明確にするために、上記では最小二乗回帰のみを考慮しています。変位値回帰など、他の形式のノンパラメトリック回帰は、残差標準誤差のパラメトリック仕様なしで予測区間を取得する手段を提供する場合があります。


4

ノンパラメトリック変位値回帰は、異分散性と非線形性の両方を可能にする非常に一般的なアプローチを提供します。セクション9を参照:http : //www.econ.uiuc.edu/~roger/research/rq/vig.pdf

更新:90%の予測区間の妥当な近似は、5パーセンタイル回帰曲線と95パーセンタイル回帰曲線の間のスペースです。(曲線推定手法の詳細とデータのスパース性によっては、4パーセンタイルと96パーセンタイルのようなものを使用して「保守的」にすることができます)。このタイプのノンパラメトリック予測区間の直感は、ウィキペディアにあります。

この答えは出発点にすぎません。分位点の回帰予測間隔については、かなりの作業が行われています。または、ノンパラメトリック回帰予測区間を作成します


本当ですが、分位点回帰で予測間隔をどのように取得しますか?
Zachary Blumenfeld、2015年

2

説明変数に対する応答の回帰が直線であり、分散が説明変数とともに増加する場合、重み付けとして、または(非一定分散がより極端な場合)の重み付き回帰モデルが必要です。これにより、x値によって分散に重みが付けられ、比例関係が生まれます。

これは、モデルと予測に含まれる重みのコードです。元のデータセットと新しいデータセットの両方に重みを追加する必要があることに注意してください。

@PopcornKingの、異分散データからの予測間隔の計算からの元のコードをありがとう 。

library(ggplot2)
dummySamples <- function(n, slope, intercept, slopeVar){
  x = runif(n)
  y = slope*x+intercept+rnorm(n, mean=0, sd=slopeVar*x)
  return(data.frame(x=x,y=y))
}

myDF <- dummySamples(20000,3,0,5)
plot(myDF$x, myDF$y)
w = 1/myDF$x**2
t = lm(y~x, data=myDF, weights=w) 
summary(t)

newdata = data.frame(x=seq(0,1,0.01))
w = 1/newdata$x**2
p1 = predict.lm(t, newdata, interval = 'prediction', weights=w)
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2])         
a <- a + geom_abline(intercept=t$coefficients[1],   slope=t$coefficients[2], color='blue')  
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2],  color='blue')
newdata$lwr = p1[,c("lwr")]
newdata$upr = p1[,c("upr")]
a <- a + geom_ribbon(data=newdata, aes(x=x,ymin=lwr, ymax=upr),   fill='yellow', alpha=0.3)
a

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.