多分類logistic回歸
在臨床研究中仁热,接觸最多的是二分類數(shù)據(jù)讼撒,如淋巴癌是否轉(zhuǎn)移,是否死亡股耽,這些因變量最后都可以轉(zhuǎn)換成二分類0與1的問題。然后建立二元logistic
回歸方程钳幅,可以得到影響因素的OR
值物蝙。
那么如果遇到多分類變量,如何進行l(wèi)ogistic回歸呢敢艰?譬如臨床療效分為好诬乞,中,差钠导,三類震嫉,或者根據(jù)指標進行分類,分為高牡属,中票堵,低三類,我用1逮栅、2悴势、3代表作為因變量,進行l(wèi)ogistic回歸分析措伐。
接下來特纤,該文,主要介紹侥加,如果因變量為三分類變量捧存,如何進行回歸分析及機器學習算法對三分類資料的處理。關于原理理論部分可參見;這里主要講如何在R實現(xiàn)三分類回歸昔穴,計算系數(shù)及p值
與OR
值
1.數(shù)據(jù)案例
這里主要用到DALEX
包里面包含的HR
數(shù)據(jù)镰官,里面記錄了職工在工作崗位的狀態(tài)與年齡,性別傻咖,工作時長朋魔,評價及薪水有關。根據(jù)7847條記錄來評估卿操,如果一個職工屬于男性警检,68歲,薪水及評價處于3等級害淤,那么該職工可能會處于什么狀態(tài)扇雕。
library(DALEX)
library(iBreakDown)
library(nnet)
library(questionr)
try(data(package="DALEX"))
data(HR)
HR= HR %>% as.tbl() %>%
mutate(evaluation=factor(evaluation),
salary=factor(salary))
HR
## GLM
fit = multinom(status ~ . , data = HR, probabilities = TRUE, model = TRUE)
summary(fit)
coef(fit)
> summary(fit)
Call:
multinom(formula = status ~ ., data = HR, model = TRUE, probabilities = TRUE)
Coefficients:
(Intercept) gendermale age hours evaluation3 evaluation4 evaluation5
ok -5.47276 0.03437426 0.002594237 0.08305463 -0.07275332 -0.06763166 -0.156932
promoted -13.10377 0.10391193 0.004277562 0.19697483 -0.11679839 3.49127986 3.290217
salary1 salary2 salary3 salary4 salary5
ok 1.543631 2.469598 2.413207 1.758516 -0.09513189
promoted 1.650777 2.498608 2.435680 1.790657 -0.01215312
Std. Errors:
(Intercept) gendermale age hours evaluation3 evaluation4
ok 0.2407953 0.06427342 0.002784445 0.003669856 0.07434565 0.1061762
promoted 0.3475852 0.08023646 0.003458588 0.004692886 0.11569077 0.1303817
evaluation5 salary1 salary2 salary3 salary4 salary5
ok 0.1077599 0.1199301 0.1227032 0.1219577 0.1212186 0.1371131
promoted 0.1302725 0.1456579 0.1490790 0.1482045 0.1486752 0.1624046
Residual Deviance: 10744.64
AIC: 10792.64
> coef(fit)
(Intercept) gendermale age hours evaluation3 evaluation4 evaluation5
ok -5.47276 0.03437426 0.002594237 0.08305463 -0.07275332 -0.06763166 -0.156932
promoted -13.10377 0.10391193 0.004277562 0.19697483 -0.11679839 3.49127986 3.290217
salary1 salary2 salary3 salary4 salary5
ok 1.543631 2.469598 2.413207 1.758516 -0.09513189
promoted 1.650777 2.498608 2.435680 1.790657 -0.01215312
我們構(gòu)建了三元回歸模型,以status
中fired
為參照窥摄,計算ok
與promoted
中各個因素的系數(shù)镶奉。
有了這些系數(shù),我們就可以寫出回歸方程了崭放,然后再計算各個因素對應的p值
如哨苛,這里的例子介紹了其他因素的系數(shù),然后計算對因變量的方程here
P值
通過Anova
函數(shù)币砂,可以輸出fit中影響因素的p值建峭,其中hours
,evaluation
及salary
有統(tǒng)計學意義决摧。說明他們對員工在職影響很大亿蒸。然后進一步計算or值
。
需要借助questionr
包中的odds.ratio
函數(shù)掌桩。
> Anova(fit)
Analysis of Deviance Table (Type II tests)
Response: status
LR Chisq Df Pr(>Chisq)
gender 1.7 2 0.4299
age 1.7 2 0.4329
hours 3464.1 2 <2e-16 ***
evaluation 2390.2 6 <2e-16 ***
salary 1132.4 10 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> round(odds.ratio(fit),2)
OR 2.5 % 97.5 % p
ok/(Intercept) 0.00 0.00 0.01 <2e-16 ***
ok/gendermale 1.03 0.91 1.17 0.59
ok/age 1.00 1.00 1.01 0.35
ok/hours 1.09 1.08 1.09 <2e-16 ***
ok/evaluation3 0.93 0.80 1.08 0.33
ok/evaluation4 0.93 0.76 1.15 0.52
ok/evaluation5 0.85 0.69 1.06 0.15
ok/salary1 4.68 3.70 5.92 <2e-16 ***
ok/salary2 11.82 9.29 15.03 <2e-16 ***
ok/salary3 11.17 8.79 14.19 <2e-16 ***
ok/salary4 5.80 4.58 7.36 <2e-16 ***
ok/salary5 0.91 0.69 1.19 0.49
promoted/(Intercept) 0.00 0.00 0.00 <2e-16 ***
promoted/gendermale 1.11 0.95 1.30 0.20
promoted/age 1.00 1.00 1.01 0.22
promoted/hours 1.22 1.21 1.23 <2e-16 ***
promoted/evaluation3 0.89 0.71 1.12 0.31
promoted/evaluation4 32.83 25.43 42.39 <2e-16 ***
promoted/evaluation5 26.85 20.80 34.66 <2e-16 ***
promoted/salary1 5.21 3.92 6.93 <2e-16 ***
promoted/salary2 12.17 9.08 16.29 <2e-16 ***
promoted/salary3 11.42 8.54 15.27 <2e-16 ***
promoted/salary4 5.99 4.48 8.02 <2e-16 ***
promoted/salary5 0.99 0.72 1.36 0.94
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1