具有分类预测器的有序模型
下面是一个带有分类预测因子的序数模型:
数据(食管)
m_esoph_rs= 标准普尔(托布普~年龄gp,数据=食管,先前= R2级(0.25),前计数=圣塔那主义::迪里克莱(1))
这个rstanam::posterrior_linpred()
序数函数rstanam中的回归模型返回每个模型的链接级预测绘制(与brms::后验_epred()
,返回序数模型的每个类别一个预测,参见序数中的回归示例渐晕(“tidy-brms”)
).不幸的是,rstanam::posterrior_epred()
不提供这种格式。哲学河豚
就是整理无论模型输出什么格式,因此要与之保持一致哲学,当应用于序数时圣塔那主义
模型,我们将使用示例add_linpred_draws()
并演示如何将它们转换为预测的每类概率。
例如,下面是链接级别匹配的绘图:
食管%>%
数据网格(年龄)%>%
添加_禁止绘制(m_esoph_rs)%>%
ggplot图(原子发射光谱(x个= as.数字(agegp),年=.linpred))+
stat_lineribbon状态()+
规模灌装机(调色板= “灰色”)
这可能很难解释。将其转化为预测基于每个类别的概率,我们必须使用有序logistic回归定义了类别\(j) 或更少作为:
\[\textrm{logit}\left[Pr(Y\le j)\right]=\alpha_j-\beta x\]
因此,类别的概率\(j)是:
\[\开始{align}Pr(Y=j)&=Pr(Y \le j)-Pr(Y \ le j-1)\\&=\textrm{logit}^{-1}(\alpha_j-\beta x)-\textrm{logit}^{-1}(\alpha{j-1}-\betax)\结束{对齐}\]
要获得这些值,我们需要两件事:
中的阈值圣塔那主义
是带名称的系数包含|
,指示它们属于哪些类别阈值介于之间。我们可以在变量列表中看到这些参数在模型中:
##[1]“agegp.L”“agegp.Q”“agegp.C”“age gp^4”“age GP^5”“0-9g/天|10-19”##[7]“10-19|20-29”“20-29|30+”“accept_stat__”“stepsize__”“treedepth__”“n_leapfrog__”##[13]“发散_”“能量_”
我们可以使用正则表达式=真
的参数gather_draws()
到查找包含|
字符。我们会的使用dplyr::summarie_all(列表)
扭转这些门槛添加到列表列中,并添加一个等于\(+\infty\)(代表最高类别):
阈值=m_esoph_rs%>%
gather_图纸(`.*[|].*`,正则表达式= 真的)%>%
分组方式(_B)(.绘制)%>%
选择(.绘制,阈值=.值)%>%
summary_all(汇总_全部)(列表)%>%
突变(阈值= 地图(阈值,~ c(c)(.,Inf公司)))
头(阈值,10)
1 |
-0.9705395、0.1546626、1.0081490,Inf |
2 |
-0.9440384、0.4085346、1.3570899,输入 |
三 |
-0.9003523、0.3782366、1.2743608,Inf |
4 |
-1.2188781、0.0994917、1.3055824,Inf |
5 |
-0.9174891、0.2009267、1.2257299,Inf |
6 |
-1.09787791、0.08797248、1.18605543,Inf |
7 |
-0.87089841,0.09926307,1.47029966,Inf公司 |
8 |
-1.0844373、0.4159425、1.2738333,Inf |
9 |
-0.5233614、0.4653772、1.6083016,Inf |
10 |
-1.2770482,0.2212309,1.0815977,Inf公司 |
例如,来自此数据帧的一行的阈值向量(即从后面抽签)如下所示:
## [[1]]##[1]-0.9705395 0.1546626 1.0081490信息
我们可以组合这些阈值(\(\alpha_j\)上述公式中的值)使用.linpred公司
来自的列add_linpred_draws()
(\(\βx \)根据上述公式)计算每类概率:
食管%>%
数据网格(年龄)%>%
添加_输入_绘图(m_esoph_rs)%>%
inner_join(内部联接)(阈值,由= “.绘制”,多重= “全部”)%>%
突变(`P(Y=类别)` = 微管相关蛋白2(阈值,.linpred,功能(α,βx)
#这部分是logit^-1(alphaj-beta*x)-logit^-1
普洛吉斯(阿尔法-β_x)-
普洛吉斯(滞后(α,默认= -Inf公司)-β_x)
))%>%
突变(.类别= 列表(水平(食管$tobgp)))%>%
使不安(c(c)(阈值,`P(Y=类别)`,.类别))%>%
ggplot图(原子发射光谱(x个=年龄gp,年= `P(Y=类别)`,颜色=.类别))+
统计点间隔(位置= 位置_对象(宽度=.4))+
缩放_大小_连续(指南= “无”)+
刻度-颜色-手动(值= 酿酒商.pal(6,“蓝色”)[-c(c)(1,2)])
很难看到上述图中类别的变化;让我们试着做一些能更好地说明每个分布的要点的事情年份:
食管裂孔=食管%>%
数据网格(年龄)%>%
添加_输入_绘图(m_esoph_rs)%>%
inner_join(内部联接)(阈值,由= “.绘制”,多重= “全部”)%>%
突变(`P(Y=类别)` = 微管相关蛋白2(阈值,.linpred,功能(α,βx)
#这部分是logit^-1(alphaj-beta*x)-logit^-1
普洛吉斯(阿尔法-β_x)-
普洛吉斯(滞后(α,默认= -Inf公司)-β_x)
))%>%
突变(.类别= 列表(水平(埃索夫$tobgp)))%>%
使不安(c(c)(阈值,`P(Y=类别)`,.类别))%>%
ggplot图(原子发射光谱(x个= `P(Y=类别)`,年=.类别))+
坐标_自流(展开= 错误的)+
面_网格(.~年龄gp,交换机= “x”)+
主题_经典()+
主题(带状背景= 元素_blank(),条带放置= “外部”)+
gg标题(“P(烟草消费类别|年龄组)”)+
xlab公司(“年龄组”)
食管裂孔+
统计摘要(有趣=中值的,地理= “酒吧”,填充= “灰色65”,宽度= 1,颜色= “白色”)+
统计点间隔()
这种情况下的条形图可能会产生错误的精确度,因此我们也可以尝试CCDF条形图:
食管裂孔+
统计_ccdfinterval()+
expand_limits(扩展限制)(x个= 0)#确保条变为0
该输出应与相应的m_esoph_brm(电子邮件)
中的模型渐晕(“tidy-brms”)
(模数不同的先验值),尽管生产需要更多的工作圣塔那主义
与相比业务风险管理系统
.