
對于常規的多重模型(multiple model)擬合,最基本的函數是lm()。 下面是調用它的方式的一種改進版:
>fitted.model<- lm(formula, data =data.frame)
例如
> fm2 <- lm(y ~ x1 + x2, data = production)
將會擬合 y 對 x1 和 x2 的多重回歸模型(和一個隱式的截距項)。
一個重要的(技術上可選)參數是data = production。它指定任何構建這個模型的參數首先必須來自 數據框 production。 這里不需要考慮數據框 production 是否被綁定在搜索路徑中。
廣義線性建模是線性模型在研究響應值的非正態分布以及非線性模型的簡潔直接的線性轉化 時的一種發展。 廣義線性模型 是基于下面一系列 假設前提的:
eta = beta_1 x_1 + beta_2 x_2 +...+ beta_p x_p,
因此 x_i 當且僅當 beta_i 等于0時對 y 的分布沒有影響。
f_Y(y; mu, phi) = exp((A/phi) * (y lambda(mu) - gamma(lambda(mu))) + tau(y, phi))
其中 phi 是度量參數(scale parameter)(可能已知),對所有觀測 恒定;A 是一個先驗的權重,假定知道但是 可能隨觀測不同有所不同;mu是 y 的均值。 也就是說假定 y 的分布是由 均值和一個可能的度量參數決定的。
mu = m(eta), eta = m^{-1}(mu) = ell(mu)
該可逆函數 ell() 稱為 關聯函數(link function)。
這些假定比較寬松,足以包括統計實踐中大多數有用的統計模型, 但也足夠嚴謹,使得可以發展計算和推論中一致的方法( 至少可以近似一致)。 讀者如果想了解這方面最新的進展,可以 參考 McCullagh & Nelder (1989) 或者 Dobson (1990)。
R 提供了一系列廣義線性建模工具,從類型上來說包括 gaussian, 二項式, poisson, 反 gaussian 和 gamma 模型的響應變量分布以及 在響應變量分布沒有明確給定時的逆似然(quasi-likelihood)模型。 在后者,方差函數(variance function) 可以認為是均值的函數,但是在另外一些情況下, 該函數可以由響應變量的分布得到。
每一種響應分布允許各種關聯函數將均值和線性預測器關聯起來。 這些自動關聯函數如 下表所示:
Family name | Link functions |
---|---|
binomial | logit,probit,log,cloglog |
gaussian | identity,log,inverse |
Gamma | identity,inverse,log |
inverse.aussian | 1/mu^2,identity,inverse,log |
poisson | identity,log,sqrt |
quasi | logit,probit,cloglog,identity,inverse,log,1/mu^2,sqrt |
這些用于模型構建過程中的響應分布,關聯函數和各種 其他必要的信息統稱為 廣義線性模型的族(family)。
既然響應的分布僅僅通過單一的一個線性函數依賴于 刺激變量,那么用于線性模型的機制同樣 可以用于指定一個廣義模型的線性部分。 但是族必須以一種不同的方式指定。
R 用于廣義線性回歸的函數是glm(), 它的使用形式為
>fitted.model<- glm(formula, family=family.generator, data=data.frame)
和lm()相比,唯一的一個新特性就是描述族的參數family.generator。 它是產生函數和表達式列表的函數名字。這些函數 用于定義和控制模型的構建與計算過程。 盡管開始看起來有點復雜, 但它們非常容易 使用。
這些名字是標準的。程序給定的族生成器可以參見 Families 列表中 的“族名”。當選擇一個關聯函數時, 該關聯函數名和族名可以同時在括弧里面作為 參數設定。在擬(quasi) 家族里面,方差函數也是以這種方式設定。
一些例子可能會使這個過程更清楚。
命令
> fm <- glm(y ~ x1 + x2, family = gaussian, data = sales)
和下面的命令結果一致。
> fm <- lm(y ~ x1+x2, data=sales)
但是效率上,前者差一點。注意,gaussian 族沒有相關參數, 因此它不提供關聯函數的。 如一個問題需要用非標準關聯函數的 gaussian 族, 那么只能采用我們后面討論的擬族。
考慮 Silvey (1970) 提供的一個小的例子。
在 Kalythos 的 Aegean 島上,男性居民常?;加?一種先天的眼科疾病,并且隨著年齡的增長而變的愈顯著。 現在搜集了各種年齡段島上男性居民的樣本,同時記錄了盲眼的數目。 數據顯示如下:
年齡: | 20 | 35 | 45 | 55 | 70 |
No. 檢測: | 50 | 50 | 50 | 50 | 50 |
No. 盲眼: | 6 | 17 | 26 | 37 | 44 |
我們想知道的是這些數據是否吻合 logistic 和 probit 模型, 并且分別估計各個模型的 LD50,也就是一個男性居民盲眼的概率 為50%時候的年齡。
如果 y 和 n 是年齡為 x 時的盲眼數目和檢測 樣本數目,兩種模型的形式都為 y ~ B(n, F(beta_0 + beta_1 x)), 其中在 probit 模型中, F(z) = Phi(z) 是標準的正態分布函數,而在 logit 模型 (默認)中, F(z) = e^z/(1+e^z)。 這兩種模型中, LD50 = – beta_0/beta_1 ,即分布函數的參數為0時 所在的點。
第一步是把數據轉換成數據框。
> kalythos <- data.frame(x = c(20,35,45,55,70), n = rep(50,5), y = c(6,17,26,37,44))
在glm()擬合二項式模型時,響應變量 有三種可能性:
我們采用的是第二種慣例。我們在數據框中 增加了一個矩陣:
> kalythos$Ymat <- cbind(kalythos$y, kalythos$n - kalythos$y)
為了擬合這些模型,我們采用
> fmp <- glm(Ymat ~ x, family = binomial(link=probit), data = kalythos) > fml <- glm(Ymat ~ x, family = binomial, data = kalythos)
既然 logit 的關聯函數是默認的,因此我們可以在第二條命令中省略該參數。 為了查看擬合結果,我們使用
> summary(fmp) > summary(fml)
兩種模型都擬合的很好。為了計算 LD50,我們可以 利用一個簡單的函數:
> ld50 <- function(b) -b[1]/b[2] > ldp <- ld50(coef(fmp)); ldl <- ld50(coef(fml)); c(ldp, ldl)
從這些數據中得到的年齡分別是43.663年和 43.601年。
在 Poisson 族中,默認的關聯函數是log。在實際操作中, 這一族常常用于擬合計數資料的 Poisson 對數線性模型。 這些計數資料的實際分布往往符合二項式分布。 這是一個非常重要而又龐大的話題,我們不想在這里深入展開。 它構成了非-gaussian 廣義模型內容 的很大一部分。
有時候,實踐中產生的 Poisson 數據在對數或者平方根 轉化后可當作正態數據處理。 作為后者的另一種選擇是,一個 Poisson 廣義線性模型可以通過下面的例子 擬合:
> fmod <- glm(y ~ A + B + x, family = poisson(link=sqrt), data = worm.counts)
對于所有的族,響應變量的方差依賴于均值并且擁有 作為系數(multiplier)的尺度參數。 方差對均值的依賴方式是響應分布的一個特性; 例如對于poisson分布 Var(y) = mu。
對于擬似然估計和推斷,我們不是設定精確的響應分布而是 設定關聯函數和方差函數的形式。因為關聯函數和方差函數都依賴于均值。 既然擬似然估計 和 gaussian 分布使用的技術非常相似, 因此這一族順帶提供了一種用非標準關聯函數或者方差函數 擬合gaussian模型的 方法。
例如,考慮非線性回歸的擬合 y = theta_1 z_1 / (z_2 – theta_2) + e 同樣還可以寫成 y = 1 / (beta_1 x_1 + beta_2 x_2) + e 其中 x_1 = z_2/z_1, x_2 = -1/x_1, beta_1 = 1/theta_1, and beta_2 = theta_2/theta_1。 假如有適合的數據框,我們可以如下 進行非線性擬合
> nlfit <- glm(y ~ x1 + x2 - 1, family = quasi(link=inverse, variance=constant), data = biochem)
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25