LMER因子与数值交互作用

LMER因子与数值交互作用,r,lme4,interaction,ordinal,R,Lme4,Interaction,Ordinal,我正在尝试使用lmer对我的数据进行建模 我的数据有两个自变量和一个因变量 第一个是“变形”,其值为“相同”、“近”、“远”。 第二个是“响应”,可以是“旧的”或“新的”。 因变量为“固定计数” 这是一个示例数据帧,也是我目前运行线性模型的数据帧 Subject <- c(rep(1, times = 6), rep(2, times = 6)) q <- c("Identical", "Near", "Far") Morph <- c(rep(q, times = 4))

我正在尝试使用lmer对我的数据进行建模

我的数据有两个自变量和一个因变量

第一个是“变形”,其值为“相同”、“近”、“远”。
第二个是“响应”,可以是“旧的”或“新的”。
因变量为“固定计数”

这是一个示例数据帧,也是我目前运行线性模型的数据帧

Subject <- c(rep(1, times = 6), rep(2, times = 6))
 q <- c("Identical", "Near", "Far")
 Morph <- c(rep(q, times = 4))
 t <- c(rep("old", times = 3),rep("new", times=3))
 Response <- c(rep(t, times = 2))
 Fix_Count <- sample(1:9, 12, replace = T)
 df.main <- data.frame(Subject,Morph, Response, Fix_Count, stringsAsFactors = T)
df.main$Subject <- as.factor(df.main$Subject)

 res = lmer(Fix_Count ~ (Morph * Response) + (1|Subject), data=df.main)
 summary(res)

Subject我看到两个问题。首先,您应该为主题使用因子变量。它显然不是一个连续或整数变量。为了(可能)解决部分问题,有一个
交互
函数设计用于处理回归公式。我很确定formula接口将解释您用来调用
交互
的“*”运算符,但输出的标签可能不同,可能更符合您的喜好。我得到了相同数量的系数:

res = lmer(Fix_Count ~ interaction(Morph , Response) + (1|Subject), data=df.main)
但这并不是一个进步。 但是,它们与使用
Morph*Response
创建的模型不同。可能存在一组不同的对比度选项

获得交互整体统计测试的方法是比较嵌套模型:

res_simple = lmer(Fix_Count ~ Morph + Response + (1|Subject), data=df.main)
然后对模型比较进行方差分析:

anova(res,res_simple)
refitting model(s) with ML (instead of REML)
Data: df.main
Models:
res_simple: Fix_Count ~ Morph + Response + (1 | Subject)
res: Fix_Count ~ interaction(Morph, Response) + (1 | factor(Subject))
           Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
res_simple  6 50.920 53.830 -19.460   38.920                         
res         8 54.582 58.461 -19.291   38.582 0.3381      2     0.8445

我的观点是,它足够接近统计与编码的界限,在任何一个论坛上都可以接受。(然而,你不应该交叉张贴。)如果你对编码答案感到满意,那么我们就完成了。如果你在理解模型比较方面需要帮助,那么你可能需要编辑你简历上的问题,要求得到比我更基于理论的答案。(我检查以确保无论使用交互函数还是“*”运算符,
anova
结果都是相同的。)

我看到了两个问题。首先,您应该为主题使用因子变量。它显然不是一个连续或整数变量。为了(可能)解决部分问题,有一个
交互
函数设计用于处理回归公式。我很确定formula接口将解释您用来调用
交互
的“*”运算符,但输出的标签可能不同,可能更符合您的喜好。我得到了相同数量的系数:

res = lmer(Fix_Count ~ interaction(Morph , Response) + (1|Subject), data=df.main)
但这并不是一个进步。 但是,它们与使用
Morph*Response
创建的模型不同。可能存在一组不同的对比度选项

获得交互整体统计测试的方法是比较嵌套模型:

res_simple = lmer(Fix_Count ~ Morph + Response + (1|Subject), data=df.main)
然后对模型比较进行方差分析:

anova(res,res_simple)
refitting model(s) with ML (instead of REML)
Data: df.main
Models:
res_simple: Fix_Count ~ Morph + Response + (1 | Subject)
res: Fix_Count ~ interaction(Morph, Response) + (1 | factor(Subject))
           Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
res_simple  6 50.920 53.830 -19.460   38.920                         
res         8 54.582 58.461 -19.291   38.582 0.3381      2     0.8445

我的观点是,它足够接近统计与编码的界限,在任何一个论坛上都可以接受。(然而,你不应该交叉张贴。)如果你对编码答案感到满意,那么我们就完成了。如果你在理解模型比较方面需要帮助,那么你可能需要编辑你简历上的问题,要求得到比我更基于理论的答案。(我检查以确保
anova
结果是相同的,无论您使用的是交互函数还是“*”操作符。)

我非常确定
交互(变形,响应)
因子(粘贴(变形,响应,sep=“.”)相当,因此
交互之间的真正区别是(变形、响应)
Morph*Response
是指你是否获得了主要效果。你可能是对的,在这种情况下,使用“交互”的建议显然是不明智的。我要强调一下,因为问题的核心是如何进行跨模型比较。感谢你的回答。因此,要澄清这个想法,就要制作一个没有交互的模型然后是交互作用的模型,然后使用方差分析,看看交互作用的模型对数据的拟合程度有多好。你可以从中得到一个p值。如果我单独使用方差分析(res)(而不是摘要(res),而不是方差分析(res,res_simple)),似乎可以得到相同的值。是首选吗?谢谢!“是的”对于第一个问题,“不是这样”对于第二个问题。我不会想到那些ANOVA调用会有两个会给出相同的结果。
ANOVA(res,res_reduced)
给了我两行数字值,需要根据模型自由度检查模型拟合的差异。
ANOVA(res)
根本不会给出相同的结果。不确定“t-stats”是什么意思。这个问题(至少我理解的是)是关于模型比较的,而不是关于可能使用t-tests的Wald类型测试。问题中的原始输出有
t-values
。我非常确定
交互(变形,响应)
几乎等同于
因子(粘贴(变形,响应,sep=“.”)
,因此
交互(变形,响应)之间的真正区别
Morph*Response
是指你是否获得了主要效果。你可能是对的,在这种情况下,使用“交互”的建议显然是不明智的。我要强调一下,因为问题的核心是如何进行跨模型比较。感谢你的回答。因此,要澄清这个想法,就要制作一个没有交互的模型然后是交互作用的模型,然后使用方差分析,看看交互作用的模型对数据的拟合程度有多好。你可以从中得到一个p值。如果我单独使用方差分析(res)(而不是摘要(res),而不是方差分析(res,res_simple)),似乎可以得到相同的值。是首选吗?谢谢!“是的”对于第一个问题,“不是这样”对于第二个问题。我不会想到那些ANOVA调用会有两个会给出相同的结果。
ANOVA(res,res_reduced)
给了我两行数字值,需要根据模型自由度检查模型拟合的差异。
ANOVA(res)