[英]Does the function multinom() from R's nnet package fit a multinomial logistic regression, or a Poisson regression?
[英]Multinomial regression using multinom function in R
我當時正考慮在Cross-Validated中發布我的問題,但決定來這里。 我正在使用nnet軟件包中的multinom()函數來估計受年齡,文化程度影響而被雇用,失業或失業的幾率。 我需要一些幫助。
我具有以下數據集,該數據集包含一個因果分類變量就業狀態(EmpSt)和兩個因果分類變量:年齡(Age)和教育程度(Education)。
>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)
所以我可以在研究論文中寫下來 以我的理解,“雇用”是基礎級別,此調用的logit模型是:
其中i和n分別是變量age和education的類別(對表示法感到困惑)。 如果我對multinom()產生的邏輯模型的理解不正確,請糾正我。 我不會包括測試摘要,因為它有很多輸出,因此下面我僅包含call >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模型的理解是正確的,系數是采用基准水平的對數賠率。 為了獲得實際的賠率,我通過調用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歲並擁有高中文憑,那么失業的概率是多少? 很抱歉,這個冗長的問題。 謝謝你的幫助。 讓我知道是否需要進一步澄清。
關於您的第一個問題,我也對帶有分類變量的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)
的類似公式Pr(not in labor force)
,但是具有不同的\\beta
系數。
關於第二個問題:是的,有辦法。 使用predict(test, newdata, "probs")
,其中newdata
是一個Age20-29
和High school graduates, no college
的數組High school graduates, no college
作為條目(給出您的示例)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.