R_コントラスト - RとLinuxと...

RとLinuxと...


R_コントラスト

Rでのコントラストについてのメモをいくつかまとめる(未整理)

_ Helmert contrasts vs. Treatment contrasts 2006 01 30

  • crawelye, S-Plus, p.333, p.340
y = u + b1 x1 + b2 x2 + b3 x3 + b4 x4

というモデルが想定される場合,五つのパラメータを想定する必要はない。 treatment mean は b1 を 0 と見なし,x1 の平均を u とし,他の b は,u との差と考える。

これに対して Helmert Contrasts は,

全体平均を最初のパラメータとし 最初と二つ目の平均の平均と,最初の平均との差を第二のパラメータ 最初と二つ目の平均の平均と,最初と二つ目さらに三つ目の平均の平均との差を第三のパラメータ 最初と二つ目さらに三つ目の平均の平均と,全体平均の差を第四のパラメータ

_ コントラストを手作業で設定するのは

  • John Fox p.127 -- 153

_ Contrasts Matrix の意味 2006 12 08

Brian S. Everitt, Torsten Hothorn: A Handbook of Statistical Analyses using R

# p.75 下

_ 以下は2007年行動計量学会Rチュートリアルでの配布資料から

  • R の分散分析の仕組み,また結果を正確に解釈するには「コントラスト」について理解しておく必要がある.ここでは詳しく述べないが,詳細は\citet[pp. 364--386]{crawley07} あるいは\citet[pp. 173--174, pp. 209--226, pp. 323--344]{crawley02},\citet[p. 75]{everitt06:_handb_statis_analy_using_r},\citet[pp. 127--153]{fox02:_r_s_plus_compan_applied_regres}などを参照されたい.
  • コントラストとは
    • ごく簡単にコントラスト treatment.contr に触れておくと R で分散分析を実行し,その結果から各水準の係数を summary.lm() で出力した場合,各水準の有意度は intercept と比較した場合を想定しており,前後の水準との比較では無い.さらにこの表で intercept は factor の (アルファベット順で) 最初の水準の平均に設定されており,全平均ということでは無い.

# treatment contrasts を理解する

comp <- read.table(
"http://www.bio.ic.ac.uk/research/mjcraw/therbook/data/competition.txt", 
header = TRUE)
attach(comp)
comp.aov <- aov(biomass ~ clipping)
summary(comp.aov )
summary.lm(comp.aov)

# 上の出力の内容を確認

(means <- tapply(biomass, clipping, mean))
means - means[1] # control 群の平均を引く.これが「効果」

# 標準誤差 Std.Err の意味

# Intercept の誤差は,control 群の平均の誤差

# プールされた平均誤差分散を control の繰り返し数で割って平方根を取る

sqrt(4961/6)

# 2行目以降の標準誤差は平均の「差」の誤差

# 水準が独立であれば,平均の差の分散は,二つの水準の分散の和

sqrt(2 * 4916/6)
detach(comp)
  • 参考:コントラストをマニュアルで変更する
  • ここでは Fox に基づいて,次のような課題を分析してみる.66 人の幼児をランダムに三つのグループに分け,それぞれ異なった教授法で読み方を教えたとする.その上で,読み方の試験 (\verb|post.test.3|) を実施し,標準的な教授法 (\verb|Basel|) と,他の二つの新しい方法 (\verb|DRTA, Strat|) とに効果の差があるか,また新しい二つの方法の間に差があるかを,一度に検定することにする.

# Fox p.143 より

Baumann <-  
read.table("http://150.59.18.68/Baumann.txt")
attach(Baumann)
baumann.aov1 <- aov(post.test.3 ~ group)
summary.lm(baumann.aov1)      # 通常のコントラストによる解析
                              # これは Basel と他の水準の差
contrasts(group) <- matrix(c(1,-0.5,-0.5,  0,-1,1), 3,2)
contrasts(group)              # 直交するコントラストを作成
baumann.aov2 <- aov(post.test.3 ~ group)
summary.lm(baumann.aov2)

# 標準的方法と最新の方法の間には差があるが

# 最新の二つの方法の間には差は無い

 
Link: Rの備忘録(1823d)
Last-modified: 2007-09-22 (土) 12:26:52 (4102d)