共同研究者が分析を行いますが、SAS を持っていないため、反復測定モデルを SAS から R に変換しようとしています。4 つのグループを扱い、1 グループあたり 8 ~ 10 匹の動物を扱い、各動物に 5 つの時点を設定します。モック データ ファイルは、こちら https://drive.google.com/file/d/0B-WfycVUQyhaVGU2MUpuQkg4Mk0/edit?usp=Rdata ファイルとして共有され、こちら https://drive.google.com/file/d/ から入手できます。0B-WfycVUQyhaR0JtZ0V4VjRkTk0/edit?usp= Excel ファイルとして共有:
元の SAS コード (1) は次のとおりです。
proc mixed data=essai.data_test method=reml;
class group time mice;
model param = group time group*time / ddfm=kr;
repeated time / type=un subject=mice group=group;
run;
与える:
Type 3 Tests des effets fixes
DDL DDL Valeur
Effet Num. Res. F Pr > F
group 3 15.8 1.58 0.2344
time 4 25.2 10.11 <.0001
group*time 12 13.6 1.66 0.1852
R は SAS と同じように自由度を処理しないことを知っているので、最初に (2) のような結果を得ようとしています。
proc mixed data=essai.data_test method=reml;
class group time mice;
model param = group time group*time;
repeated time / type=un subject=mice group=group;
run;
ここでいくつかのヒントを見つけました反復測定混合モデル式を SAS から Rに変換し、複合対称相関行列を指定すると、これは完全に機能します。ただし、一般的な相関行列については同じことを得ることができません。
SAS で (2) を使用すると、次の結果が得られます。
Type 3 Tests des effets fixes
DDL DDL Valeur
Effet Num. Res. F Pr > F
group 3 32 1.71 0.1852
time 4 128 11.21 <.0001
group*time 12 128 2.73 0.0026
次の R コードを使用します。
options(contrasts=c('contr.sum','contr.poly'))
mod <- lme(param~group*time, random=list(mice=pdDiag(form=~group-1)),
correlation = corSymm(form=~1|mice),
weights = varIdent(form=~1|group),
na.action = na.exclude, data = data, method = "REML")
anova(mod,type="marginal")
私は得る:
numDF denDF F-value p-value
(Intercept) 1 128 1373.8471 <.0001
group 3 32 1.5571 0.2189
time 4 128 10.0628 <.0001
group:time 12 128 1.6416 0.0880
自由度は似ていますが、固定効果のテストではなく、これがどこから来たのかわかりません。ここで私が間違っていることを誰かが知っていますか?