d <- read.csv("http://home.hiroshima-u.ac.jp/ksatoh/documents/Kion.csv")

library(sem)

# 重回帰

kion.lm <- lm(kion~ido+keido+hyoukou,d)

summary(kion.lm)

# semで重回帰

model1 <- specify.model()

kion <- ido, b1, NA

kion <- keido, b2, NA

kion <- hyoukou, b3, NA

kion <-> kion, e1, NA

kion.sem1 <- sem(model1,cov(d),nrow(d),fixed.x=c("ido","keido","hyoukou"))

summary(kion.sem1)

std.coef(kion.sem1) # 標準化回帰係数(パス係数)

# Graphvizでパス図を描くための準備

# EasyGraphVizの方がお手軽にパス図を描ける(標準で日本語対応)

path.diagram(kion.sem1, ignore.double=F, edge.labels="values", digits=3)

# semで階層的重回帰

model2 <- specify.model()

kion <- ido, b1, NA

ido <- keido, b2, NA

kion <- hyoukou, b3, NA

kion <-> kion, e1, NA

ido <-> ido, e2, NA

kion.sem2 <- sem(model2,cov(d),nrow(d),fixed.x=c("keido","hyoukou"))

summary(kion.sem2)

std.coef(kion.sem2) # 標準化回帰係数(パス係数)

path.diagram(kion.sem2, ignore.double=F, edge.labels="values", digits=3)

# 決定係数R2の計算

# R-Forge: sem.additionsのrsquared.sem()を使う

# install.packages("sem.additions", repos="http://R-Forge.R-project.org")

library(sem.additions)

rsquare.sem(kion.sem2)