方差分析
Analysis of Variance (ANOVA)
析因设计/析因分析
Factorial design/Factorial analysis
- 多个因素会影响实验结果吗?
- 不同因素对实验结果的影响如何?是否存在 1+1>2 的 化学反应?
单因素方差分析
one-way/single-factor analysis of variance
单个因素的各个水平对实验结果的影响(是否一样?最好?最坏?)
模型假设:
- m 个水平,每个水平 ni 次试验
- 正态性:水平 i 对结果的「效应」(effect)为 μi,每次试验有噪声 ϵij∼N(0,σi2),于是 Xij∼N(μi,σi2)
- 方差齐性:σ12=⋯=σm2=σ2
- 独立性:噪声之间相互独立
现实中不同实验对象特质不同,明显影响实验结果。
- 可以使用更大的样本量,随机分组,使得每一组整体看起来都差不多。
分析方差
定义
总离差平方和(total sum of squares)
SST=i,j∑(Xij−Xˉ⊙⊙)2
组内离差平方和(sum of squares within)/误差平方和
SSW=i,j∑(Xij−Xˉi⊙)2
组间离差平方和(sum of squares between)/效应平方和
SSB=i∑ni(Xˉi⊙−Xˉ⊙⊙)2
组间离差平方和
直觉上应该有效应 μi≈Xˉi⊙,若效应有差距,则 SSB 会较大。事实上确实有
E[SSB]=E[i∑niXˉi⊙2−nXˉ⊙⊙2]=i∑ni[Var[Xˉi⊙]+E[Xˉi⊙]2]−n[Var[Xˉ⊙⊙]+E[Xˉ⊙⊙]2]=i∑ni[niσ2+μi2]−n[nσ2+μˉ2]=(m−1)σ2+i∑ni(μi−μˉ)2
若效应相同 μi=μˉ,则 m−1SSB 是方差的无偏估计,且 σ2SSB∼χ2(m−1)(具体可参见上章有关卡方分布的内容)。
组内离差平方和
有 ∑jσ2(Xij−Xˉi⊙)2∼χ2(ni−1) 且相互独立,于是 σ2SSW∼χ2(n−m)。
又 σ2SSB∼χ2(m−1),若要使用 F 检验,还需额外验证 SSB,SSW 相互独立(具体可参见上章的相关内容)。
若效应相同 μi=μˉ,则 SSW/(n−m)SSB/(m−1)∼F(m−1,n−m)。
方差来源 |
平方和 |
自由度 |
均方(MS) |
F 比率 |
因素 |
SSB |
m−1 |
MSB=m−1SSB |
F=MSWMSB |
误差 |
SSW |
n−m |
MSW=n−mSSW |
总和 |
SST |
n−1 |
- |
快捷计算*
令 Ti=∑jXij,T=∑iTi,则有
⎩⎨⎧SSTSSBSSW=i,j∑Xij2−nT2=i∑niTi2−nT2=SST−SSB
最后一个证明有
SST=i,j∑(Xij−Xˉ⊙⊙)2=i,j∑(Xij−Xˉi⊙+Xˉi⊙−Xˉ⊙⊙)2=i,j∑(Xij−Xˉi⊙)2+i,j∑(Xˉi⊙−Xˉ⊙⊙)2+2i,j∑(Xij−Xˉi⊙)(Xˉi⊙−Xˉ⊙⊙)=SSW+SSB+2i,j∑(Xij−Xˉi⊙)(Xˉi⊙−Xˉ⊙⊙)=SSW+SSB+2i∑(Xˉi⊙−Xˉ⊙⊙)j∑(Xij−Xˉi⊙)=SSW+SSB+2i∑(Xˉi⊙−Xˉ⊙⊙)×0=SSW+SSB
参数估计
若效应不同,估计效应 μi
采用最大似然估计
L(μ1,…,μm,σ2)=(2πσ21)nexp(−i⩽m∑j⩽ni∑2σ2(Xij−μi)2)
估计方差
无关因素,组内离差平方和 σ2SSW∼χ2(n−m)。
估计两个水平下的总体 N(μi,σ2),N(μj,σ2) 的效应差 μi−μj
有
- E[Xˉi⊙−Xˉj⊙]=μi−μj
- Var[Xˉi⊙−Xˉj⊙]=σ2(ni1=nj1)
于是有
σni1+nj1(Xˉi⊙−Xˉj⊙)−(μi−μj)/σ2SSW/(n−m)=SSW(ni1+nj1)/(n−m)(Xˉi⊙−Xˉj⊙)−(μi−μj)∼t(n−m)
双因素方差分析
two-way analysis of variance
两个因素的各个水平对实验结果的影响(是否一样?最好?最坏?)
模型假设:
- a,b 个水平,每个水平组合一次试验
- 线性:Xij=μ+αi+βj+ϵij
- 正态性:每次试验噪声 ϵij∼N(0,σi2)
- 方差齐性:σ12=⋯=σm2=σ2
- 独立性:噪声之间相互独立
分析方差
定义
总离差平方和
SST=i,j∑(Xij−Xˉ⊙⊙)2
因素 A 的效应平方和
SSA=bi⩽a∑(Xˉi⊙−Xˉ⊙⊙)2
因素 B 的效应平方和
SSB=aj⩽b∑(Xˉ⊙j−Xˉ⊙⊙)2
误差平方和
SSE=i,j∑(Xij−Xˉi⊙−Xˉ⊙j+Xˉ⊙⊙)2
假设检验
直觉上因素各水平的效应都相同的话有 αi=0 或 βi=0,效应平方和不会大:
- 若因素 A 效应相同 αi=0,σ2SSA∼χ(α−1),否则 E[SSA/(a−1)]>σ2
- 若因素 B 效应相同 βi=0,σ2SSB∼χ(β−1),否则 E[SSB/(b−1)]>σ2
无关因素,误差平方和 σ2SSE∼χ2((a−1)(b−1))。
FA=SSE/((a−1)(b−1))SSA/(a−1)
FB=SSE/((a−1)(b−1))SSB/(b−1)
方差分析表
方差来源 |
平方和 |
自由度 |
均方(MS) |
F 比率 |
因素 A |
SSA |
a−1 |
MSA=a−1SSA |
F=MSEMSA |
因素 B |
SSB |
b−1 |
MSB=b−1SSB |
F=MSEMSB |
误差 |
SSE |
(a−1)(b−1) |
MSE=(a−1)(b−1)SSE |
- |
总和 |
SST |
ab−1 |
- |
- |
双因素方差分析和交互作用(interaction)
模型假设:
- a,b 个水平,每个水平组合 c 次试验
- 线性:Xij=μ+αi+βj+γij+ϵij,γij 为交互作用效应
- 正态性:每次试验噪声 ϵij∼N(0,σi2)
- 方差齐性:σ12=⋯=σm2=σ2
- 独立性:噪声之间相互独立
分析方差
定义
总离差平方和
SST=i,j,k∑(Xijk−Xˉ⊙⊙⊙)2
因素 A 的效应平方和
SSA=bci∑(Xˉi⊙⊙−Xˉ⊙⊙⊙)2
因素 B 的效应平方和
SSB=acj∑(Xˉ⊙j⊙−Xˉ⊙⊙⊙)2
交互作用的效应平方和
SSAB=ci,j∑(Xˉij⊙−Xˉi⊙⊙−Xˉ⊙j⊙+Xˉ⊙⊙⊙)2
误差平方和
SSE=i,j,k∑(Xijk−Xˉij⊙)2
假设检验
直觉上若交互作用不存在,则 Xˉij⊙≈Xˉi⊙⊙+Xˉ⊙j⊙−Xˉ⊙⊙⊙ 且 γij≈0,效应平方和不会大。
若没有交互作用,γij=0,有 σ2SSAB∼χ2((a−1)(b−1)),否则 E[(a−1)(b−1)SSAB]>σ2
无关因素,误差平方和 σ2SSE∼χ2(ab(c−1))。
检验交互作用
FAB=SSE/(ab(c−1))SSAB/((a−1)(b−1))∼F((a−1)(b−1),ab(c−1))
方差分析表
方差来源 |
平方和 |
自由度 |
均方(MS) |
F 比率 |
因素 A |
SSA |
a−1 |
MSA=a−1SSA |
F=MSEMSA |
因素 B |
SSB |
b−1 |
MSB=b−1SSB |
F=MSEMSB |
交互作用 |
SSAB |
(a−1)(b−1) |
MSAB=(a−1)(b−1)SSAB |
F=MSEMSAB |
误差 |
SSE |
ab(c−1) |
MSE=ab(c−1)SSE |
- |
总和 |
SST |
abc−1 |
- |
- |
快捷计算*
令
- Tij=∑kXijk
- Ti⊙=∑jTij
- T⊙j=∑iTij
- T=∑i,jTij
则有
⎩⎨⎧SSTSSASSBSSABSSE=i,j,k∑Xijk2−abcT2=i∑acTi⊙2−abcT2=j∑bcT⊙j2−abcT2=i,j∑cTij2−abcT2−SA−SB=SST−SSA−SSB−SSAB
回归
由于其他笔记,例如《机器学习》已涉及相关内容,这里就不完整记录了。
线性回归
模型假设:
- 规律符合线性
- 噪声正态性、齐性、独立性:ϵi∼N(0,σ2)
参数估计
简单线性回归 Yi=a+bXi+ϵi。
模型有多好?如何选择 a,b?
最大似然估计(LME):
L(a,b,σ2)=(2πσ21)nexp(−2σ21i∑(yi−a−bxi))
即最小化 ∑i(yi−a−bxi)2,这也就是「最小二乘法」(least squares)。
相当于求驻点
⎩⎨⎧2i∑(yi−a−bxi)2i∑(yi−a−bxi)xi=0=0
解得
⎩⎨⎧i∑yi=na+bi∑xii∑xiyi=ai∑xi+bi∑xi2
剩下的解方程组即可。
估计方差
估计 y^i=a^+b^xi 会有偏差。
- 残差(residual):ei=y^i−yi
- 残差平方和 Q=∑iei2
有
- σ2Q∼χ2(n−2)
- E[n−2Q]=σ2
点预测与预测区间
简单线性回归 Y=a+bX+ϵ,给定 X 预测 Y 误差永远存在,精确估计不现实。
- 预测关于 X1,…,Xn 的 Y1,…,Yn 的平均值,大数定理保证了 n 越大估计越精确
- 预测区间:给定 X,预测 Y 可能的范围
控制问题:给定 Y 以 1−α 概率处于范围 [yL,yU],则 X 应该是多少?
其他话题
拟合优度
判定系数(coefficient of determination)R∈[0,1]
令
SST=i∑(yi−yˉ)2=i∑(y^i−yˉ)2+i∑(yi−y^i)2=SSR+SSE
于是有
R2=SSTSSR
线性回归的方差分析
方差来源 |
平方和 |
自由度 |
均方(MS) |
F 比率 |
回归 |
SSR |
1 |
MSR=SSR |
F=MSEMSR |
残差 |
SSE |
n−2 |
MSE=n−2SSE |
总和 |
SST |
n−1 |
- |
- |
异常值(离群值,outlier)
少数离群值对均方误差贡献极大,普通最小二乘对此非常敏感。
非线性回归
见《机器学习》相关笔记,此处略。
- 对数线性回归
- Logistic 回归
- 支持向量回归
- 岭回归
过拟合
见《机器学习》相关笔记,此处略。
多元线性回归
yi=β0+β1xi1+⋯+βpxip+ϵi=xi⊺β+ϵi
令
y=y1⋮yn,X=x1⊺⋮xn⊺=1⋮1x11⋮xn1…⋱…x1p⋮xnp,β=β0⋮βp,ϵ=ϵ1⋮ϵn
则有
y=Xβ+ϵ
则参数
β^=βargmin∥y−Xβ∥2≈(X⊺X)−1X⊺y
高维空间最优化问题,较为复杂。
信息论初步
信息熵
信息熵(entropy)刻画变量「有多随机」
H(X)=x∑p(x)log2p(x)1
底数不一定是 2。
这个定义是从公理导出的*:
- 对称性:H(p1,p2,…)=H(p2,p1,…)
- 最大熵:H(p1,…,pn)⩽H(n1,…,n1)=logn
- 连续性
- 递归性:H(p1,p2,…,pn)=H(p1+p2,…,pn)+(p1+p2)H(p1+p2p1,p1+p2p2)
信息熵简单的性质:
- 非负性:对任意随机变量 X 都有 H(X)⩾0
- 可加性:若 X,Y 相互独立,则联合分布 H(X,Y)=H(X)+H(Y)
第一个显然,第二个有
H(X,Y)=−x,y∑p(x,y)log2p(x,y)=−x,y∑p(x)p(y)(log2p(x)+log2p(y))=−(y∑p(y))x∑p(x)log2p(x)−(x∑p(x))y∑p(y)log2p(y)=−x∑p(x)log2p(x)−y∑p(y)log2p(y)=H(X)+H(Y)
若 nq∈[0,n] 是整数,则
n+12nH(q)⩽(nqn)⩽2nH(q)
证明
上界由二项式定理有
1=(q+(1−q))n=k=0∑n(kn)qk(1−q)n−k⩾(nqn)qnq(1−q)n−nq
从而
(nqn)⩽q−qn(1−q)−(1−q)n=2−qnlog2q2−(1−q)nlog2(1−q)=2nH(q)
下界有 nq=kargmin(kn)qk(1−q)n−k,二项式定理有
k=0∑n(kn)qk(1−q)n−k=1
最多含 n+1 项。
于是
(n+1)(nqn)qqn(1−q)(1−q)n⩾1
等价于
(nqn)⩾n+1qqn(1−q)(1−q)n⩾n+12nH(q)
目标 q=kargmin(kn)qk(1−q)n−k,于是
(kn)qk(1−q)n−k−(k+1n)qk+1(1−q)n−k−1=(kn)qk(1−q)n−k(1−k+1n−k1−qq)
非负,当 1−k+1n−k1−qq⩾0。
而这等价于
k⩾qn−1+q
压缩
硬币序列
压缩方案即前缀码 f:Ωn→{0,1}∗。
一枚硬币正面概率 p>21,对任意小的常数 δ>0,n 足够大时有
- 存在一种压缩使用期望至多 (1+δ)nH(p) 个比特压缩长度 n 的抛硬币序列
- 任意压缩长度 n 的抛硬币序列的压缩方案使用期望至少 (1−δ)nH(p) 个比特
令 ϵ>0 是足够小的常数满足 p−ϵ>21。
- 若序列中有不多于 n(p−ϵ) 正面:编码第一位为 1,使用 n+1 比特编码;
- 否则第一位为 0,对每一种情况使用一种不同的编码(如 m 种序列 ⌈log2m⌉ 比特)
第一种情况由 Chernoff 界,概率不超过 exp(2p−nϵ2),全期望 (n+1)exp(2pnϵ2)。
第二种情况数目
i=n(p−ϵ)∑n(in)⩽i=n(p−ϵ)∑n(n(p−ϵ)n)⩽2n2nH(p−ϵ)
使用比特
1+⌈log22n2nH(p−ϵ)⌉⩽nH(p−ϵ)+log2n+2
若序列 S1 比序列 S2 出现概率更高,则最优压缩方案满足
∣f(S1)∣⩽∣f(S2)∣
对于任意大小为 s 的序列的集合,一定有一个序列 S 满足
∣f(S)∣⩾log2s−1
则包含 n(p+ϵ) 个正面的序列需要 log2(n(p+ϵ)n)−1⩾log2n+12nH(p+ϵ)−1 个比特。
香农信源编码定理*
source coding theorem
对压缩方案前缀码 f:Ωn→{0,1}∗,对于任意在 Ω 上的概率分布 D,对于足够大的 n 有:
- 任意压缩方案都不可能使用期望低于 nH(D) 个比特压缩 (X1,…,Xn)∼D
- 存在一种压缩方案使用期望少于 nH(D)+1 个比特压缩 (X1,…,Xn)∼D
对于 x∈Ω,使用长度为 ⌈−log2D(x)⌉⩽−log2D(x)+1 个比特的编码,期望长度不超过 x∑D(x)(−log2D(x)+1)=H(X)=1。