2017-06-04 11 views
0

この質問がオンラインで見つかりました。誰かが詳細に説明してください、なぜOLSを使うのがいいですか?サンプルの数が足りないためですか?また、前の分布を推定するために1000のサンプルをすべて使用しないでください。ベイジアンvs OLS

ランダムにサンプリングされたデータポイントが1000個あります。目標は、k回帰変数 変数から1つの応答変数を持つ回帰モデル を構築しようとすることです。どちらが良いですか?最初の 個の500サンプルを使用して、前に仮定した分布のパラメータを推定し、最後の500個のサンプルを使用して、 の最終分布を、最終回帰モデルで使用される事後推定を伴う事後分布に更新する。 。 2.(OLS回帰)すべて1000個の回帰変数

答えて

3

とシンプルな普通の 最小二乗回帰モデルを使用する「ベター」常に意見の問題であり、それは非常に文脈に依存します。

頻繁に利用するOLSのアプローチの利点:よりシンプルで、より速く、より多くのユーザーがよりアクセスしやすい(したがって説明が少ない)賢明な賢明な教授は、「フライスターッターがトリックをするときに、原子スマッシャーを作る必要はありません」と言いました。等価なベイズアプローチに

利点:さらに、モデル開発のより柔軟な、直接導出/算出された量の事後をモデル化することができる(がそれ以上であるが、これらは、所定の分析をベイズ行くため私の動機となっています)。単語「equivalent」に注意してください。頻繁にアプローチすることはできませんが、ベイジアンフレームワークでできることがあります。

ここで、最初にデータをシミュレートした後、典型的なOLSアプローチを使用して、Rの調査を行っています。

N <- 1000 
x <- 1:N 
epsilon <- rnorm(N, 0, 1) 
y <- x + epsilon 

summary(lm(y ~ x)) 
## 
## Call: 
## lm(formula = y ~ x) 
## 
## Residuals: 
##  Min  1Q Median  3Q  Max 
## -2.9053 -0.6723 0.0116 0.6937 3.7880 
## 
## Coefficients: 
##    Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 0.0573955 0.0641910 0.894 0.371  
## x   0.9999997 0.0001111 9000.996 <2e-16 *** 
## --- 
## Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
## 
## Residual standard error: 1.014 on 998 degrees of freedom 
## Multiple R-squared:  1, Adjusted R-squared:  1 
## F-statistic: 8.102e+07 on 1 and 998 DF, p-value: < 2.2e-16 

...ここでは、回帰パラメータとすべての1000データポイントについて非有益なプリオを使用して、等価なベイジアン回帰を示します。

library(R2jags) 
cat('model { 
    for (i in 1:N){ 
    y[i] ~ dnorm(y.hat[i], tau) 
    y.hat[i] <- a + b * x[i] 
    } 
    a ~ dnorm(0, .0001) 
    b ~ dnorm(0, .0001) 
    tau <- pow(sigma, -2) 
    sigma ~ dunif(0, 100) 
}', file="test.jags") 

test.data <- list(x=x,y=y,N=1000) 
test.jags.out <- jags(model.file="test.jags", data=test.data, 
        parameters.to.save=c("a","b","tau","sigma"), n.chains=3, n.iter=10000) 
test.jags.out$BUGSoutput$mean$a 
## [1] 0.05842661 
test.jags.out$BUGSoutput$sd$a 
## [1] 0.06606705 
test.jags.out$BUGSoutput$mean$b 
## [1] 0.9999976 
test.jags.out$BUGSoutput$sd$b 
## [1] 0.0001122533 

パラメータ推定値および標準誤差/標準偏差は、本質的に同等であることに注意してください。

ここでは、最初の500のデータポイントを使用して前任者を推定し、最後に500を使用して後任者を推定する別のベイジアン回帰があります。興味深いことに、推論はOLSの結果と似ていますが、それほど多くはありません。これは私には、前回のトレーニングに使用された500データ点が過去500回と同じくらい重視されていないことが疑わしくなります。

特に、500 + 500が最初の500と最後の500を別々に使用していると思われるため、1000のデータポイント(および非情報提供者)を使用しない理由は考えられません。 私はOLSと1000ポイントのベイジアン結果が500 + 500以上であると信じており、OLSはより簡単です。

+0

ありがとうMatt! – Erin

関連する問題