以下內(nèi)容為盧朓老師在B站進(jìn)行的分享,可以作為學(xué)習(xí)參考:
在介紹廣義線性模型之前, 我們先看看常規(guī)線性回歸模型.
常規(guī)線性回歸(ConventionalLinear Regression),也稱為普通最小二乘法(Ordinary Least Squares, OLS)線性回歸,是統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)中最基礎(chǔ)且廣泛應(yīng)用的一種回歸分析技術(shù)。
這個(gè)可以參考北太天元科普:最小二乘法和線性回歸 - 嗶哩嗶哩 (bilibili.com)
常規(guī)線性回歸是一種用于分析兩個(gè)或多個(gè)變量之間線性關(guān)系的統(tǒng)計(jì)方法。它通過擬合一條直線(或超平面)來描述因變量(目標(biāo)變量)與一個(gè)或多個(gè)自變量(預(yù)測(cè)變量)之間的關(guān)系。這種模型基于一個(gè)基本假設(shè):自變量與因變量之間存在線性關(guān)系。
常規(guī)線性回歸的數(shù)學(xué)表達(dá)式為:
* 簡(jiǎn)單線性回歸(單變量):
* 多元線性回歸(多變量):
其中,Y是因變量,X是自變量(在多元線性回歸中,X代表多個(gè)自變量X_1, X_2, ..., X_n),是截距項(xiàng),
是回歸系數(shù),ε是誤差項(xiàng),表示模型未能解釋的變異部分。
常規(guī)線性回歸通過最小二乘法來擬合模型。最小二乘法的目標(biāo)是找到最佳的回歸系數(shù)β0, β1, ..., βn,使得實(shí)際觀測(cè)值與模型預(yù)測(cè)值之間的殘差平方和最小。殘差平方和的公式為:
RSS =
其中,是實(shí)際觀測(cè)值,
是模型預(yù)測(cè)值。
常規(guī)線性回歸的有效性基于以下假設(shè)條件:
* 線性關(guān)系:自變量與因變量之間存在線性關(guān)系。
* 獨(dú)立性:觀測(cè)值之間相互獨(dú)立。
* 同方差性:誤差項(xiàng)的方差恒定。
* 正態(tài)性:誤差項(xiàng)服從正態(tài)分布。
上面的自變量又被稱為協(xié)變量、預(yù)測(cè)變量、解釋變量, 是那些用于預(yù)測(cè)或解釋 因變量(響應(yīng)變量)變化的變量。
線性回顧,我們假設(shè)因變量 , 我們的目的是尋找
也就是
, 我們假設(shè)
.
在廣義線性模型(GLM)中,這些自變量通過線性組合的方式影響因變量的分布,即使這種影響在最終模型中可能表現(xiàn)為非線性關(guān)系。因此,盡管模型可能包含非線性的元素,但它們?nèi)匀槐灰暈?ldquo;線性”的,因?yàn)樽宰兞康挠绊懯峭ㄟ^線性組合傳遞的, 并通過鏈接函數(shù)與線性預(yù)測(cè)器建立非線性關(guān)系。廣義線性模型(GLMs)是統(tǒng)計(jì)學(xué)中一類非常強(qiáng)大且靈活的回歸模型,它擴(kuò)展了普通線性回歸模型的應(yīng)用范圍。本文將對(duì)廣義線性模型進(jìn)行詳細(xì)介紹,并清晰地闡述其數(shù)學(xué)基礎(chǔ)和應(yīng)用場(chǎng)景。
一、背景與動(dòng)機(jī)
普通線性回歸模型假設(shè)響應(yīng)變量服從正態(tài)分布,且其均值是預(yù)測(cè)變量的線性函數(shù)。然而,在實(shí)際應(yīng)用中,這一假設(shè)往往不成立。例如,在二分類問題中,響應(yīng)變量通常服從二項(xiàng)分布;在計(jì)數(shù)數(shù)據(jù)中,響應(yīng)變量可能服從泊松分布。為了處理這些非正態(tài)分布數(shù)據(jù),廣義線性模型應(yīng)運(yùn)而生。
二、廣義線性模型的基本概念
廣義線性模型包含三個(gè)主要組成部分:
隨機(jī)部分(random component):定義了響應(yīng)變量的概率分布。例如,在線性回歸中, 遵循正態(tài)分布;而在二元邏輯回歸中, 遵循二項(xiàng)分布。這是模型中唯一的隨機(jī)元素,不包含單獨(dú)的誤差項(xiàng)。常見的分布類型包括正態(tài)分布、二項(xiàng)分布、泊松分布等。
系統(tǒng)部分(systematic component):描述了模型中的解釋變量 及其線性組合。具體來說,就是這些解釋變量的加權(quán)和,如 。
鏈接函數(shù)(Link function, 記作 η 或 g(μ)):它連接了模型的隨機(jī)部分(響應(yīng)變量的分布)和系統(tǒng)部分(解釋變量的線性組合)。鏈接函數(shù) 或 是一個(gè)函數(shù),它將響應(yīng)變量的期望值 與解釋變量的線性組合 聯(lián)系起來。通過鏈接函數(shù),我們可以將線性預(yù)測(cè)器 (解釋變量的線性組合)轉(zhuǎn)換為響應(yīng)變量的期望值 。這允許我們使用線性模型來描述非線性的關(guān)系。在經(jīng)典回歸(即普通最小二乘回歸)中,鏈接函數(shù)是恒等函數(shù),即: 這里,鏈接函數(shù)沒有改變期望值的形式,因此線性預(yù)測(cè)器 直接等于響應(yīng)變量的期望值 。 在邏輯回歸中,響應(yīng)變量 通常是一個(gè)二值變量(例如,成功或失?。?,其期望值 代表成功的概率 。邏輯回歸使用logit鏈接函數(shù),定義為: 其中, 是成功的概率。 通過這個(gè)鏈接函數(shù),我們可以將線性預(yù)測(cè)器 轉(zhuǎn)換為成功的概率 。具體來說,我們有: 這是邏輯回歸中著名的sigmoid函數(shù),它將線性預(yù)測(cè)器映射到(0, 1)區(qū)間內(nèi)的概率值。
在廣義線性模型(GLM)的框架中,假設(shè)響應(yīng)變量 Y 的條件分布屬于指數(shù)分布族是一個(gè)基本的、必需的假設(shè)。這個(gè)假設(shè)是GLM理論構(gòu)建的基礎(chǔ),它允許我們使用一套系統(tǒng)的方法來處理不同類型的響應(yīng)變量和預(yù)測(cè)變量之間的關(guān)系。
指數(shù)分布族包括了許多常見的分布,如正態(tài)分布、二項(xiàng)分布、泊松分布等,這些分布都可以通過GLM進(jìn)行建模。在這個(gè)框架下,我們可以通過指定鏈接函數(shù)來連接線性預(yù)測(cè)器和響應(yīng)變量的期望值,從而靈活地適應(yīng)不同的數(shù)據(jù)特性和預(yù)測(cè)需求。
北太天元的用于廣義線性模型的擬合.

設(shè)響應(yīng)變量 的條件分布屬于指數(shù)分布族,其概率密度函數(shù)(或概率質(zhì)量函數(shù))可以表示為:
其中:
- 是自然參數(shù),決定了分布的具體形狀。
- 是尺度參數(shù),通常與分布的方差有關(guān)。
- 和
是已知函數(shù),用于確保概率密度函數(shù)或概率質(zhì)量函數(shù)的積分(或求和)為1。
在廣義線性模型中,我們假設(shè):
1. 分布假設(shè):給定預(yù)測(cè)變量 ,響應(yīng)變量
的條件分布屬于指數(shù)分布族。
2. 線性預(yù)測(cè)器與期望值的聯(lián)系:響應(yīng)變量 的數(shù)學(xué)期望值
是線性預(yù)測(cè)器
的函數(shù),即
。這里
是鏈接函數(shù),它決定了線性預(yù)測(cè)器如何與響應(yīng)變量的期望值相聯(lián)系。
3. 自然參數(shù)與線性預(yù)測(cè)器的關(guān)系:自然參數(shù) 是線性預(yù)測(cè)器
的函數(shù),即
。這進(jìn)一步明確了線性預(yù)測(cè)器如何影響分布的具體形狀。
三、常見鏈接函數(shù)與分布類型
- 正態(tài)分布(Normal Distribution):
- 用途:通常用于連續(xù)數(shù)據(jù)的預(yù)測(cè)。
- 鏈接函數(shù):恒等函數(shù)(IdentityFunction),即 。因此,
。
- 二項(xiàng)分布(Binomial Distribution):
- 用途:用于二分類問題(如邏輯回歸)。
- 鏈接函數(shù):Logit 函數(shù)(對(duì)數(shù)幾率函數(shù)),即 。因此,
(即邏輯函數(shù))。
- 泊松分布(Poisson Distribution):
- 用途:用于計(jì)數(shù)數(shù)據(jù)的建模(如事件發(fā)生的次數(shù))。
- 鏈接函數(shù):自然對(duì)數(shù)函數(shù)(Natural LogarithmFunction),即 。因此,
。
- 多項(xiàng)分布(Multinomial Distribution):
- 用途:用于多分類問題。
- 鏈接函數(shù):Softmax 函數(shù),即對(duì)于每個(gè)類別 i,有 (在多類別情況下,鏈接函數(shù)應(yīng)用于每個(gè)類別的線性預(yù)測(cè)器,并確保所有類別的概率之和為1)。
廣義線性模型通過指數(shù)分布族和鏈接函數(shù)提供了一種靈活的框架,用于建模各種類型的數(shù)據(jù)和響應(yīng)變量。通過選擇合適的分布類型和鏈接函數(shù),我們可以構(gòu)建適應(yīng)不同數(shù)據(jù)特性和預(yù)測(cè)需求的模型。
四、函數(shù)擬合和廣義線性回歸
開普勒第三定律,也稱為行星運(yùn)動(dòng)定律,描述了行星繞太陽運(yùn)動(dòng)的軌道周期與其軌道半長(zhǎng)軸之間的關(guān)系。具體來說,該定律指出:繞以太陽為焦點(diǎn)的橢圓軌道運(yùn)行的所有行星,其各自橢圓軌道半長(zhǎng)軸的立方與周期的平方之比是一個(gè)常量。用數(shù)學(xué)表達(dá)式表示即:a³/T²=k,其中a是軌道半長(zhǎng)軸,T是軌道周期,k是一個(gè)與行星無關(guān)的常量,只與中心天體(在這里是太陽)的質(zhì)量有關(guān)。這個(gè)關(guān)系實(shí)際上是一個(gè)非線性關(guān)系,因?yàn)樗婕暗杰壍腊腴L(zhǎng)軸的立方與周期的平方之比。在非線性關(guān)系中,變量之間的關(guān)系不是直線或平面,而是曲線或更復(fù)雜的形狀。開普勒第三定律中的這種非線性關(guān)系揭示了行星運(yùn)動(dòng)的一個(gè)基本規(guī)律,即行星的軌道周期與其軌道大小之間存在一個(gè)特定的比例關(guān)系。
對(duì)一系列觀測(cè)數(shù)據(jù)進(jìn)行函數(shù)擬合在天文學(xué)、物理學(xué)、工程學(xué)等多個(gè)領(lǐng)域中非常常見,用于預(yù)測(cè)、解釋數(shù)據(jù)背后的物理規(guī)律或進(jìn)行模型優(yōu)化。函數(shù)擬合的目標(biāo)通常是找到一個(gè)數(shù)學(xué)函數(shù),該函數(shù)能夠盡可能準(zhǔn)確地描述觀察的數(shù)據(jù)點(diǎn)。
在許多情況下,數(shù)據(jù)可能呈現(xiàn)出非線性關(guān)系,這使得直接擬合變得復(fù)雜。然而,通過對(duì)變量取對(duì)數(shù),可以將某些類型的非線性關(guān)系轉(zhuǎn)化為線性關(guān)系,從而簡(jiǎn)化擬合過程。這種方法基于對(duì)數(shù)函數(shù)的特性,即對(duì)數(shù)函數(shù)可以將乘法關(guān)系轉(zhuǎn)化為加法關(guān)系。
具體來說,如果數(shù)據(jù)呈現(xiàn)出指數(shù)關(guān)系(例如,),則可以通過對(duì) y 取對(duì)數(shù)來將其轉(zhuǎn)化為線性關(guān)系(我們舉得例子還kepler做得 T = 1/k * a^(3/2) 不太一樣,但是道理是類似的):
這樣,原本的非線性關(guān)系就變成了關(guān)于$ log(y) 和 x 的線性關(guān)系,可以使用線性回歸等簡(jiǎn)單方法來進(jìn)行擬合。
廣義線性模型(GLM)是線性模型的擴(kuò)展,它允許因變量服從更廣泛的概率分布,并通過鏈接函數(shù)將線性預(yù)測(cè)器與因變量的期望值或分布聯(lián)系起來。在GLM的框架中,當(dāng)因變量服從指數(shù)分布族(如泊松分布、伽馬分布等)時(shí),通常會(huì)使用對(duì)數(shù)鏈接函數(shù)。
將對(duì)數(shù)轉(zhuǎn)換與GLM聯(lián)系起來的關(guān)鍵在于,對(duì)數(shù)轉(zhuǎn)換實(shí)際上是一種特殊形式的鏈接函數(shù)。在GLM中,鏈接函數(shù)用于將線性預(yù)測(cè)器(即自變量的線性組合)映射到因變量的期望值或分布上。對(duì)于指數(shù)分布族,對(duì)數(shù)鏈接函數(shù)是一種常用的選擇,因?yàn)樗軌虮3忠蜃兞颗c自變量之間的非線性關(guān)系(在原始尺度上),同時(shí)在線性預(yù)測(cè)器的尺度上保持線性關(guān)系。
因此,當(dāng)我們通過取對(duì)數(shù)來轉(zhuǎn)化非線性關(guān)系為線性關(guān)系并進(jìn)行擬合時(shí),實(shí)際上是在使用一種類似于GLM中的對(duì)數(shù)鏈接函數(shù)的方法。雖然很多時(shí)候我們可以采用更加直觀和簡(jiǎn)單的方法(例如,直接對(duì)因變量和自變量單獨(dú)或者同時(shí)取對(duì)數(shù),然后使用線性回歸),但GLM提供了更嚴(yán)格的統(tǒng)計(jì)框架和更廣泛的適用性。下面我們用代碼給出 數(shù)據(jù)呈現(xiàn)出指數(shù)關(guān)系y = a*exp(bx),我們使用兩種方法來做數(shù)據(jù)擬合: 第一種方法是使用對(duì)y取對(duì)數(shù),然后使用線性回歸(或者說最小二乘法);第二種方法是使用GLM(特別是選擇泊松分布和對(duì)數(shù)鏈接函數(shù))。 第一種方法我們使用北太天元的 polyfit 函數(shù), 第二種方法,我們使用北太天元的 glmfit 函數(shù)。
% 生成模擬數(shù)據(jù)
n = 30; % 數(shù)據(jù)點(diǎn)數(shù)量
x = linspace(0, 10, n)'; % 自變量
a = 2; % 指數(shù)函數(shù)參數(shù)a
b = 0.5; % 指數(shù)函數(shù)參數(shù)b
y = a * exp(b * x) + randn(n, 1) * 0.05; % 因變量,添加了一些噪聲
% Kepler的指數(shù)函數(shù)擬合(假設(shè)他已知是指數(shù)關(guān)系)
% 對(duì)y取對(duì)數(shù),轉(zhuǎn)化為線性關(guān)系
log_y = log(y); % log_y = log(a) + b * x ;
% 使用線性回歸擬合轉(zhuǎn)化后的數(shù)據(jù)
p_kepler = polyfit(x, log_y, 1); % 這里polyfit只用于演示,實(shí)際上Kepler可能用其他方法
beta_kepler = [p_kepler(1), exp(p_kepler(2))]; % 注意,我們需要將截距項(xiàng)轉(zhuǎn)化回原始尺度 b = p_kepler(1), a = e^(p_kepler(2))
% 使用glmfit函數(shù)進(jìn)行擬合
% 對(duì)于指數(shù)關(guān)系,我們使用'poisson'分布和對(duì)數(shù)鏈接函數(shù)(這是GLM中的標(biāo)準(zhǔn)設(shè)置)
% 但是,注意MATLAB的glmfit默認(rèn)不處理指數(shù)分布的截距項(xiàng),因此我們需要手動(dòng)添加一個(gè)常數(shù)項(xiàng)
X = [ones(n, 1), x]; % 添加常數(shù)項(xiàng)1到自變量中
beta_glm = glmfit(X, y, 'poisson', 'Link', 'log');
% 比較結(jié)果
disp('Kepler擬合結(jié)果:');
disp(beta_kepler);
disp('GLM擬合結(jié)果:');
disp(beta_glm);
% 繪制結(jié)果比較
% 原始數(shù)據(jù)
figure;
scatter(x, y, 'b', 'filled');
hold on;
% Kepler擬合曲線
y_kepler = beta_kepler(2) * exp(beta_kepler(1) * x);
%y_kepler = exp(p_kepler(2)+p_kepler(1) * x);
plot(x, y_kepler, 'r-', 'LineWidth', 2);
% GLM擬合曲線
% 注意,glmfit返回的是對(duì)數(shù)尺度上的參數(shù),我們需要轉(zhuǎn)化回原始尺度
% 對(duì)于泊松分布,GLM的擬合結(jié)果是log(mu),所以我們需要使用exp函數(shù)
y_glm = exp([ones(size(X,1),1), X] * beta_glm);
plot(x, y_glm, 'g--', 'LineWidth', 2);
legend('原始數(shù)據(jù)', 'Kepler擬合', 'GLM擬合');
xlabel('x'); ylabel('y');
title('北太天元: Kepler擬合與GLM擬合比較');
hold off;
五、應(yīng)用場(chǎng)景
廣義線性模型在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,包括但不限于: - 醫(yī)學(xué):用于疾病診斷、治療效果評(píng)估等。 - 生物學(xué):用于基因表達(dá)數(shù)據(jù)分析、種群動(dòng)態(tài)模型等。 - 經(jīng)濟(jì)學(xué):用于需求分析、風(fēng)險(xiǎn)評(píng)估等。 - 社會(huì)學(xué):用于投票行為分析、犯罪率預(yù)測(cè)等。
六、glm的鏈接函數(shù)和神經(jīng)網(wǎng)絡(luò)的激活函數(shù)
廣義線性模型(GLM)的鏈接函數(shù)和神經(jīng)網(wǎng)絡(luò)的激活函數(shù)在作用上有一定的相似性,它們都是為了引入非線性因素,使得模型能夠捕捉到數(shù)據(jù)中的復(fù)雜關(guān)系。然而,盡管它們?cè)诠δ苌嫌兴丿B,但在發(fā)展背景、理論基礎(chǔ)以及應(yīng)用靈活性上確實(shí)存在一些差異。
GLM的鏈接函數(shù)起源于統(tǒng)計(jì)學(xué)的廣義線性模型框架,這一框架是在對(duì)經(jīng)典線性回歸模型進(jìn)行擴(kuò)展的基礎(chǔ)上發(fā)展起來的。鏈接函數(shù)的主要作用是將線性預(yù)測(cè)器(即自變量的線性組合)與響應(yīng)變量的期望值或分布聯(lián)系起來。由于GLM的理論基礎(chǔ)較為堅(jiān)實(shí),鏈接函數(shù)的選擇通常受到嚴(yán)格的數(shù)學(xué)和統(tǒng)計(jì)理論的約束,以確保模型的合理性和可解釋性。因此,在GLM中,鏈接函數(shù)的選擇往往比較有限,且需要滿足一定的數(shù)學(xué)性質(zhì),如單調(diào)性和可逆性。
相比之下,神經(jīng)網(wǎng)絡(luò)的激活函數(shù)則更加靈活多樣。神經(jīng)網(wǎng)絡(luò)作為一種機(jī)器學(xué)習(xí)算法,其目標(biāo)是通過對(duì)大量數(shù)據(jù)進(jìn)行訓(xùn)練,學(xué)習(xí)到數(shù)據(jù)中的復(fù)雜模式和規(guī)律。激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中扮演著至關(guān)重要的角色,它們通過引入非線性因素,使得神經(jīng)網(wǎng)絡(luò)能夠逼近更加復(fù)雜的函數(shù)或映射。與GLM的鏈接函數(shù)相比,神經(jīng)網(wǎng)絡(luò)的激活函數(shù)沒有嚴(yán)格的數(shù)學(xué)和統(tǒng)計(jì)理論約束,因此可以選擇更加多樣化和靈活的函數(shù)形式。此外,隨著深度學(xué)習(xí)的發(fā)展,人們還不斷提出新的激活函數(shù),以適應(yīng)不同任務(wù)和數(shù)據(jù)的需求。
總的來說,雖然GLM的鏈接函數(shù)和神經(jīng)網(wǎng)絡(luò)的激活函數(shù)在作用上相似,但它們?cè)诎l(fā)展背景、理論基礎(chǔ)以及應(yīng)用靈活性上存在差異。GLM的鏈接函數(shù)更加注重理論分析和可解釋性,而神經(jīng)網(wǎng)絡(luò)的激活函數(shù)則更加靈活多樣,能夠適應(yīng)不同任務(wù)和數(shù)據(jù)的需求。在實(shí)際應(yīng)用中,需要根據(jù)具體問題和數(shù)據(jù)特點(diǎn)選擇合適的模型和方法。
七、結(jié)論
廣義線性模型通過放寬普通線性回歸模型的假設(shè),擴(kuò)展了其應(yīng)用范圍,使其能夠處理各種類型的數(shù)據(jù)和響應(yīng)變量。通過選擇合適的鏈接函數(shù)和分布類型,廣義線性模型能夠靈活地適應(yīng)不同的實(shí)際問題,為統(tǒng)計(jì)分析和數(shù)據(jù)挖掘提供了強(qiáng)大的工具。
再給出北太天元一個(gè)使用glmfit 的例子, 代碼如下:
% 生成示例數(shù)據(jù)
N = 100; % 樣本大小
X = randn(N, 2); % 生成兩個(gè)服從正態(tài)分布的預(yù)測(cè)變量
% 添加常數(shù)項(xiàng)(截距項(xiàng))
X = [ones(N, 1), X];
% 生成二項(xiàng)響應(yīng)變量(0 或 1)
% 這里我們使用一個(gè)邏輯回歸模型來生成響應(yīng)變量,但使用不同的系數(shù)
true_beta = [0.5; -0.3; 0.2]; % 真正的回歸系數(shù)
p = 1 ./ (1 + exp(-X * true_beta)); % 計(jì)算響應(yīng)變量的概率
y = rand(N, 1) < p; % 生成響應(yīng)變量
% 使用 glmfit 進(jìn)行邏輯回歸
% 指定響應(yīng)變量分布為 'binomial'
beta_hat = glmfit(X(:,2:3), y, 'binomial'); % 注意:這里我們排除了常數(shù)項(xiàng)列
% 輸出估計(jì)的回歸系數(shù)
disp('Estimated coefficients:');
disp(beta_hat);
% 計(jì)算預(yù)測(cè)的概率 p_hat = 1 ./ (1 + exp(-X * beta_hat)); % 注意:這里我們添加了常數(shù)項(xiàng)1
% 評(píng)估模型性能
% 例如,可以計(jì)算準(zhǔn)確率、精確率、召回率等,但這里我們僅計(jì)算準(zhǔn)確率作為示例
predicted_y = p_hat > 0.5; % 使用 0.5 作為閾值進(jìn)行預(yù)測(cè)
accuracy = mean(predicted_y == y);
disp(['Accuracy: ',
num2str(accuracy)]);