Yamamori (2018)
# ディレクトリの指定
## c3_56_shak FFB
fb1 <- c(52.95, 53.00) #FBあり プレ ポス
fb0 <- c(52.95, 51.33) #FBなし プレ ポス
plotdata <-rbind(fb1, fb0)
col <- c("5年4月", "6年4月")
colnames(plotdata) <- col
par(family="HiraKakuProN-W3")#Macintoshの場合
## グラフ
# 余白を小さく
mar = c(4,4,4,4)
# oma = c(0,0,0,0)
# デバイス領域(インチで幅と高さ)
matplot(t(plotdata), type="b", xlim=c(1.0, 2.2), ylim = c(40, 60), axes=F, xlab="", ylab="学力偏差値", main="",
mgp = c(2, 0.7, 0), lwd=2, #やや太く
lty = c(1,2), #線種は以下の通り
## lty="solid" or 1→実線
## lty="dashed" or 2→ダッシュ
## lty="dotted" or 3→ドット
## lty="dotdash" or 4→ドットとダッシュ
## lty="longdash" or 5→長いダッシュ
## lty="twodash" or 6→二つのダッシュ
col = c(1,1), #色は以下の通り
## 順に黒,赤,緑,青,水色,紫,黄,灰
pch = c(15, 16),
cex = 1, # 記号の大きさ(標準は1)
cex.lab = 1.0, # 軸の説明の字の大きさ
cex.axis = 1.0, # 軸の数字等(ラベル)の大きさ
cex.main = 0.8 # メインタイトルの字の大きさ
)
axis(side=1, at=c(1,2), labels = col)
axis(side=2, at=c(40,50,60))
segments(2.05, fb0[2], 2.10, fb0[2], lty = 3)
segments(2.05, fb1[2], 2.10, fb1[2], lty = 3)
segments(2.10, fb0[2], 2.10, fb1[2], lty = 3)
keisu <- c("1.67")
text(2.17, (fb0[2]+(fb1[2]-fb0[2])/2), label=keisu, cex=1.0)
# 凡例をつける
legend (1.0, 60, #凡例左上の位置を座標で指定
c("達成目標・実現状況提示頻度:高", "達成目標・実現状況提示頻度:低"),
lwd = 1, #線を太めに
lty = c(1,2), #線種
col = c(1,1), #線の
pch = c(15, 16),
bty = "n", #枠なし
bg = "n", #背景色なし
cex = 1.0#文字の大きさを基準の__%
)

Yamamori (2014)
## 経験年数でサブセットを作る
### 10年以下
koku_nv <- subset(koku_cs, Q38 > 0 & Q38 < 11)
nrow(koku_nv) #人数
## [1] 105
## 対象学校数
nrow(table(koku_cs$schl))
## [1] 163
## 対象学級数(担任数)
nrow(koku_cs)
## [1] 502
## MCMCロジット
library(MCMCpack)
## Loading required package: coda
## ##
## ## Markov Chain Monte Carlo Package (MCMCpack)
## ## Copyright (C) 2003-2019 Andrew D. Martin, Kevin M. Quinn, and Jong Hee Park
## ##
## ## Support provided by the U.S. National Science Foundation
## ## (Grants SES-0350646 and SES-0350613)
## ##
### 経験年数10年以下
koku.nv.mc.res.Q31S1 <- MCMClogit(Q31S1~size, data=koku_nv, burnin=10000,mcmc=50000)
koku.nv.mc.res.Q31S2 <- MCMClogit(Q31S2~size, data=koku_nv, burnin=10000,mcmc=50000)
summary(koku.nv.mc.res.Q31S1)
##
## Iterations = 10001:60000
## Thinning interval = 1
## Number of chains = 1
## Sample size per chain = 50000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## (Intercept) 1.95678 1.06966 0.0047837 0.0144741
## size -0.05206 0.04066 0.0001818 0.0005519
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## (Intercept) -0.06719 1.23393 1.92868 2.64337 4.14000
## size -0.13433 -0.07837 -0.05142 -0.02458 0.02613
summary(koku.nv.mc.res.Q31S2)
##
## Iterations = 10001:60000
## Thinning interval = 1
## Number of chains = 1
## Sample size per chain = 50000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## (Intercept) 3.4610 1.20483 0.005388 0.0163451
## size -0.1147 0.04517 0.000202 0.0006229
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## (Intercept) 1.2322 2.6201 3.4226 4.23271 5.96845
## size -0.2084 -0.1438 -0.1133 -0.08335 -0.03061
quantile(koku.nv.mc.res.Q31S1[,2], c(.05, .95))
## 5% 95%
## -0.1202410 0.0136436
quantile(koku.nv.mc.res.Q31S2[,2], c(.05, .95))
## 5% 95%
## -0.1917378 -0.0439850
geweke.diag(koku.nv.mc.res.Q31S1)
##
## Fraction in 1st window = 0.1
## Fraction in 2nd window = 0.5
##
## (Intercept) size
## 0.1102 0.5105
geweke.diag(koku.nv.mc.res.Q31S2)
##
## Fraction in 1st window = 0.1
## Fraction in 2nd window = 0.5
##
## (Intercept) size
## -0.4235 0.8281
par(family="HiraKakuProN-W3")#Macintoshの場合
plot(koku_nv$size, xlim=c(0,40), koku_nv$Q31S2, pch="", col=8, xaxt="n", yaxt="n", xlab="", ylab="", axes=F)
par(new=T)
plot(koku_nv$size, xlim=c(0,40), koku_nv$Q31S1, pch="", xaxt="n", yaxt="n", xlab="クラスサイズ", ylab="実施頻度が「いつも・ほとんど」の割合", axes=F)
axis(side=1, at=seq(0, 40, 5), cex.axis = 1.0)
axis(side=2, at=seq(0, 1, 0.2),labels=c("0.0", "0.2", "0.4", "0.6", "0.8", "1.0"),cex.axis = 1.0)
# ロジスティック曲線のための値取り出し
i.koku.nv.res.Q31S2 <- mean(koku.nv.mc.res.Q31S2[,1])
s.koku.nv.res.Q31S2 <- mean(koku.nv.mc.res.Q31S2[,2])
i.koku.nv.res.Q31S1 <- mean(koku.nv.mc.res.Q31S1[,1])
s.koku.nv.res.Q31S1 <- mean(koku.nv.mc.res.Q31S1[,2])
# 曲線に流し込むx軸範囲と区切り
x <- seq(0, 40, 1)
# ロジスティック曲線の式
y.koku.nv.res.Q31S2 <- 1 / (1 + exp(-i.koku.nv.res.Q31S2 - s.koku.nv.res.Q31S2 * x))
y.koku.nv.res.Q31S1 <- 1 / (1 + exp(-i.koku.nv.res.Q31S1 - s.koku.nv.res.Q31S1 * x))
# 曲線描画
lines(x, y.koku.nv.res.Q31S2, lty=1)
lines(x, y.koku.nv.res.Q31S1, lty=2)
# 凡例
legend(20, 1.0, c("理由・考え方", "正誤"), lty=c(1, 2), col=c(1, 1), bty= "n", cex=1.0)

