簡體   English   中英

在R中使用多項式函數進行多項式回歸

[英]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-29High school graduates, no college的數組High school graduates, no college作為條目(給出您的示例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM