私が分析しなければならないデータの研究デザインは単純です。1 つのコントロール グループ (CTRL) と 2 つの異なる治療グループ (TREAT_1 および TREAT_2) があります。データには、2 つの共変量 COV1 と COV2 も含まれています。データに線形または二次処理効果があるかどうかを確認するように依頼されました。
私の状況を説明するために、ダミーのデータセットを作成しました。
df1 <- data.frame(
Observation = c(rep("CTRL",15), rep("TREAT_1",13), rep("TREAT_2", 12)),
COV1 = c(rep("A1", 30), rep("A2", 10)),
COV2 = c(rep("B1", 5), rep("B2", 5), rep("B3", 10), rep("B1", 5), rep("B2", 5), rep("B3", 10)),
Variable = c(3944133, 3632461, 3351754, 3655975, 3487722, 3644783, 3491138, 3328894,
3654507, 3465627, 3511446, 3507249, 3373233, 3432867, 3640888,
3677593, 3585096, 3441775, 3608574, 3669114, 4000812, 3503511, 3423968,
3647391, 3584604, 3548256, 3505411, 3665138,
4049955, 3425512, 3834061, 3639699, 3522208, 3711928, 3576597, 3786781,
3591042, 3995802, 3493091, 3674475)
)
plot(Variable ~ Observation, data = df1)
プロットからわかるように、対照群と治療群の間には直線関係があります。この線形効果が統計的に有意かどうかを確認するために、contr.poly() 関数を使用してコントラストを変更し、次のような線形モデルに適合させます。
contrasts(df1$Observation) <- contr.poly(levels(df1$Observation))
lm1 <- lm(log(Variable) ~ Observation, data = df1)
summary.lm(lm1)
要約から、線形効果が統計的に有意であることがわかります。
Observation.L 0.029141 0.012377 2.355 0.024 *
Observation.Q 0.002233 0.012482 0.179 0.859
ただし、この最初のモデルには、2 つの共変量のいずれも含まれていません。それらを含めると、線形関係の有意でない p 値が得られます。
lm2 <- lm(log(Variable) ~ Observation + COV1 + COV2, data = df1)
summary.lm(lm2)
Observation.L 0.04116 0.02624 1.568 0.126
Observation.Q 0.01003 0.01894 0.530 0.600
COV1A2 -0.01203 0.04202 -0.286 0.776
COV2B2 -0.02071 0.02202 -0.941 0.354
COV2B3 -0.02083 0.02066 -1.008 0.320
ここまでは順調ですね。ただし、タイプ I ではなくタイプ II の Anova を実行するように言われました。タイプ II の Anova を実行するには、car パッケージの Anova() 関数を使用しました。
Anova(lm2, type="II")
Anova Table (Type II tests)
Response: log(Variable)
Sum Sq Df F value Pr(>F)
Observation 0.006253 2 1.4651 0.2453
COV1 0.000175 1 0.0820 0.7763
COV2 0.002768 2 0.6485 0.5292
Residuals 0.072555 34
ここでタイプ II を使用する場合の問題は、線形効果と二次効果の p 値が得られないことです。したがって、効果が統計的に線形か二次かはわかりません。
次のコードは、Anova() 関数と同じ Observation の p 値を生成することがわかりました。ただし、結果には、線形効果または二次効果の p 値も含まれていません。
lm2 <- lm(log(Variable) ~ Observation + COV1 + COV2, data = df1)
lm3 <- lm(log(Variable) ~ COV1 + COV2, data = df1)
anova(lm2, lm3)
タイプ II anova と対比関数を実行して、線形効果と二次効果の p 値を取得する方法を知っている人はいますか?
助けていただければ幸いです。
ベストピーター