★新サイト完成しました!
3秒後に自動的に移動します
変わらない方は こちらからどうぞ
http://logics-of-blue.com/%E9%87%8D%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90/
前のページで変数選択
ができたので、実際の予測を行おうと思います。
set.seed(0)
N<-100
Intercept<-5
B1<-10
B2<-5
x1<-sort(rnorm(N,sd=2))
x2<-rnorm(N,sd=2)
e<-rnorm(n=N,sd=3)
y<-Intercept+B1*x1+B2*x2+e
上記 のデータは前ページの モデル選択と同じデータです。なので、同じ推定結果が出るはずです。交互作用も含めたmodel3を作ります
model3<-lm(y~x1*x2)
検定によるモデル選択は前のページを見てください。ここではAICによるモデル選択のみを行います。
パッ ケージMuMInをダウンロードしてから(http://mumin.r -forge.r-project.org/ )
library(MuMIn)
kekka.AIC<-dredge(model3,rank="AIC")
all.model <-
get.models(kekka.AIC)
best.model<-all.model[1]
> best.model
$`4`
Call:
lm(formula = y ~
x1 + x2)
Coefficients:
(Intercept)
x1
x2
5.202
9.973
4.986
どのモデルが最適かが分かったので、またモデルを作りなおします。
model2<-lm(y~x1+x2)
model2 が最適なモデルになります。これで予測を行います。
A<-predict(model2,se.fit=T,interval="confidence")
#推定平均の95%推定区間付き
B<-predict(model2,se.fit=T,interval="prediction")
#推定データの95%推定区間付き
plot(x1,y,main="AIC最小モデルによる予測と95%
信頼区間")
lines(x1,A$fit[,1],lwd=1)
lines(x1,A$fit[,2],col="red")
lines(x1,A$fit[,3],col="red")
lines(x1,B$fit[,2],col="blue")
lines(x1,B$fit[,3],col="blue")
legend(2.5,-20,c("予測値","平均の95%信頼区
間","データの95%予測区間"),col=c(1,2,4),lwd=1)
すると、こんな図が出てくるはずです。
ちなみに、シミュレーションデータを作る際、さりげなくx1<-sort(rnorm(N,sd=2))と していましたが、 sort をしておかないと、とても見難いグラフになってしまいます。ちなみに sort とは、昇順並び替え関数です。
参
考文献[1]
山田作太郎・北田修一:生物統計学入門、第7章 回帰分析
前のページ ⇒ モ
デル選択 実践編 へ
次のページ ⇒ 平滑化スプラインと加法モデル へ