我正考虑在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
以下是关于级别的摘要:
>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
我想确定调用的估算方程(模型)是什么
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
鉴于我对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
这让我想到了下一个问题。
我想知道是否有办法根据年龄和教育程度的结合获得失业与就业的实际概率,例如,如果我22岁并且拥有高中毕业证书,失业的可能性是多少。抱歉这个冗长的问题。谢谢你的帮助。如果需要进一步说明,请与我们联系。
答案 0 :(得分:5)
关于您的第一个问题,我对multinom
分类变量有疑问(这是我的问题:Multinom with Matrix of Counts as Response)。
根据用户在该问题中回复的内容以及您发布的>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")
,其中newdata
是一个数组Age20-29
和High school graduates, no college
作为条目(给出您的示例)。