序数回归 - 交互变量未达到比例赔率假设

时间:2017-09-20 14:47:01

标签: r

我尝试分析具有序数响应(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>

谢谢!

1 个答案:

答案 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)