# How do I retrieve p-values?

I have run ordinal regression in RStudio using two different packages, relaxing the proportional odds assumption for predictor `PROXIMITY`. My ordinal response has 3 levels.

Using `VGAM` and `vglm()`, the output is roughly something like this:

``````> Coefficients:
Estimate    Std. Error      z value Pr(>|z|)
(Intercept):1              0.5117320  0.5437684   0.941 0.346662
(Intercept):2             -0.7123845  0.4982063  -1.430 0.152746
PROXIMITY2:1          1.1099603  0.4781458   2.321 0.020266 *
PROXIMITY2:2          0.8870411  0.4860655   1.825 0.068010
PROXIMITY3:1          0.7963931  0.2106141   3.781 0.000156 ***
PROXIMITY3:2          1.2027518  0.2720969   4.420 9.86e-06 ***
HAB                           -0.0096147  0.0024824  -3.873 0.000107 ***
``````

And then using `clm()` in the `ordinal` package, the output is:

``````> Coefficients:
Estimate   Std. Error     z value Pr(>|z|)
HAB                  -0.009615   0.002511  -3.828 0.000129 ***

> Threshold coefficients:
Estimate   Std. Error z value
1|2.PROXIMITY2 -1.10996    0.48137  -2.306
2|3.PROXIMITY2 -0.88704    0.48672  -1.822
1|2.PROXIMITY3 -0.79640    0.21145  -3.766
2|3.PROXIMITY3 -1.20274    0.27188  -4.424
``````

The predictor for which the assumption is relaxed, `PROXIMITY`, is shown under `threshold coefficients` when using `clm()`, and no p values are produced. Is there a reason for this? How can I retrieve the p values when using the `clm()` approach?

Thanks!

