【问题标题】:How to get p values for odds ratios from an ordinal regression in r如何从 r 中的序数回归中获得优势比的 p 值
【发布时间】:2022-07-06 16:31:03
【问题描述】:

我正在尝试使用 r 从序数回归中获取我的优势比的 p 值。

我之前在这样的对数赔率上构建了我的 p 值

scm <- polr(finaloutcome ~ Size_no + Hegemony + Committee, data = data3, Hess = TRUE)
(ctable <- coef(summary(scm)))

计算并存储 p 值

p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
## combined table
(ctable <- cbind(ctable, "p value" = p))

我是通过这样的优势比创建的:

ci <- confint.default(scm) 
exp(coef(scm))
## OR and CI 
exp(cbind(OR = coef(scm), ci))

但是,我现在不确定如何为优势比创建 p 值。使用我得到的以前的方法:

(ctable1 <- exp(coef(scm)))
p1 <- pnorm(abs(ctable1[, "t value"]), lower.tail = FALSE) * 2
(ctable <- cbind(ctable, "p value" = p1))

但是我得到了错误:ctable1[, "t value"] 中的错误:维数不正确

优势比输出样本:

Size Hegem Committee
9.992240e-01 6.957805e-02 1.204437e-01

数据样本:

finaloutcome Size_no Committee Hegemony
1 3 54 2 0
2 2 127 3 0
3 2 127 3 0
4 2 22 1 1
5 2 193 4 1
6 2 54 2 0
7 NA 11 1 1
8 3 54 2 0
9 3 22 1 1
10 2 53 3 1
11 2 53 3 1
12 2 53 3 1
13 2 53 3 1
14 2 53 3 1
15 2 53 3 1
16 2 120 3 0
17 2 120 3 0
18 1 22 1 1
19 1 22 1 1
20 2 193 4 1
21 2 193 4 1
22 2 193 4 1
23 2 12 4 1
24 2 35 1 1
25 1 193 4 1
26 1 164 4 1
27 1 12 4 1
28 2 12 4 1
29 2 193 4 1
30 2 54 2 0
31 2 193 4 1
32 2 193 4 1
33 2 54 2 0
34 2 12 4 1
35 2 22 1 1
36 4 53 3 1
37 2 35 1 1
38 1 193 4 1
39 5 54 2 0
40 7 164 4 1
41 5 54 2 0
42 1 12 4 1
43 7 193 4 1
44 2 193 4 1
45 2 193 4 1
46 2 193 4 1
47 2 193 4 1
48 2 193 4 1
49 2 12 4 1
50 2 22 1 1
51 2 12 4 1
52 2 12 4 1
53 6 13 1 1
54 6 13 1 1
55 6 13 1 1
56 6 12 4 1
57 2 193 4 1
58 3 12 4 1
59 1 12 4 1
60 1 12 4 1
61 8 35 1 1
62 2 193 4 1
63 8 35 1 1
64 6 30 2 1
65 8 12 4 1
66 4 12 4 1
67 5 30 2 1
68 5 54 2 0
69 7 12 4 1
70 5 12 4 1
71 5 54 2 0
72 5 193 4 1
73 5 193 4 1
74 5 54 2 0
75 5 54 2 0
76 1 11 1 1
77 3 22 1 1
78 3 12 4 1
79 6 12 4 1
80 2 22 1 1
81 8 193 4 1
82 8 193 4 1
83 4 193 4 1
84 2 193 4 1
85 2 193 4 1
86 2 193 4 1
87 2 193 4 1
88 2 193 4 1
89 2 193 4 1
90 2 193 4 1
91 2 193 4 1
92 2 193 4 1
93 8 193 4 1
94 6 12 4 1
95 5 12 4 1
96 5 12 4 1
97 5 12 4 1
98 5 12 4 1
99 5 12 4 1
100 5 12 4 1

【问题讨论】:

  • 嗨!如果可能,请添加少量数据样本以更好地找到问题的答案。在您的情况下,这将有助于对允许适合 polr() 函数的样本数据进行采样,但仍会产生错误。
  • @JuanBosco 谢谢我添加了一些样本数据和优势比输出

标签: r p-value ordinal


【解决方案1】:

我通常使用 lm 或 glm 来创建我的模型(mdl Yardstick 和Broom。我推荐这本书R for Data Science。关于建模和使用 Tidymodels 包有很好的解释。

【讨论】:

  • 谢谢,我尝试过使用 Broom tidy 函数,但它只输出优势比值,你知道编写包含 p 值的优势比代码的方法吗?跨度>
  • 我认为问题在于如何获得优势比的 p 值,而不是序数回归通常输出的对数优势
【解决方案2】:

我也经历过同样的困难。

我终于用了扫帚包里的tidy函数:https://broom.tidymodels.org/reference/tidy.polr.html

library(broom)
tidy(scm, p.values = TRUE)  

如果您的分类变量具有两个以上的水平或缺失值,则此方法还不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2014-10-26
    • 2015-08-13
    相关资源
    最近更新 更多