# 一元方差分析 ANOVA
对于多个总体数据,有时需要考察它们的均值是否存在显著差异
例如,比较不同教学方法对学生成绩的影响,或者不同药物对患者康复的效果
方差分析 (Analysis of Variance, ANOVA) 是一种用于比较多个样本均值是否存在显著差异的统计方法
其基本思想是将总变异分解为组间变异和组内变异两部分,通过比较这两部分的变异来判断组均值是否存在显著差异
考虑 k 个正态总体,总体方差可以未知,此处假设相等,即 Πi:N(μi,σ2)
设置原假设
H0:μ1=μ2=⋯=μk
即,问题为 考察各总体均值是否相等
从 k 个总体中各自取 ni 个样本
Xi1,Xi2,…,Xini,i=1,2,…,k
第一个下标指示总体编号,第二个下标指示样本编号
那么对于各个总体,有
σ21j=1∑ni(Xij−Xi)2∼χni−12
其中 Xi=ni1j=1∑niXij 为第 i 个样本的样本平均
利用 χ2 分布的可加性,有
σ21i=1∑kj=1∑ni(Xij−Xi)2∼χ(i=1∑k(ni−1))2=χn−k2
其中 n=i=1∑kni 为总样本量
现在,如果原假设 H0 成立,那么各样本来自同一总体(均值和方差都相等)
所以可以将样本视作从 N(μ,σ2) 中抽取的,数量为 n=i=1∑kni 的样本
同样可以制作服从 χ2 分布的统计量
σ21i=1∑kj=1∑ni(Xij−X)2∼χn−12
其中 X=n1i=1∑kj=1∑niXij 为所有样本的总体平均
为了实际分析各组数据分散情况,定义三组平方和
- 组间变异平方和 (Sum of Squares Between, SSB)「級間変動」
- 组内变异平方和 (Sum of Squares Within, SSW)「級内変動」
- 总变异平方和 (Total Sum of Squares, TSS)「全変動」
令 si 为第 i 组样本的标准差
S1=SSB=i=1∑kni(Xi−X)2
S2=SSW=i=1∑k(ni−1)si2=i=1∑kj=1∑ni(Xij−Xi)2
S=TSS=i=1∑kj=1∑ni(Xij−X)2
此时容易证明以下等式
S=S1+S2
由于第 i 组样本的组内数据差异 Xij−Xi 独立于其平均 Xi
并且 Xi 实际上是 Xij 的函数
所以可以进一步得到与总平均的独立性,即 Xij−Xi 独立于 X
因此 S1 与 S2 独立,考虑等式
σ2S=σ2S1+σ2S2
此时
- 等式左侧服从 χn−12 分布
- 等式右侧互相独立,第二项服从 χn−k2 分布
那么,右侧第一项必然服从 χk−12 分布
因此,可以构造服从 F 分布的统计量
F=S2/(n−k)σ2S1/(k−1)σ2=S2(k−1)S1(n−k)∼Fk−1,n−k
推导基于假设:原假设 H0 成立,即各总体均值相等
所以 F 统计量可以用于检验该假设
根据 F 分布的性质,可以通过查表得到临界值 Fk−1,n−k(α)
如果计算得到的 F 统计量大于该临界值,则拒绝原假设 H0,认为各总体均值存在显著差异
否则,不拒绝原假设 H0,认为各总体均值无显著差异
实际上,如果原假设 H0 不成立,那么组间变异 S1 显著增大的情况下,组内变异 S2 相对较小
因此 F 统计量会显著增大,从而更容易超过临界值,导致拒绝原假设 H0
由 F 分布的统计量来判断是否拒绝原假设 H0 是合理的做法
在危险度 α 下
- 若 F>Fk−1,n−k(α),则拒绝原假设 H0,认为各总体均值存在显著差异
- 若 F≤Fk−1,n−k(α),则不拒绝原假设 H0,认为各总体均值无显著差异
例题
某化学药品同时由 4 家不同厂家生产,对其药物成分纯度进行测定,得到以下数据(单位:百分比)
| 第一厂家 | 第二厂家 | 第三厂家 | 第四厂家 |
|---|
| 样本数量 ni | 17 | 15 | 14 | 18 |
| 样本平均 Xi | 18.0 | 18.5 | 17.9 | 18.3 |
| 样本标准差 si2 | (0.83)2 | (0.75)2 | (1.00)2 | (0.95)2 |
在危险度 0.05 和 0.01 下,能否认为各厂家生产的药品纯度存在显著差异?
解
总样本量 n=17+15+14+18=64
总平均 X=6417×18.0+15×18.5+14×17.9+18×18.3=18.1796875
组间变异平方和 SSB
S1=17(18.0−18.1796875)2+15(18.5−18.1796875)2+14(17.9−18.1796875)2+18(18.3−18.1796875)2=3.44359375
SSB 的自由度 k−1=4−1=3
组内变异平方和 SSW
S2=(17−1)(0.83)2+(15−1)(0.75)2+(14−1)(1.00)2+(18−1)(0.95)2=47.2399
SSW 的自由度 n−k=64−4=60
计算 F 统计量
F=S2/(n−k)S1/(k−1)=47.2399/603.44359375/3=1.45791746∼F3,60
查询临界值
- 在危险度 0.05 下,F3,60(0.05)=2.758
- 在危险度 0.01 下,F3,60(0.01)=4.126
由于 F=1.45791746 均小于上述两个临界值
所以在危险度 0.05 和 0.01 下均不拒绝原假设 H0
结论:在危险度 0.05 和 0.01 下,不能认为各厂家生产的药品纯度存在显著差异
# 回归分析
对于给定的平面上的点集
(x1,y1),(x2,y2),…,(xn,yn)
希望找到一个函数 y=f(x),使得这些点尽可能接近该函数的图像
这种方法称为回归分析 (Regression Analysis)
假设直线的形式是
y=ax+b
那么希望找到对所有的差值
∣yi−(axi+b)∣
都最小的系数 a,b
为什么用竖直方向的差值而不是点到直线的距离?
实际上 x 方向的点是给定的,目的是尽可能精确的预测 y 的值
定义误差函数
l(a,b)=i=1∑n(yi−(axi+b))2
目标是求出极值点,设偏微分为零
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂a∂l=−2i=1∑nxi(yi−(axi+b))=0∂b∂l=−2i=1∑n(yi−(axi+b))=0
整理
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧ai=1∑nxi2+bi=1∑nxi=i=1∑nxiyiai=1∑nxi+nb=i=1∑nyi
这是关于 a,b 的二元一次方程组,解得
a=ni=1∑nxi2−(i=1∑nxi)2ni=1∑nxiyi−i=1∑nxii=1∑nyi,b=ni=1∑nyi−ai=1∑nxi
以下,为了化简 a,b
定义样本平均
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧X=n1i=1∑nxiY=n1i=1∑nyi
定义样本方差,协方差
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧SXX=n1i=1∑n(xi−X)2=n1i=1∑nxi2−X2SYY=n1i=1∑n(yi−Y)2=n1i=1∑nyi2−Y2SXY=n1i=1∑n(xi−X)(yi−Y)=n1i=1∑nxiyi−X⋅Y
所以
a=SXXSXY,b=Y−aX
对于每个 xi,可以计算出对应的预测值
y^i=axi+b
可以算出,预测值的平均和方差分别为
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧Y^=n1i=1∑ny^i=YSpp=n1i=1∑n(y^i−Y)2
定义 决定系数 (Coefficient of Determination)「決定係数」
R2=SYYSpp
误差 (Error)「残差」 ei=yi−y^i 的平均和方差
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧e=n1i=1∑nei=Y−aX−b=0See=n1i=1∑n(ei−e)2=n1i=1∑nei2
命题
以下等式成立
SYY=Spp+See
证明
将值 yi−Y 分解为由误差和预测值两部分组成
yi−Y=(yi−y^i)+(y^i−Y)=ei+(y^i−Y)
那么
SYY=n1i=1∑n(yi−Y)2=n1i=1∑n(ei+(y^i−Y))2=n1i=1∑n(ei2+2ei(y^i−Y)+(y^i−Y)2)=n1i=1∑nei2+n2i=1∑nei(y^i−Y)+n1i=1∑n(y^i−Y)2=See+0+Spp=See+Spp
其中第二项为零是因为
i=1∑nei(y^i−Y)=i=1∑n(yi−y^i)(y^i−Y)=i=1∑nyi(y^i−Y)−i=1∑ny^i(y^i−Y)=i=1∑nyiy^i−Yi=1∑nyi−i=1∑ny^i2+Yi=1∑ny^i=n(n1i=1∑nyiy^i−Y2−n1i=1∑ny^i2+Y2)=n(n1i=1∑nyiy^i−n1i=1∑ny^i2)=n(n1i=1∑ny^i(yi−y^i))=n(n1i=1∑ny^iei)=n(n1i=1∑ny^i(yi−(axi+b)))=n(n1i=1∑ny^iyi−an1i=1∑ny^ixi−bn1i=1∑ny^i)=n(n1i=1∑ny^iyi−an1i=1∑ny^ixi−bY)
注意到 y^i=axi+b,所以
n1i=1∑ny^iyin1i=1∑ny^ixi=n1i=1∑n(axi+b)yi=an1i=1∑nxiyi+bn1i=1∑nyi=an1i=1∑nxiyi+bY=n1i=1∑n(axi+b)xi=an1i=1∑nxi2+bn1i=1∑nxi=an1i=1∑nxi2+bX
代入上式
i=1∑nei(y^i−Y)=n(an1i=1∑nxiyi+bY−a(an1i=1∑nxi2+bX)−bY)=n(an1i=1∑nxiyi−a2n1i=1∑nxi2−abX)=n(a(n1i=1∑nxiyi−an1i=1∑nxi2−bX))=n(a(Y−b−bX))=n(a(0))=0
决定系数可以改写为
R2=SYYSpp=SYYSYY−See=1−SYYSee
得到 0≤R2≤1
- 当 R2 越接近 1 时,说明预测值 y^i 越接近实际值 yi,回归效果越好
- 当 R2 越接近 0 时,说明预测值 y^i 与实际值 yi 差异较大,回归效果较差
# Logistic 回归
在某些情况下,响应变量 Y 是分类变量,而不是连续变量
例如,预测某个病人是否患有某种疾病,响应变量 Y 只能取两个值:1(患病)或 0(不患病)
这种情况下,传统的线性回归方法不再适用
Logistic 回归 (Logistic Regression) 是一种用于处理分类响应变量的回归方法
其基本思想是通过对数几率 (Log-Odds) 的线性组合来建模响应变量与自变量之间的关系
假设有一个二分类响应变量 Y,取值为 0 或 1
以及自变量 X
Logistic 回归模型假设响应变量 Y 的对数几率与自变量 X 之间存在线性关系
log(P(Y=0∣X)P(Y=1∣X))=ax+b
其中,P(Y=1∣X) 表示在给定自变量 X 的条件下,响应变量 Y 取值为 1 的概率
P(Y=0∣X) 表示在给定自变量 X 的条件下,响应变量 Y 取值为 0 的概率
a 和 b 是需要估计的参数
通过对上式进行变换,可以得到响应变量 Y 取值为 1 的概率
P(Y=1∣X)=1+e−(ax+b)1
即,若记变量 Y 取到值 1 的概率为 p,则
p=1+e−(ax+b)1
预测参数时,最小二乘法不再适用,使用似然估计
给定观测数据集
(x1,y1),(x2,y2),…,(xn,yn)
定义关于参数 a,b 的似然函数
L(a,b)=i=1∏npiyi(1−pi)1−yi
其中 pi=P(Y=1∣X=xi)=1+e−(axi+b)1 是在自变量 X=xi 条件下,响应变量 Y 取值为 1 的概率
为了方便计算,将其对数化
ℓ(a,b)=logL(a,b)=i=1∑n(yilogpi+(1−yi)log(1−pi))
通常来说,严格求出让 ℓ(a,b) 最小的 a,b 比较困难
因此通常使用数值优化方法(如梯度下降法)来近似求解参数 a,b
# 多元回归分析
对于非单变量问题,也可以应用回归分析
假设观测到数据集
(x1j,x2j,…,xpj,yj),j=1,2,…,n
其中 p 是自变量的个数,n 是观测数据的数量
目标是建立自变量 X1,X2,…,Xp 与响应变量 Y 之间的关系
假设关系为线性关系
Y=a1X1+a2X2+⋯+apXp+b
其中 a1,a2,…,ap 和 b 是需要估计的参数
定义误差函数
l(a1,a2,…,ap,b)=j=1∑n(yj−(a1x1j+a2x2j+⋯+apxpj+b))2
目标是求出使误差函数最小的参数 a1,a2,…,ap,b
设偏微分为零
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧∂ai∂l=−2j=1∑nxij(yj−(a1x1j+a2x2j+⋯+apxpj+b))=0,i=1,2,…,p∂b∂l=−2j=1∑n(yj−(a1x1j+a2x2j+⋯+apxpj+b))=0
整理,得到关于 a1,a2,…,ap,b 的线性方程组
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧a1j=1∑nx1jxij+a2j=1∑nx2jxij+⋯+apj=1∑nxpjxij+bj=1∑nxij=j=1∑nxijyj,i=1,2,…,pa1j=1∑nx1j+a2j=1∑nx2j+⋯+apj=1∑nxpj+nb=j=1∑nyj
该方程组可以通过矩阵方法求解
定义矩阵
X=⎝⎜⎜⎜⎜⎛11⋮1x11x12⋮x1nx21x22⋮x2n⋯⋯⋱⋯xp1xp2⋮xpn⎠⎟⎟⎟⎟⎞,Y=⎝⎜⎜⎜⎜⎛y1y2⋮yn⎠⎟⎟⎟⎟⎞
以及参数向量
β=⎝⎜⎜⎜⎜⎜⎜⎛ba1a2⋮ap⎠⎟⎟⎟⎟⎟⎟⎞
那么上述方程组可以表示为
XTXβ=XTY
如果矩阵 XTX 可逆,那么参数向量 β 的解为
β=(XTX)−1XTY
这样就得到了多元回归分析中各个参数的估计值