## MCMCロジット
library(MCMCpack)
### 経験年数10年以下
koku.nv.mc.res.Q31S2 <- MCMClogit(Q31S2~size, data=koku_nv, burnin=10000,mcmc=50000)
summary(koku.nv.mc.res.Q31S2)
##
## Iterations = 10001:60000
## Thinning interval = 1
## Number of chains = 1
## Sample size per chain = 50000
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## (Intercept) 3.4610 1.20483 0.005388 0.0163451
## size -0.1147 0.04517 0.000202 0.0006229
##
## 2. Quantiles for each variable:
##
## 2.5% 25% 50% 75% 97.5%
## (Intercept) 1.2322 2.6201 3.4226 4.23271 5.96845
## size -0.2084 -0.1438 -0.1133 -0.08335 -0.03061
quantile(koku.nv.mc.res.Q31S2[,2], c(.05, .95))
## 5% 95%
## -0.1917378 -0.0439850
geweke.diag(koku.nv.mc.res.Q31S2)
##
## Fraction in 1st window = 0.1
## Fraction in 2nd window = 0.5
##
## (Intercept) size
## -0.4235 0.8281
par(family="HiraKakuProN-W3")#Macintoshの場合
plot(koku_nv$size, xlim=c(0,40), koku_nv$Q31S2, pch="", col=8, xaxt="n", yaxt="n", xlab="", ylab="", axes=F)
par(new=T)
plot(koku_nv$size, xlim=c(0,40), koku_nv$Q31S1, pch="", xaxt="n", yaxt="n", xlab="クラスサイズ", ylab="実施頻度が「いつも・ほとんど」の割合", axes=F)
axis(side=1, at=seq(0, 40, 5), cex.axis = 1.0)
axis(side=2, at=seq(0, 1, 0.2),labels=c("0.0", "0.2", "0.4", "0.6", "0.8", "1.0"),cex.axis = 1.0)
# ロジスティック曲線のための値取り出し
i.koku.nv.res.Q31S2 <- mean(koku.nv.mc.res.Q31S2[,1])
s.koku.nv.res.Q31S2 <- mean(koku.nv.mc.res.Q31S2[,2])
# 曲線に流し込むx軸範囲と区切り
x <- seq(0, 40, 1)
# ロジスティック曲線の式
y.koku.nv.res.Q31S2 <- 1 / (1 + exp(-i.koku.nv.res.Q31S2 - s.koku.nv.res.Q31S2 * x))
# 曲線描画
lines(x, y.koku.nv.res.Q31S2, lty=1)

# 凡例
#legend(20, 1.0, c("理由・考え方", "正誤"), lty=c(1, 2), col=c(1, 1), bty= "n", cex=1.0)