使用 rstanarm 的多项式 logit
Multinomial logit using rstanarm
我知道您可以通过使用 stan_glm
和设置 family = binomial(link="logit")
将二项式 Logit 模型与 rstanarm
包拟合,但是 rstanarm
是否为您提供了选项拟合多项式 Logit 模型 ?
但我对如何将模型 Y=A+BX
转换为那里提到的形式感到困惑。
目前无法使用 rstanarm R 包估计多项式 Logit 模型。有一个长期存在的 issue 来实现它,这不会太困难,但我们更专注于实现多项概率模型的更困难的问题。我相信你可以用brms R包中的brm
函数做一个多项式logit模型,它也使用Stan从后验分布中得出。
brms
支持多项式模型。这里有两种方法:
library(foreign)
library(brms)
#data source: https://stats.idre.ucla.edu/r/dae/multinomial-logistic-regression/
ml <- read.dta("https://stats.idre.ucla.edu/stat/data/hsbdemo.dta")
ml$prog2 <- relevel(ml$prog, ref = "academic")
#Method 1:
m1 <- brm(prog2 ~ ses + write, data = ml, family = multinomial(link = "logit"))
summary(m1)
#Method 2:
m2 <- brm(prog ~ ses + write, data = ml, family = categorical(link = "logit"))
summary(m2)
您可以使用 stan_polr
,示例请参见“Regression and Other Stories”(第 15.5 节)。例如
library(rstanarm)
fit <- stan_polr(factor(vote) ~ value, data = data_401, prior = R2(0.3, "mean))
取自https://avehtari.github.io/ROS-Examples/Storable/storable.html
我知道您可以通过使用 stan_glm
和设置 family = binomial(link="logit")
将二项式 Logit 模型与 rstanarm
包拟合,但是 rstanarm
是否为您提供了选项拟合多项式 Logit 模型 ?
但我对如何将模型 Y=A+BX
转换为那里提到的形式感到困惑。
目前无法使用 rstanarm R 包估计多项式 Logit 模型。有一个长期存在的 issue 来实现它,这不会太困难,但我们更专注于实现多项概率模型的更困难的问题。我相信你可以用brms R包中的brm
函数做一个多项式logit模型,它也使用Stan从后验分布中得出。
brms
支持多项式模型。这里有两种方法:
library(foreign)
library(brms)
#data source: https://stats.idre.ucla.edu/r/dae/multinomial-logistic-regression/
ml <- read.dta("https://stats.idre.ucla.edu/stat/data/hsbdemo.dta")
ml$prog2 <- relevel(ml$prog, ref = "academic")
#Method 1:
m1 <- brm(prog2 ~ ses + write, data = ml, family = multinomial(link = "logit"))
summary(m1)
#Method 2:
m2 <- brm(prog ~ ses + write, data = ml, family = categorical(link = "logit"))
summary(m2)
您可以使用 stan_polr
,示例请参见“Regression and Other Stories”(第 15.5 节)。例如
library(rstanarm)
fit <- stan_polr(factor(vote) ~ value, data = data_401, prior = R2(0.3, "mean))
取自https://avehtari.github.io/ROS-Examples/Storable/storable.html