Kob*_*oba 8 r probability multinomial logistic-regression
我正考虑在Cross-Validated中发布我的问题,但决定来这里.我正在使用nnet软件包中的multinom()函数来估计因年龄和受教育程度而变得就业,失业或失业的可能性.我需要一些帮助解释.
我有一个依赖的分类变量就业状态(EmpSt)和两个独立的分类变量的以下数据集:年龄(年龄)和教育水平(教育).
>head(df)
EmpSt Age Education
1 Employed 61+ Less than a high school diploma
2 Employed 50-60 High school graduates, no college
3 Not in labor force 50-60 Less than a high school diploma
4 Employed 30-39 Bachelor's degree or higher
5 Employed 20-29 Some college or associate degree
6 Employed 20-29 Some college or associate degree
Run Code Online (Sandbox Code Playgroud)
以下是级别的摘要:
>summary(df)
EmpSt Age Education
Not in universe : 0 16-19: 6530 Less than a high school diploma :14686
Employed :61478 20-29:16031 High school graduates, no college:30716
Unemployed : 3940 30-39:16520 Some college or associate degree :28525
Not in labor force:38508 40-49:17403 Bachelor's degree or higher :29999
50-60:20779
61+ :26663
Run Code Online (Sandbox Code Playgroud)
我想确定调用的估计方程(模型)是什么
df$EmpSt<-relevel(df$EmpSt,ref="Employed")
multinom(EmpSt ~ Age + Education,data=df)
所以我可以在我的研究论文中写下来.根据我的理解,Employed是基本级别,此调用的logit模型是:

其中i和n分别是变量年龄和教育的类别(对于令人困惑的表示法而言).如果我对multinom()产生的逻辑模型的理解不正确,请纠正我.我不打算包含测试的摘要,因为它有很多输出,所以下面我只包括调用的输出>test:
> test
Call:
multinom(formula = EmpSt ~ Age + Education, data = ml)
Coefficients:
(Intercept) Age20-29 Age30-39 Age40-49 Age50-60 Age61+
Unemployed -1.334734 -0.3395987 -0.7104361 -0.8848517 -0.9358338 -0.9319822
Not in labor force 1.180028 -1.2531405 -1.6711616 -1.6579095 -1.2579600 0.8197373
EducationHigh school graduates, no college EducationSome college or associate degree
Unemployed -0.4255369 -0.781474
Not in labor force -0.8125016 -1.004423
EducationBachelor's degree or higher
Unemployed -1.351119
Not in labor force -1.580418
Residual Deviance: 137662.6
AIC: 137698.6
Run Code Online (Sandbox Code Playgroud)
鉴于我对multinom()生成的logit模型的理解是正确的,系数是基础级别为Employed的记录几率.为了获得实际的赔率我通过电话exp(coef(test))给出了真正的赔率:
> exp(coef(test))
(Intercept) Age20-29 Age30-39 Age40-49 Age50-60 Age61+
Unemployed 0.2632281 0.7120560 0.4914298 0.4127754 0.3922587 0.3937724
Not in labor force 3.2544655 0.2856064 0.1880285 0.1905369 0.2842333 2.2699035
EducationHigh school graduates, no college EducationSome college or associate degree
Unemployed 0.6534189 0.4577308
Not in labor force 0.4437466 0.3662560
EducationBachelor's degree or higher
Unemployed 0.2589504
Not in labor force 0.2058891
Run Code Online (Sandbox Code Playgroud)
这让我想到了下一个问题.
我想知道是否有办法根据年龄和教育的结合来获得失业与就业的实际概率,例如,如果我22岁并且拥有高中毕业证书,那么失业的可能性是多少.抱歉这个冗长的问题.谢谢你的帮助.如果需要进一步说明,请与我们联系.
关于你的第一个问题,我对multinom分类变量也有一些疑问(这是我的问题:Multinom与计数矩阵作为响应).
根据用户在该问题中回答的内容以及>test您发布的输出,我猜您编写的数学部分是正确的:实际上,只有当预测变量是连续的或二分的时(即,值仅为0或者),多项模型才有效1),似乎当multinom将分类变量作为预测变量时,如在您的示例中,R自动将它们转换为虚拟变量(仅0或1).
参考你的例子,只考虑Age预测器,我们应该有ln(\frac{Pr(unemployed)}{Pr(employed}) = \beta_0 + \beta_1*Age20-29 + \beta_2*Age30-39 + ...一个类似的公式Pr(not in labor force),但具有不同的\beta系数.
关于你的第二个问题:是的,有办法.使用predict(test, newdata, "probs"),where newdata是一个带有Age20-29和High school graduates, no college作为条目的数组(给出你的例子).