2

lmer 関数を使用して、3 つの異なる条件 (条件 = 0、1、2) とターゲットの存在 (ターゲット = False または True) の間の反応時間 (RT) に相互作用の影響があるかどうかを調査しようとしています。患者(患者)。

次の式を書きました。

lmer(RT~cond*target+(1|Patient))

私の問題は、この関数のデフォルトの切片が cond = 0 および target = False であるのに対し、切片を cond= 0 および target=True にしたいことです (cond0*target= の間に大きな違いがあるかどうかを確認するため)。 True および cond1*target=True)。

よろしくお願いします。

ここに私が持っている出力があります

stu3<-lmer(RT~cond*target+(1|Patient), 
   data=subset(ss, Groupe=="ugs" & primeable ==TRUE     & 
          Correct==TRUE & NoPrac==TRUE))

pvals.fnc(stu3)


$fixed
                  Estimate MCMCmean HPD95lower HPD95upper  pMCMC Pr(>|t|)
(Intercept)         0.5511   0.5513     0.5258     0.5807 0.0001   0.0000
cond1               0.0618   0.0619     0.0498     0.0741 0.0001   0.0000
cond2               0.0285   0.0285     0.0142     0.0438 0.0002   0.0001
targetFALSE         0.1389   0.1389     0.1239     0.1549 0.0001   0.0000
cond1:targetFALSE  -0.0752  -0.0751    -0.0943    -0.0545 0.0001   0.0000
cond2:targetFALSE  -0.0788  -0.0786    -0.0998    -0.0564 0.0001   0.0000

$random
    Groups        Name Std.Dev. MCMCmedian MCMCmean HPD95lower HPD95upper
1  Patient (Intercept)   0.0610     0.0583   0.0599     0.0425     0.0797
2 Residual               0.1674     0.1674   0.1674     0.1650     0.1699

私のデータに基づいて、選択されている切片はcond0:targetTRUEで、出力の他のレベルはcond1:targetFALSEcond2:targetFALSEです。

4

2 に答える 2

1

私の理解が正しければ、あなたのモデルは、あなたが内部に持ちたいと思う解釈をすでに行っていますtarget==TRUE。私が正しければ、例のモデル用語を次のように翻訳できます。

"(Intercept)"       -> target==TRUE, cond==0 (even if model matrix contains all conds)
"cond1"             -> target==TRUE, cond==1 on top of cond==0
"cond2"             -> target==TRUE, cond==2 on top of cond==0
"targetFALSE"       -> target==FALSE, cond==0 (even if model matrix contains all conds)
"cond1:targetFALSE" -> target==FALSE, cond==1 on top of cond==0
"cond2:targetFALSE" -> target==FALSE, cond==2 on top of cond==0

"(Intercept)"では、項、"cond1"およびで興味深い違いが検出されません"cond2"か? の固定効果のモデル マトリックス構造を調べるgetME(stu3,'X')と役立つ場合があります。

以下は、あなたのケースをテストするために作成したデータの例です。3 つの異なる応答を作成したことに注意してください。1 つは効果なし、もう 1 つは効果のみ、もう 1target==TRUEつは の効果target==TRUEと相互作用効果target==TRUEと のさまざまなレベルですcond。人為的に導入された効果は、 および で検出されfit1ますfit2

set.seed(0)
struct <- expand.grid(target = c(FALSE,TRUE), cond = as.factor(0:2), patient = LETTERS[1:20])
attach(struct)
ranpatient <- rep(rnorm(20), each=6)
rerror <- rnorm(120)
# Just random noise
response0 <- ranpatient + rerror
# When target==TRUE we increment the response by 1 and add errors
response1 <- 1*target + ranpatient + rerror
# When target==TRUE we increment the response by  1,
# to which we also add an interaction effect condition {0,1,2} * target {0,1}
# notice that numeric transformation of cond {0,1,2} transforms to ranks {1,2,3}
response2 <- 1*target + target*(as.numeric(cond)-1) + ranpatient + rerror

dat <- data.frame(cond, target, patient, response0, response1, response2)   
detach(struct)

require(lme4)
fit0 <- lmer(response0 ~ cond*target + (1|patient), data=dat)
fit1 <- lmer(response1 ~ cond*target + (1|patient), data=dat)
fit2 <- lmer(response2 ~ cond*target + (1|patient), data=dat)

head(dat)
round(coef(summary(fit0)),2) # Notice low t values
round(coef(summary(fit1)),2) # High t value for targetTRUE
round(coef(summary(fit2)),2) # High t value for interaction cond0/1/2 with targetTRUE
# Notice how cond==1 adds 1, and cond==2 adds 2 in comparison to cond==0 when targetTRUE
# Notice also that coefficient "cond2:targetTRUE" is incremental to term "targetTRUE", not "cond1:targetTRUE"
head(getME(fit2,'X')) # Columns correspond to the fixed effect terms

出力付き

> head(dat)
  cond target patient response0 response1 response2
1    0  FALSE       A  1.038686  1.038686  1.038686
2    0   TRUE       A  1.640350  2.640350  2.640350
3    1  FALSE       A  1.396291  1.396291  1.396291
4    1   TRUE       A  2.067144  3.067144  4.067144
5    2  FALSE       A  1.205848  1.205848  1.205848
6    2   TRUE       A  1.766562  2.766562  4.766562
> round(coef(summary(fit0)),2) # Notice low t values
                 Estimate Std. Error t value
(Intercept)         -0.13       0.31   -0.40
cond1                0.18       0.29    0.62
cond2                0.00       0.29    0.00
targetTRUE           0.00       0.29   -0.01
cond1:targetTRUE     0.13       0.41    0.32
cond2:targetTRUE     0.08       0.41    0.19
> round(coef(summary(fit1)),2) # High t value for targetTRUE
                 Estimate Std. Error t value
(Intercept)         -0.13       0.31   -0.40
cond1                0.18       0.29    0.62
cond2                0.00       0.29    0.00
targetTRUE           1.00       0.29    3.42
cond1:targetTRUE     0.13       0.41    0.32
cond2:targetTRUE     0.08       0.41    0.19
> round(coef(summary(fit2)),2) # High t value for interaction cond0/1/2 with targetTRUE
                 Estimate Std. Error t value
(Intercept)         -0.13       0.31   -0.40
cond1                0.18       0.29    0.62
cond2                0.00       0.29    0.00
targetTRUE           1.00       0.29    3.42
cond1:targetTRUE     1.13       0.41    2.75
cond2:targetTRUE     2.08       0.41    5.04
> # Notice how cond==1 adds 1, and cond==2 adds 2 in comparison to cond==0 when targetTRUE
> # Notice also that coefficient "cond2:targetTRUE" is incremental to term "targetTRUE", not "cond1:targetTRUE"
> head(getME(fit2,'X')) # Columns correspond to the fixed effect terms
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    0    0    0    0    0
[2,]    1    0    0    1    0    0
[3,]    1    1    0    0    0    0
[4,]    1    1    0    1    1    0
[5,]    1    0    1    0    0    0
[6,]    1    0    1    1    0    1
于 2013-02-28T13:18:46.403 に答える
1

標準の「因子管理」が効果的かどうかを確認します。

target=factor(target, levels=c("TRUE", "FALSE")
lmer(RT~cond*target+(1|Patient))

(「インターセプトを変更する」ではなく「参照レベルを変更する」というフレーズを使用したでしょうが、実際には同じプロセスだと思います。「参照レベルを変更する」というフレーズは、MarkMail Rhelp でかなりの数のヒットを得たと思います。またはSO検索。)

于 2013-02-27T20:18:31.090 に答える