忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


dat <- read.table("http://file.scratchhit.pazru.com/AikenWest1991p118.txt",header = T)

## 普通の重回帰
dat$college <- factor(dat$college,levels=c("LA","E","BUS"))
dat$cGPA <- dat$GPA - mean(dat$GPA) # 連続変量の中心化
res.idv <- lm(salary ~ cGPA+college, dat) # 交互作用なしモデル
res.int <- lm(salary ~ cGPA * college, dat) # 交互作用ありモデル
summary(res.idv)
summary(res.int)


## 標準化偏回帰係数を求める。ダミー変数をつくり、交互作用項を計算し、全部標準化して同じ分析をするだけ
# ダミー変数の作成。青木先生のコードを参考にさせていただいた。感謝。
lvs <- levels(dat$college) # 水準名を確認し、オブジェクトに格納する
la.dm <- as.integer(dat$college==lvs[1])
e.dm <- as.integer(dat$college==lvs[2])
bus.dm <- as.integer(dat$college==lvs[3])

dat2 <- data.frame(la.dm, e.dm, bus.dm, dat[3:5])
dat3 <- data.frame(scale(dat2)) # 変数の標準化

## 交互作用なしモデルの標準化偏回帰係数
res.idv2 <- lm(scale(salary)~scale(GPA)+e.dm+bus.dm+la.dm, dat2)
res.idv3 <- lm(salary~GPA+e.dm+bus.dm+la.dm, dat3)
summary(res.idv2) # ダミー変数以外を標準化
summary(res.idv3) # 全て標準化
### 参考: ダミー変数での普通の重回帰
res.int.dm <- lm(salary~cGPA+e.dm+bus.dm+cGPA:e.dm+cGPA:bus.dm, dat2)
summary(res.int.dm) ## summary(res.int) と同じ
### これでも同じ
###res.int.dm2 <- lm(salary~cGPA*(e.dm+bus.dm), dat2)

## 交互作用ありモデルの標準化偏回帰係数
# ダミー変数以外を標準化する。ただし、この場合ダミー変数以外の係数が1を超えることがある
summary(lm(scale(salary)~scale(cGPA)*(e.dm+bus.dm), dat2))
summary(lm(salary~GPA*(e.dm+bus.dm), dat3))# dat3は全て標準化したもの


これは間違いらしい
# 交互作用項を先につくっておく。
gpa.la <- la.dm*dat$cGPA # ここは"cGPA"にしておく。GPAだと間違い(?)
gpa.e <- e.dm*dat$cGPA
gpa.bus <- bus.dm*dat$cGPA
dat3.1 <- data.frame(dat2, gpa.la, gpa.e, gpa.bus)
dat4 <- data.frame(scale(dat3.1))
res.int2 <- lm(salary~GPA+e.dm+bus.dm+gpa.e+gpa.bus, dat4)
summary(res.int2)


PR
Comment
Trackback
Trackback URL

Comment form
Title
Color & Icon Vodafone絵文字 i-mode絵文字 Ezweb絵文字  
Comment
Name
Mail
URL
Password
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表