我尝试分析具有序数响应(0-4)和三个分类因子的数据集。我对所有三个因素的相互作用以及主要影响感兴趣。我使用了包的clm函数"序数"并使用" nominal_test"检查假设。功能。它揭示了其中一个预测因子的显着差异。而现在我不知道如何继续...我试图将问题因素及其所有相互作用放在名义上的#34;参数(见代码)和R给我警告。尽管如此,我做了几个可能性比率测试总是比较一个模型,包括一个与缺少它的人的交互(ANOVA(没有,有,测试=" Chisq"))并得到一些不错的重要结果。不过,我觉得我不知道我在这里做什么,我不相信结果。所以我的问题是:我做的不错吗?我还可以做些什么?或者数据是否无法分析'?
以下是测试的代码:
# this is the model
res=clm(cue~ intention:outcome:age+
intention:outcome+
intention:age+
outcome:age+
intention+outcome+age+
Gender,
data=xdata)
#proportional odds assumption
nominal_test(res)
# Df logLik AIC LRT Pr(>Chi)
#<none> -221.50 467.00
#intention 3 -215.05 460.11 12.891 0.004879 **
#outcome 3 -219.44 468.87 4.124 0.248384
#age
#Gender 3 -219.50 469.00 3.994 0.262156
#intention:outcome
#intention:age
#outcome:age 6 -217.14 470.28 8.716 0.190199
#intention:outcome:age 12 -188.09 424.19 66.808 1.261e-09 ***
这是我试图解决它的一个例子 - &gt;并检查所有三个预测变量的三向交互。我也为双向交互做了同样的事情......
res=clm(cue~ outcome:age+
outcome+age+
Gender,
nominal= ~ intention:age:outcome+
intention:age+
intention:outcome+
intention,
data=xdata)
res.red=clm(cue~ outcome:age+
outcome+age+
Gender,
nominal= ~
intention:age+
intention:outcome+
intention,
data=xdata)
anova(res,res.red, test="Chisq")
# no.par AIC logLik LR.stat df Pr(>Chisq)
#res.red 26 412.50 -180.25
#res 33 424.11 -179.05 2.3945 7 0.9348
以下是当我尝试对模型进行收集时R给出的警告:
Warning message:
(-3) not all thresholds are increasing: fit is invalid
In addition: Absolute convergence criterion was met, but relativecriterion was not met
我特别关注这句话&#34; Fit无效&#34; ...我不知道如何处理这个问题,并且会对任何想法或暗示感到高兴!< / p>
谢谢!
答案 0 :(得分:0)
您是否尝试使用更为通用的模型,如部分比例赔率模型?您的数据只需要是名义上的,而不是序数来使用此模型。如果您发现对数可能性之间存在差异,则无法满足您对正常性的假设。
您可以使用VGAM包中的vlgm()。 Here就是一些例子。
由于我不知道您的数据是什么样的,我不能说它是否无法分析,但代码将是这样的:
library(VGAM)
res <- vglm(cue ~ intention:outcome:age+
intention:outcome+
intention:age+
outcome:age+
intention+outcome+age+
Gender,
family = cumulative(parallel = FALSE ~ intention),
data = xdata)
summary(res)
我认为您可以使用我在上面发布的示例中提出的pchiq()来比较两个模型,就像之前使用anova()一样:
pchisq(deviance(res) - deviance(res.red),
df = df.residual(res) - df.residual(res.red), lower.tail = FALSE)