COMMON.R
,
samples.R
,
grouping.R
,
estimate.R
たちを保存.
setwd(ディレクトリ名)
で移動する.
source("samples.R")
> plot.frame() > plot.samples.box() > plot.samples()これらの作図関数は COMMON.R で定義されている.
source(estimate.R)
して以下のように推定計算する.
> source("estimate.R")
> list <- estimate.poisson(samples)
# evaluating Model(A+B+C) AIC = 214.1 ...
# evaluating Model(A+B)(C) AIC = 211.1 ...
# evaluating Model(A+C)(B) AIC = 216.1 ...
# evaluating Model(A)(B+C) AIC = 210.9 ...
# evaluating Model(A)(B)(C) AIC = 212.0 ...
COMMON.R
parameter <- data.frame(
"treatment" = as.character(c("A", "B", "C")),
"mean" = c(2.5, 3.5, 3.5),
"n" = as.integer(c(20, 10, 20))
)
samples.R
source("samples.R")
とすると samples.RData
というファイルに乱数例が保存される
(このファイル名は COMMON.R
で定義されている).
このデータは load("samples.RData")
で読みこめる.
grouping.R
generate.groups()
関数など;
(注意)
gregmisc
package が必要なので
CRAN
からダウンロードしてインストールしてください.
source("grouping.R")
とすると定義された関数たちが読みこまれる.
generate.groups(水準のvector) 関数
generate.groups(c("A", "B"))
とすると
[[1]] [[1]]$tag [1] "(A+B)" [[1]]$map A B "(A+B)" "(A+B)" [[1]]$number.groups [1] 1 [[2]] [[2]]$tag [1] "(A)(B)" [[2]]$map A B "(A)" "(B)" [[2]]$number.groups [1] 2という出力が得られる (データ構造は
list).
これは A と B
の二水準のときに
(A+B) (A と B は同じ)
あるいは
(A)(B) (A と B は異る)
といったグループわけができることを示している.
出力の list
内の各要素のうち tag
はグループわけの名前,
map
(写像)
は各水準の所属するグループをあらわす.
> sapply(generate.groups(1:4), function(e) e$tag) [1] "(1+2+3+4)" "(1+2+3)(4)" "(1+2+4)(3)" "(1+3+4)(2)" "(1)(2+3+4)" [6] "(1+2)(3+4)" "(1+3)(2+4)" "(1+4)(2+3)" "(1+2)(3)(4)" "(1+3)(2)(4)" [11] "(1+4)(2)(3)" "(1)(2+3)(4)" "(1)(2+4)(3)" "(1)(2)(3+4)" "(1)(2)(3)(4)"
estimate.R
glm()
関数で評価し,
その結果の list
を返す
source("grouping.R")
とすると定義された関数たちが読みこまれる.
上述の samples.R
で生成された samples
を読みこみ,
計算する.
使用例:
> list.results <- estimate.poisson(samples) # evaluating Model(A+B+C) AIC = 195.5 ... # evaluating Model(A+B)(C) AIC = 194.7 ... # evaluating Model(A+C)(B) AIC = 197.3 ... # evaluating Model(A)(B+C) AIC = 192.9 ... # evaluating Model(A)(B)(C) AIC = 194.8 ...
list.results
に glm()
の推定結果が入っている.
> labels(list.results) # list.results にいくつ結果が入っているか見る
[1] "1" "2" "3" "4" "5"
> list.results[[4]] # 4 番目の推定結果を表示
$tag
[1] "(A)(B+C)"
$map
B C A
"(B+C)" "(B+C)" "(A)"
$number.groups
[1] 2
$glm
Call: glm(formula = samples$observed ~ tr.mapped - 1, family = poisson(link = log))
Coefficients:
tr.mapped(A) tr.mapped(B+C)
0.875 1.243
Degrees of Freedom: 50 Total (i.e. Null); 48 Residual
Null Deviance: 189
Residual Deviance: 50.2 AIC: 193