重回帰分析
#######################重回帰分析##############################
data_fin<-c(factor1,factor2,factor3,factor4)
#使いたい変数を1つのデータにまとめる
class(data_fin)
#上でまとめたデータの型を確かめる
data_fin<-data.frame(data_fin)
#データの型を”data.frame”型に変更する
data_fin.sd<-scale(data_fin)
#データ内の変数を標準化する
class(data2_fin.sd)
#また、データの型を確認する
data_fin.sd<-data.frame(data_fin.sd)
#"data.frame"型に変更する
summary(lm(formula=factor1~factor2+factor3+factor4,data=data_fin.sd))
#summary(lm(従属変数~独立変数1+独立変数2+独立変数3,data=データセット名))
#結果の見方
#帰無仮説は「係数=0」
#AICは値が小さい方がモデルの当てはまりの良さを示す
#Multiple R-squaredが決定係数
#
library(DAAG)
result<-lm(formula=factor1~factor2+factor3+factor4,data=data_fin.sd)
vif(result)
#多重共線性の確認
#vif関数を使うには、”DAAG”パッケージが必要です。
#VIF>10だと多重共線性に問題あり。<2なら問題なし。
##############ステップワイズ変数選択による重回帰分析######################
sreg("f2s","f3s","f4s","f5s","a1", stepwise=TRUE, P.in=0.05, P.out=0.05, predict=FALSE, verbose=TRUE)
#引数
#data データ行列。従属変数は最終列におき,それ以外は独立変数と見なす。
#stepwise ステップワイズ変数選択をする
#P.in Pin(デフォルトは 0.05)
#P.out Pout(デフォルトは 0.05,Pout ≧ Pin のこと)
#predict 個々の予測結果などを出力するかどうか(デフォルトは FALSE)
#verbose ステップワイズ変数選択の途中結果を出力する
#偏回帰係数など,分割表,決定係数など,予測値などに関する結果はそれぞれ,「分析結果」,「分散分析表」,「決定係数」,「予測」の要素名で参照できる。
#plot メソッドとして,3種類の回帰診断プロットを用意している(このページの下の方を参照)。
#ソース
#インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/sreg.R";, encoding="euc-jp")
############多重ロジスティック回帰分析###################
#R に用意されている glm 関数を用いて多重ロジスティック回帰分析を行う。
#データフレーム
data.fin.m<-xn[,c("a1","f1s","f2s","f3s","f4s","f5s")]
data.fin<-scale(data.fin.m)
data.fin<-data.frame(data.fin)
xn$ar1 <- 1+xn$a1
xn$a1<- xn$ar1
summary(glm(a1~f1s+f2s+f3s+f4s+f5s,data.fin.m,family=binomial))
#モデル式
#モデル式は y ~ x1+x2+x4 のような形式で表現する
#モデル式中の y,x1,x2,x3 などはデータフレームの変数名
summary(glm(a1~f1s,data.fin.m,family=binomial))
summary(glm(a1~f2s,data.fin.m,family=binomial))
summary(glm(a1~f3s,data.fin.m,family=binomial))
summary(glm(a1~f4s,data.fin.m,family=binomial))
summary(glm(a1~f5s,data.fin.m,family=binomial))
summary(glm(a1~f3s,data.fin.m,family=binomial))
##使用例
#分析に使うデータは lr.data という名前で用意されているとする(lr.data を見てみる)。
#独立変数は x1, x2
#従属変数は y
data <- read.table("lr.data", header=TRUE)
result1 <- glm(a1~f1s+f2s+f3s+f4s+f5s,data.fin,family=binomial)
result
summary(result1)
coefficients(result)
residuals(result)
など
result0 <- glm(y ~ 1, data, family=binomial)
anova(result0, result, test="Chisq")
コメント
コメントを投稿