廣義線性模型(generalized linear model, GLM)是簡單最小二乘回歸(OLS)的擴展,在OLS的假設中,響應變量是連續(xù)數(shù)值數(shù)據(jù)且服從正態(tài)分布,而且響應變量期望值與預測變量之間的關系是線性關系。而廣義線性模型則放寬其假設,首先響應變量可以是正整數(shù)或分類數(shù)據(jù),其分布為某指數(shù)分布族。其次響應變量期望值的函數(shù)(連接函數(shù))與預測變量之間的關系為線性關系。因此在進行GLM建模時,需要指定分布類型和連接函數(shù)。
在R中通常使用glm函數(shù)構造廣義線性模型,其中分布參數(shù)包括了binomaial(兩項分布)、gaussian(正態(tài)分布)、gamma(伽馬分布)、poisson(泊松分布)等。和lm函數(shù)類似,glm的建模結果可以通過下述的泛型函數(shù)進行二次處理,如summary()、coef()、confint()、residuals()、anova()、plot()、predict()
一、Logistic回歸
Logistic回歸中假設響應變量服從二項分布,參數(shù)family設置為binomial,連接函數(shù)link設置為logit,我們以AER包中的Affairs數(shù)據(jù)集作為例子。該數(shù)據(jù)集是關于婚姻出軌,其中affairs變量表示出軌次數(shù),數(shù)據(jù)集中還包括結婚時間、教育、宗教等其它變量。由于affairs為正整數(shù),為了進行Logistic回歸先要將其轉化為二元變量。
1 | data (Affairs, package= 'AER' ) |
2 | Affairs$ynaffair[Affairs$affairs < 0] <- 1 |
3 | Affairs$ynaffair[Affairs$affairs < 0] <- 0 |
4 | Affairs$ynaffair <- factor (Affairs$ynaffair, |
7 | model.L <- glm (ynaffair ~ age + yearsmarried + religiousness +rating, data=Affairs, family= binomial ()) |
若樣本觀測值變異性過大,即出現(xiàn)了過度離散現(xiàn)象,此時仍使用二項分布假設就會影響系數(shù)檢測的顯著性。那么補救的方法是使用準二項分布(quasibinomial)。首先要檢測樣本是否存在過度離散現(xiàn)象,方法是用殘差除以殘差自由度,若超過1則意味著過度離散。那么將family參數(shù)改為quasibinomial。
其它和Logistic回歸相關的函數(shù)還包括:robust包中的glmRob函數(shù)實施穩(wěn)健GLM;mlogit包中的mlogit函數(shù)對多分類變量進行l(wèi)ogistic回歸;rms包中的lrm函數(shù)對順序變量進行Logistic回歸。
二、Poisson回歸
泊松回歸假設響應變量服從泊松分布,而連接函數(shù)為log函數(shù)。仍以前面未轉化的Affairs數(shù)據(jù)集為例。建立模型后通過coef函數(shù)來提取模型系數(shù),因為泊松回歸中響應變量經過了log函數(shù)變換,所以對系數(shù)進行指數(shù)變換可更好的對結果進行解釋。從中觀察到,在其它變量不變前提下,結婚時間增長1年,那么出軌次數(shù)期望值則變?yōu)橹暗?.11倍。
1 | model.P <- glm (affairs ~ age + yearsmarried + religiousness +rating, data=Affairs, family= poisson ()) |
(Intercept) age yearsmarried religiousness rating
15.6175253 0.9733061 1.1163656 0.6971279 0.6691823
同樣,在進行泊松分布也要考慮過度離散現(xiàn)象。其檢測方法同樣是殘差除以其自由度。若確定過度離散存在,則要將family參數(shù)設置為準泊松分布(quasipoisson)。
本文來自:http://xccds1977./2012/01/blog-post.html
|