
對于常規(guī)的多重模型(multiple model)擬合,最基本的函數(shù)是lm()。 下面是調(diào)用它的方式的一種改進版:
>fitted.model<- lm(formula, data =data.frame)
例如
> fm2 <- lm(y ~ x1 + x2, data = production)
將會擬合 y 對 x1 和 x2 的多重回歸模型(和一個隱式的截距項)。
一個重要的(技術(shù)上可選)參數(shù)是data = production。它指定任何構(gòu)建這個模型的參數(shù)首先必須來自 數(shù)據(jù)框 production。 這里不需要考慮數(shù)據(jù)框 production 是否被綁定在搜索路徑中。
廣義線性建模是線性模型在研究響應(yīng)值的非正態(tài)分布以及非線性模型的簡潔直接的線性轉(zhuǎn)化 時的一種發(fā)展。 廣義線性模型 是基于下面一系列 假設(shè)前提的:
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 是度量參數(shù)(scale parameter)(可能已知),對所有觀測 恒定;A 是一個先驗的權(quán)重,假定知道但是 可能隨觀測不同有所不同;mu是 y 的均值。 也就是說假定 y 的分布是由 均值和一個可能的度量參數(shù)決定的。
mu = m(eta), eta = m^{-1}(mu) = ell(mu)
該可逆函數(shù) ell() 稱為 關(guān)聯(lián)函數(shù)(link function)。
這些假定比較寬松,足以包括統(tǒng)計實踐中大多數(shù)有用的統(tǒng)計模型, 但也足夠嚴謹,使得可以發(fā)展計算和推論中一致的方法( 至少可以近似一致)。 讀者如果想了解這方面最新的進展,可以 參考 McCullagh & Nelder (1989) 或者 Dobson (1990)。
R 提供了一系列廣義線性建模工具,從類型上來說包括 gaussian, 二項式, poisson, 反 gaussian 和 gamma 模型的響應(yīng)變量分布以及 在響應(yīng)變量分布沒有明確給定時的逆似然(quasi-likelihood)模型。 在后者,方差函數(shù)(variance function) 可以認為是均值的函數(shù),但是在另外一些情況下, 該函數(shù)可以由響應(yīng)變量的分布得到。
每一種響應(yīng)分布允許各種關(guān)聯(lián)函數(shù)將均值和線性預(yù)測器關(guān)聯(lián)起來。 這些自動關(guān)聯(lián)函數(shù)如 下表所示:
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 |
這些用于模型構(gòu)建過程中的響應(yīng)分布,關(guān)聯(lián)函數(shù)和各種 其他必要的信息統(tǒng)稱為 廣義線性模型的族(family)。
既然響應(yīng)的分布僅僅通過單一的一個線性函數(shù)依賴于 刺激變量,那么用于線性模型的機制同樣 可以用于指定一個廣義模型的線性部分。 但是族必須以一種不同的方式指定。
R 用于廣義線性回歸的函數(shù)是glm(), 它的使用形式為
>fitted.model<- glm(formula, family=family.generator, data=data.frame)
和lm()相比,唯一的一個新特性就是描述族的參數(shù)family.generator。 它是產(chǎn)生函數(shù)和表達式列表的函數(shù)名字。這些函數(shù) 用于定義和控制模型的構(gòu)建與計算過程。 盡管開始看起來有點復(fù)雜, 但它們非常容易 使用。
這些名字是標準的。程序給定的族生成器可以參見 Families 列表中 的“族名”。當選擇一個關(guān)聯(lián)函數(shù)時, 該關(guān)聯(lián)函數(shù)名和族名可以同時在括弧里面作為 參數(shù)設(shè)定。在擬(quasi) 家族里面,方差函數(shù)也是以這種方式設(shè)定。
一些例子可能會使這個過程更清楚。
命令
> fm <- glm(y ~ x1 + x2, family = gaussian, data = sales)
和下面的命令結(jié)果一致。
> fm <- lm(y ~ x1+x2, data=sales)
但是效率上,前者差一點。注意,gaussian 族沒有相關(guān)參數(shù), 因此它不提供關(guān)聯(lián)函數(shù)的。 如一個問題需要用非標準關(guān)聯(lián)函數(shù)的 gaussian 族, 那么只能采用我們后面討論的擬族。
考慮 Silvey (1970) 提供的一個小的例子。
在 Kalythos 的 Aegean 島上,男性居民常?;加?一種先天的眼科疾病,并且隨著年齡的增長而變的愈顯著。 現(xiàn)在搜集了各種年齡段島上男性居民的樣本,同時記錄了盲眼的數(shù)目。 數(shù)據(jù)顯示如下:
年齡: | 20 | 35 | 45 | 55 | 70 |
No. 檢測: | 50 | 50 | 50 | 50 | 50 |
No. 盲眼: | 6 | 17 | 26 | 37 | 44 |
我們想知道的是這些數(shù)據(jù)是否吻合 logistic 和 probit 模型, 并且分別估計各個模型的 LD50,也就是一個男性居民盲眼的概率 為50%時候的年齡。
如果 y 和 n 是年齡為 x 時的盲眼數(shù)目和檢測 樣本數(shù)目,兩種模型的形式都為 y ~ B(n, F(beta_0 + beta_1 x)), 其中在 probit 模型中, F(z) = Phi(z) 是標準的正態(tài)分布函數(shù),而在 logit 模型 (默認)中, F(z) = e^z/(1+e^z)。 這兩種模型中, LD50 = – beta_0/beta_1 ,即分布函數(shù)的參數(shù)為0時 所在的點。
第一步是把數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)框。
> kalythos <- data.frame(x = c(20,35,45,55,70), n = rep(50,5), y = c(6,17,26,37,44))
在glm()擬合二項式模型時,響應(yīng)變量 有三種可能性:
我們采用的是第二種慣例。我們在數(shù)據(jù)框中 增加了一個矩陣:
> 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 的關(guān)聯(lián)函數(shù)是默認的,因此我們可以在第二條命令中省略該參數(shù)。 為了查看擬合結(jié)果,我們使用
> summary(fmp) > summary(fml)
兩種模型都擬合的很好。為了計算 LD50,我們可以 利用一個簡單的函數(shù):
> ld50 <- function(b) -b[1]/b[2] > ldp <- ld50(coef(fmp)); ldl <- ld50(coef(fml)); c(ldp, ldl)
從這些數(shù)據(jù)中得到的年齡分別是43.663年和 43.601年。
在 Poisson 族中,默認的關(guān)聯(lián)函數(shù)是log。在實際操作中, 這一族常常用于擬合計數(shù)資料的 Poisson 對數(shù)線性模型。 這些計數(shù)資料的實際分布往往符合二項式分布。 這是一個非常重要而又龐大的話題,我們不想在這里深入展開。 它構(gòu)成了非-gaussian 廣義模型內(nèi)容 的很大一部分。
有時候,實踐中產(chǎn)生的 Poisson 數(shù)據(jù)在對數(shù)或者平方根 轉(zhuǎn)化后可當作正態(tài)數(shù)據(jù)處理。 作為后者的另一種選擇是,一個 Poisson 廣義線性模型可以通過下面的例子 擬合:
> fmod <- glm(y ~ A + B + x, family = poisson(link=sqrt), data = worm.counts)
對于所有的族,響應(yīng)變量的方差依賴于均值并且擁有 作為系數(shù)(multiplier)的尺度參數(shù)。 方差對均值的依賴方式是響應(yīng)分布的一個特性; 例如對于poisson分布 Var(y) = mu。
對于擬似然估計和推斷,我們不是設(shè)定精確的響應(yīng)分布而是 設(shè)定關(guān)聯(lián)函數(shù)和方差函數(shù)的形式。因為關(guān)聯(lián)函數(shù)和方差函數(shù)都依賴于均值。 既然擬似然估計 和 gaussian 分布使用的技術(shù)非常相似, 因此這一族順帶提供了一種用非標準關(guān)聯(lián)函數(shù)或者方差函數(shù) 擬合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。 假如有適合的數(shù)據(jù)框,我們可以如下 進行非線性擬合
> nlfit <- glm(y ~ x1 + x2 - 1, family = quasi(link=inverse, variance=constant), data = biochem)
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10