使用CLM封装R

时间:2019-07-03 17:55:09

标签: r ordinal

我已经尝试并搜索了,但没有发现太多。

我正在尝试使用顺序包中的CLM来分析一些数据。我知道clm函数带有比例赔率假设。该网站(https://rcompanion.org/handbook/G_01.html)表示,如果您使用“ nominal_test”,并且任何变量都违反了比例赔率假设(如将其放入序数包函数nominal_test中的情况,则返回有效p -值),则可以有选择地放宽这些变量的比例赔率假设。所以我尝试了这个,但是对于如何真正解释结果感到困惑。

例如,我有一些代码:

glm_results = clm(Z ~ A +  B +  C + D + E + F + G + H +I+J + K,
                     data = the_data,
                    link = "logit", threshold = "flexible")
nominal_test(glm_results)
Z是因变量,是具有级别2、3和4(其中2 <3 <4)的有序变量。其余变量是分类变量,除一个变量外,其他所有变量都有某种形式的层次结构。

nominal_test输出为

            Df  logLik    AIC    LRT Pr(>Chi)   
<none>        -378.22 804.43                   
A           1 -376.94 803.88 2.5579 0.109744   
B           1 -377.61 805.22 1.2131 0.270710   
C           4 -374.13 804.26 8.1699 0.085549 . 
D           2 -376.76 805.53 2.9036 0.234153   
E           4 -376.40 808.79 3.6423 0.456581   
F           3 -373.67 801.33 9.0990 0.028003 * 
G           3 -377.56 809.13 1.3065 0.727584   
H           1 -374.36 798.72 7.7168 0.005471 **
I           1 -377.29 804.58 1.8543 0.173285   
J           1 -377.38 804.76 1.6760 0.195460   
K           1 -377.97 805.93 0.5000 0.479484 

因此,只有F和H不遵循比例对数优势假设。因此,对于这些变量,我可以在原始的glm公式中放宽F和H。因此,我假设这意味着对于F和H以外的所有变量,都存在比例赔率假设(无论是比较因变量Z2与Z3还是Z3与Z4,自变量贡献的系数/差都是相同的) 。因此,我可以像这样在函数中放松它:

glm_results = clm(Z ~ A +  B +  C + D + E + F + G + H +I+J + K,
                     data = the_data,
                    link = "logit", threshold = "flexible",
                    nominal = ~F+H)
summary(glm_results)

结果如下:

link  threshold nobs logLik  AIC    niter max.grad cond.H 
 logit flexible  446  -370.16 796.31 6(0)  3.22e-10 6.0e+02

Coefficients: (4 not defined because of singularities)
                         Estimate Std. Error z value Pr(>|z|)    
A           -0.28149    0.39319  -0.716 0.474045    
B           -0.00197    0.30173  -0.007 0.994792    
C4           1.35216    0.48257   2.802 0.005079 ** 
C5           1.19916    0.44374   2.702 0.006884 ** 
C6           1.69882    0.44899   3.784 0.000155 ***
C7           1.76681    0.45556   3.878 0.000105 ***
D2          -1.46896    0.36901  -3.981 6.87e-05 ***
D3          -0.52158    0.50353  -1.036 0.300275    
E2          -0.63759    0.33855  -1.883 0.059660 .  
E3          -0.79584    0.28221  -2.820 0.004801 ** 
E4          -0.07828    0.35013  -0.224 0.823081    
E5           0.02954    0.42210   0.070 0.944205    
F2             NA         NA      NA       NA    
F3             NA         NA      NA       NA    
F4             NA         NA      NA       NA    
G2          -0.72327    0.46516  -1.555 0.119969    
G3          -1.02087    0.38398  -2.659 0.007846 ** 
G4          -1.27764    0.44615  -2.864 0.004187 ** 
H            NA         NA      NA       NA    
I          -0.24169    0.53224  -0.454 0.649756    
J          -0.40141    0.54486  -0.737 0.461294    
K          -0.22664    0.55336  -0.410 0.682119    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Threshold coefficients:
                             Estimate Std. Error z value
2|3.(Intercept)              -2.63233    0.89030  -2.957
3|4.(Intercept)              -0.09137    0.88626  -0.103
2|3.F2       -0.78198    0.42903  -1.823
3|4.F2        0.13041    0.34849   0.374
2|3.F3       -0.68971    0.42141  -1.637
3|4.F3       -0.63912    0.33739  -1.894
2|3.F4       -0.33434    0.45516  -0.735
3|4.F4       -0.79488    0.36469  -2.180
2|3.H1       -0.94242    0.34311  -2.747
3|4.H1        0.01908    0.24686   0.077

请注意,“奇异性”是我选择放松的F和H变量。另请注意,E2,E3,E4,E5等是分类变量的级别。您将获得与每个分类变量(E2与E1,E3与E1)的基数/最低水平的成对比较的系数。但是,对于那些没有被“名义”放宽的变量,您只有一个系数,因为我们假设这些变量的对数赔率成比例。对于“名义”变量,每个级别都有两个不同的系数。一个用于因变量的2与3之间的差,另一个用于3与4之间的差。这是有道理的,因为您没有假设2 | 3和3 | 4的几率相同。

但是,然后,我只是尝试对标称值放宽其他未必由标称测试指示的变量来放宽。例如,我做了以下事情:

glm_results = clm(Z ~ A +  B +  C + D + E + F + G + H +I+J + K,
                     data = the_data,
                    link = "logit", threshold = "flexible",
                    nominal = ~F+E+H)
summary(glm_results)

我在变量E中加上了标称值。在“阈值”部分中,对于“名义”松弛变量的摘要,我得到以下结果:

              Estimate Std. Error z value
2|3.E2        1.34267    0.50887   2.639
3|4.E2        0.26653    0.36836   0.724
2|3.E3        0.80729    0.45744   1.765
3|4.E3        0.95040    0.33940   2.800
2|3.E4        0.23697    0.52950   0.448
3|4.E4        0.02926    0.40370   0.072
2|3.E5        0.48218    0.60322   0.799
3|4.E5       -0.18231    0.43848  -0.416

所以我的问题是,在我看来,如果不违反变量的比例赔率假设,那么该分类变量的2 | 3和3 | 4的系数不应该相似吗?我可能1000%都做错了。例如2 | 3.E4和3 | 4.E4的系数似乎完全不同。我的解释不正确吗?类似地,在最初被认为是松弛候选对象的变量(如变量F)中,2 | 3.F3和3 | 4.F3系数非常相似。

我想知道我是否可以就如何准确解释这些问题获得一些指导。如何正确确定放宽赔率假设的变量?我假设对于那些不违反比例对数赔率假设的变量,将它们放在“名义”函数中时,对于相同的分类成对比较,对于2 | 3和3 | 4得出的系数应该相似。这是不正确的解释或假设吗?

如果这不是最好的方法,我该如何使用VGLM进行测试,然后放松代码中的特定变量?

感谢您的支持和指导。

0 个答案:

没有答案