``````library(ordinal)
fm1 <- clm(rating ~ temp * contact, data = wine)
summary(fm1)
#> formula: rating ~ temp * contact
#> data:    wine
#>
#>  link  threshold nobs logLik AIC    niter max.grad cond.H
#>  logit flexible  72   -86.42 186.83 6(0)  5.22e-12 5.1e+01
#>
#> Coefficients:
#>                     Estimate Std. Error z value Pr(>|z|)
#> tempwarm              2.3212     0.7009   3.311 0.000928 ***
#> contactyes            1.3475     0.6604   2.041 0.041300 *
#> tempwarm:contactyes   0.3595     0.9238   0.389 0.697129
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Threshold coefficients:
#>     Estimate Std. Error z value
#> 1|2  -1.4113     0.5454  -2.588
#> 2|3   1.1436     0.5097   2.244
#> 3|4   3.3771     0.6382   5.292
#> 4|5   4.9420     0.7509   6.581
str(fm1)
#> List of 34
#>  \$ aliased      :List of 2
#>   ..\$ alpha: Named logi [1:4] FALSE FALSE FALSE FALSE
#>   .. ..- attr(*, "names")= chr [1:4] "1|2" "2|3" "3|4" "4|5"
#>   ..\$ beta : Named logi [1:3] FALSE FALSE FALSE
#>   .. ..- attr(*, "names")= chr [1:3] "tempwarm" "contactyes" "tempwarm:contactyes"
#>  \$ alpha        : Named num [1:4] -1.41 1.14 3.38 4.94
#>   ..- attr(*, "names")= chr [1:4] "1|2" "2|3" "3|4" "4|5"
#>  \$ beta         : Named num [1:3] 2.32 1.35 0.36
#>   ..- attr(*, "names")= chr [1:3] "tempwarm" "contactyes" "tempwarm:contactyes"
#>  \$ call         : language clm(formula = rating ~ temp * contact, data = wine)
#>  \$ coefficients : Named num [1:7] -1.41 1.14 3.38 4.94 2.32 ...
#>   ..- attr(*, "names")= chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>  \$ cond.H       : num 50.8
#>  \$ contrasts    :List of 2
#>   ..\$ temp   : chr "contr.treatment"
#>   ..\$ contact: chr "contr.treatment"
#>  \$ control      :List of 11
#>   ..\$ method       : chr "Newton"
#>   ..\$ sign.location: chr "negative"
#>   ..\$ sign.nominal : chr "positive"
#>   ..\$ convergence  : chr "warn"
#>   ..\$ trace        : int 0
#>   ..\$ maxIter      : int 100
#>   ..\$ gradTol      : num 1e-06
#>   ..\$ relTol       : num 1e-06
#>   ..\$ tol          : num 1.49e-08
#>   ..\$ maxLineIter  : int 15
#>   ..\$ maxModIter   : int 5
#>  \$ convergence  :List of 3
#>   ..\$ code       : int 0
#>   ..\$ messages   : chr "successful convergence"
#>   ..\$ alg.message: chr "Absolute and relative convergence criteria were met"
#>  \$ df.residual  : num 65
#>  \$ edf          : int 7
#>  \$ fitted.values: num [1:72] 0.5623 0.2086 0.4347 0.0894 0.1903 ...
#>  \$ formula      :Class 'formula'  language rating ~ temp * contact
#>   .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#>  \$ formulas     :List of 2
#>   ..\$ formula :Class 'formula'  language rating ~ temp * contact
#>   .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#>   ..\$ fullForm:Class 'formula'  language rating ~ temp * contact
#>   .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#>   ..- attr(*, "envir")=<environment: R_GlobalEnv>
#>  \$ gradient     : Named num [1:7] 1.40e-12 3.74e-12 -5.22e-12 -8.90e-14 -4.88e-13 ...
#>   ..- attr(*, "names")= chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>  \$ Hessian      : num [1:7, 1:7] 4.625 -2.01 0 0 -0.118 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..\$ : chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>   .. ..\$ : chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>  \$ info         :'data.frame':   1 obs. of  8 variables:
#>   ..\$ link     : Factor w/ 1 level "logit": 1
#>   ..\$ threshold: Factor w/ 1 level "flexible": 1
#>   ..\$ nobs     : num 72
#>   ..\$ logLik   : Factor w/ 1 level "-86.42": 1
#>   ..\$ AIC      : Factor w/ 1 level "186.83": 1
#>   ..\$ niter    : Factor w/ 1 level "6(0)": 1
#>   ..\$ max.grad : Factor w/ 1 level "5.22e-12": 1
#>   ..\$ cond.H   : Factor w/ 1 level "5.1e+01": 1
#>  \$ link         : chr "logit"
#>  \$ logLik       : num -86.4
#>  \$ maxGradient  : num 5.22e-12
#>  \$ message      : chr "Absolute and relative convergence criteria were met"
#>  \$ model        :'data.frame':   72 obs. of  3 variables:
#>   ..\$ rating : Ord.factor w/ 5 levels "1"<"2"<"3"<"4"<..: 2 3 3 4 4 4 5 5 1 2 ...
#>   ..\$ temp   : Factor w/ 2 levels "cold","warm": 1 1 1 1 2 2 2 2 1 1 ...
#>   ..\$ contact: Factor w/ 2 levels "no","yes": 1 1 2 2 1 1 2 2 1 1 ...
#>   ..- attr(*, "terms")=Classes 'terms', 'formula'  language rating ~ temp * contact
#>   .. .. ..- attr(*, "variables")= language list(rating, temp, contact)
#>   .. .. ..- attr(*, "factors")= int [1:3, 1:3] 0 1 0 0 0 1 0 1 1
#>   .. .. .. ..- attr(*, "dimnames")=List of 2
#>   .. .. .. .. ..\$ : chr [1:3] "rating" "temp" "contact"
#>   .. .. .. .. ..\$ : chr [1:3] "temp" "contact" "temp:contact"
#>   .. .. ..- attr(*, "term.labels")= chr [1:3] "temp" "contact" "temp:contact"
#>   .. .. ..- attr(*, "order")= int [1:3] 1 1 2
#>   .. .. ..- attr(*, "intercept")= int 1
#>   .. .. ..- attr(*, "response")= int 1
#>   .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#>   .. .. ..- attr(*, "predvars")= language list(rating, temp, contact)
#>   .. .. ..- attr(*, "dataClasses")= Named chr [1:3] "ordered" "factor" "factor"
#>   .. .. .. ..- attr(*, "names")= chr [1:3] "rating" "temp" "contact"
#>  \$ n            : int 72
#>  \$ niter        : Named num [1:2] 6 0
#>   ..- attr(*, "names")= chr [1:2] "outer" "inner"
#>  \$ nobs         : num 72
#>  \$ start        : NULL
#>  \$ terms        :Classes 'terms', 'formula'  language rating ~ temp * contact
#>   .. ..- attr(*, "variables")= language list(rating, temp, contact)
#>   .. ..- attr(*, "factors")= int [1:3, 1:3] 0 1 0 0 0 1 0 1 1
#>   .. .. ..- attr(*, "dimnames")=List of 2
#>   .. .. .. ..\$ : chr [1:3] "rating" "temp" "contact"
#>   .. .. .. ..\$ : chr [1:3] "temp" "contact" "temp:contact"
#>   .. ..- attr(*, "term.labels")= chr [1:3] "temp" "contact" "temp:contact"
#>   .. ..- attr(*, "order")= int [1:3] 1 1 2
#>   .. ..- attr(*, "intercept")= int 1
#>   .. ..- attr(*, "response")= int 1
#>   .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#>   .. ..- attr(*, "predvars")= language list(rating, temp, contact)
#>   .. ..- attr(*, "dataClasses")= Named chr [1:3] "ordered" "factor" "factor"
#>   .. .. ..- attr(*, "names")= chr [1:3] "rating" "temp" "contact"
#>  \$ Theta        : num [1, 1:4] -1.41 1.14 3.38 4.94
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..\$ : NULL
#>   .. ..\$ : chr [1:4] "1|2" "2|3" "3|4" "4|5"
#>  \$ threshold    : chr "flexible"
#>  \$ tJac         : num [1:4, 1:4] 1 0 0 0 0 1 0 0 0 0 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..\$ : chr [1:4] "1|2" "2|3" "3|4" "4|5"
#>   .. ..\$ : chr [1:4] "1|2" "2|3" "3|4" "4|5"
#>  \$ vcov         : num [1:7, 1:7] 0.297 0.143 0.143 0.144 0.147 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..\$ : chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>   .. ..\$ : chr [1:7] "1|2" "2|3" "3|4" "4|5" ...
#>  \$ xlevels      :List of 2
#>   ..\$ temp   : chr [1:2] "cold" "warm"
#>   ..\$ contact: chr [1:2] "no" "yes"
#>  \$ y            : Ord.factor w/ 5 levels "1"<"2"<"3"<"4"<..: 2 3 3 4 4 4 5 5 1 2 ...
#>   ..- attr(*, "names")= chr [1:72] "1" "2" "3" "4" ...
#>  \$ y.levels     : chr [1:5] "1" "2" "3" "4" ...
#>  - attr(*, "class")= chr "clm"
``````

Created on 2019-03-08 by the reprex package (v0.2.1)

The example from `help(clm)` and inspecting the object with `str` shows that there is no p-value. You do get Pr(>|z|) but that's not exactly the same.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.