マウスを使った実験を考えてみてください。マウスを 2 つのグループに分け、これらのグループに異なる用量のカフェインを与えます。また、一定量のカフェインを投与されている各グループを、異なる用量のテストステロンを投与する 2 つのグループに分割することもできます。いわゆる 2x2 設計になります。次のマトリックスは、2x2x2 設計を表しています。
> groups
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 1 2 -0.811962000
[2,] 2 2 1 1 9 1.142115906
[3,] 3 1 2 1 3 -0.999317454
[4,] 4 2 2 1 7 -1.984324334
[5,] 5 1 1 2 10 1.816095153
[6,] 6 2 1 2 1 1.567284537
[7,] 7 1 2 2 6 0.009253221
[8,] 8 2 2 2 5 -1.764737015
行: 個人
列 1 : ただの ID です。あまり気にしないでください。
列 2 : 第 1 因子 (cafein) のグループ
列 3 : 第 2 因子 (テストステロン) のグループ
列 3 : 3 番目の要素 (食品の量) のグループ
列 5 : ただの ID です。あまり気にしないでください。
列 6 : 特性値 (実験後のこれらのマウスの平均体重との差である可能性があります)
この特定のマトリックスでは、グループごとに 1 人の個人がいます。もちろん、デザインはさまざまで、グループごとの個体数も異なります。グループあたり 12 の ind を持つ 2x3x5 計画 (3 つの因子、1 番目、2 番目、および 3 番目の因子内の 2、3、および 5 つのグループ) がある場合があります。
私の目的 : これらの処理のいくつかの効果をシミュレートします。
エフェクトには、基本的に次の 2 種類があります。
治療への影響 (factors.effect オブジェクト)
と
処理間の相互作用の効果 (interactions.effects オブジェクト)。
私は2つのオブジェクトを持っています:
> factors.effect
[1] 1 2 3
> interactions.effect
[[1]]
[1] 1 3
[[2]]
[1] 1 2 3
これらのオブジェクトは「半分ランダムに」作成されます。
私はすでにfactor.effectを適用する方法を解決しました。これが私が使用しているコードです。
for (factor.effect in factors.effect){
for (group.effect in unique(groups[,factor.effect+1])[-1]){
groups[which(groups[,factor.effect+1]==group.effect),ncol(groups)] = groups[which(groups[,factor.effect+1]==group.effect),ncol(groups)] + seq(from=0,to=treatment.factors.inloop,length.out=length(unique(groups[,factor.effect+1])))[group.effect]
}
}
treatment.factor.inloop には、治療の最大の可能な効果を表す単一の整数が含まれています。このコードは、グループ数が増えるにつれて効果を高めることができます。
私の質問は次のとおりです: interact.effect に対して同様のものを計算するにはどうすればよいですか?
したがって、interactions.effect [ 1 ] (c(1,3)) を使用する場合、factor1 と factor3 が高い場合、コードは特性値を増加させる必要があります。ただし、これらの要因のいずれかが 1 に等しい場合 (グループ 1)、効果を追加する必要はありません。2つの要因の平均を取るだけでは簡単ではないと思います。この交互作用効果は、factors.effect と同様に段階的であることが重要です。
次に、データをプロットすると、そのような結果になるはずです(美しいプロットではない場合は申し訳ありません!):
どうもありがとう