0先看目标:我们要读懂哪一行公式?
动物模型(Animal Model)几乎都写成下面这一行。本教程只讲读懂它所需的线性代数,不多也不少。
最终求解育种值靠的是 Henderson 的混合模型方程(MME):
| X′X | X′Z |
| Z′X | Z′Z + A−1α |
| b̂ |
| û |
| X′y |
| Z′y |
看懂这一块需要:向量、矩阵、乘法、转置(′)、逆(−1)、方程组、对称/正定矩阵。下面一个个来。
贯穿全文的小例子
8 头犊牛,1–3 号是基础群(父母未知),4–8 号有断奶增重记录(kg)。这是 Mrode《Linear Models for the Prediction of Animal Breeding Values》第 3 章的经典例子,假设 σa2=20,σe2=40。
| 动物 | 父 | 母 | 性别 | 增重 y |
|---|---|---|---|---|
| 1 | – | – | – | – |
| 2 | – | – | – | – |
| 3 | – | – | – | – |
| 4 | 1 | – | 公 | 4.5 |
| 5 | 3 | 2 | 母 | 2.9 |
| 6 | 1 | 2 | 母 | 3.9 |
| 7 | 4 | 5 | 公 | 3.5 |
| 8 | 3 | 6 | 公 | 5.0 |
1向量:一支箭头,也是一列数
向量就是"按顺序排好的一串数"。2 个数可以画成平面上的箭头,5 个数虽然画不出来,但规则完全一样。
加法:对应位置相加。几何上就是"箭头首尾相接"。
数乘:2a = (6, 2),箭头方向不变、长度翻倍。
在动物模型里,y 就是一个 5 维列向量:
点积(内积):矩阵乘法的"零件"
两个等长向量对应相乘再相加:a·b = 3×1 + 1×2 = 5。几何含义:一个向量在另一个方向上的"投影"有多长。点积为 0 ⇔ 两箭头互相垂直。
记住这一点就够了
后面所有矩阵乘法,本质都是"行向量 · 列向量"的点积重复很多次。2矩阵:一张表,也是一种"变形"
矩阵有两种看法:① 一张有行有列的数表(存数据);② 一台把向量变成新向量的机器(做变换)。
大小用"行 × 列"描述:X 是 5×2(5 条记录、2 个性别),A 是 8×8(8 头动物)。
用 2×2 矩阵
变换平面时,第 1 列 (a,c) 是原来 x 轴单位箭头 î 的新位置,第 2 列 (b,d) 是 y 轴单位箭头 ĵ 的新位置。整个网格跟着它们一起变形。拖动滑块试试:a b c d
这个画布会在 第 6 节(行列式) 和 第 7 节(逆矩阵) 再用到:阴影方块的面积 = |行列式|;能"变回去"的变换才有逆矩阵。
3矩阵乘法:行 · 列
结果第 i 行第 j 列 = 左矩阵第 i 行 与 右矩阵第 j 列 的点积。把鼠标移到(或点击)右边结果矩阵的格子上看看它是怎么来的。
尺寸规则(最常出错)
(m×n) · (n×p) = m×p。左边的"列数"必须等于右边的"行数",中间两个数"抵消"。
例:X(5×2)·b(2×1) = 5×1,正好和 y 一样大。
顺序不能换
一般 AB ≠ BA,甚至 BA 可能尺寸不合根本算不了。几何上:先旋转再拉伸 ≠ 先拉伸再旋转。但满足结合律:(AB)C = A(BC)。
矩阵乘向量 = 对矩阵的列做加权求和:Xb = b₁·(第 1 列) + b₂·(第 2 列)。这正是"每条记录加上它所属性别的效应"。
4转置与对称矩阵
转置:把行变成列(沿主对角线翻折)。育种文献常写 X′,数学书常写 XT,是同一个意思。
- (AB)′ = B′A′(顺序反过来,像"穿衣脱衣")
- X′X 总是方阵,而且总是对称的
对称矩阵:A′ = A
以主对角线为镜子左右对称。动物模型里的 A、V、整个 MME 左边矩阵都是对称的——因为"牛 4 和牛 7 的亲缘"当然等于"牛 7 和牛 4 的亲缘"。软件只需存一半,省一半内存。5特殊矩阵与设计矩阵 X、Z
单位矩阵 I
乘谁都不变:IA = A,相当于数字 1。几何:什么都不做。
对角矩阵
只有对角线非零。几何:沿坐标轴各自拉伸。X′X 在单因子时就是对角阵。
零矩阵 0、方阵
全是 0 的矩阵;行数=列数的叫方阵。只有方阵才谈得上行列式与逆。设计(关联)矩阵:0/1 的"记账本"
每一行是一条记录,每一列是一个效应水平;该记录属于哪个水平,那一格就是 1。
X(5×2):第 1 列"公"、第 2 列"母"。Z(5×8):每列是一头动物,1–3 号没有记录所以整列为 0。
直觉:X′X 和 Z′Z 在"数个数"
6行列式:变换把面积放大了几倍
对 2×2 矩阵,det = ad − bc。几何意义:单位正方形变换后的(有方向的)面积。
- |det| = 2:面积变 2 倍;det 为负:图形被"翻面"(镜像)。
- det = 0:平面被压成一条线(或一个点)——信息丢失了,无法还原。回到第 2 节画布点"压扁(奇异)"看看。
- 高维也一样:3×3 是体积缩放,n×n 是"n 维体积"缩放。
和育种的联系
det = 0 的矩阵叫奇异矩阵,没有逆。MME 左边矩阵如果奇异(比如模型里同时放了总均值和全部性别水平),就需要第 8 节的处理。REML 估计方差组分时还会用到 log|V| 或 log|C|。7逆矩阵与线性方程组
逆矩阵 A−1 就是"撤销"变换:A−1A = I。它是矩阵世界的"除法"。
2×2 求逆公式
| a | b |
| c | d |
| d | −b |
| −c | a |
方程组 = 找交点
方程组 Ax = b 的解是 x = A−1b。两个未知数时,每个方程是一条直线,解就是交点。固定第一个方程 x + y = 4,调节第二个方程:
第二个方程:a·x + b·y = c
MME 就是这样一个方程组
只不过未知数有 2 + 8 = 10 个(2 个性别效应 + 8 个育种值),"直线"变成了 10 维空间里的"超平面"。原理完全相同:系数矩阵行列式不为 0 → 唯一解。大型评估(几百万头)不会真去求逆,而是用迭代法(如 Gauss-Seidel、PCG)直接解方程。8秩、线性相关与广义逆
秩(rank)= 矩阵里真正"独立"的列(或行)有几个 = 变换后空间还剩几维。
如果模型里同时放总均值 μ 和两个性别水平:
第 1 列 = 第 2 列 + 第 3 列,有一列是"多余的"(线性相关),秩 = 2 而不是 3,所以 det(X′X) = 0。直观上:给 μ 加 10、给两个性别各减 10,预测值完全不变——数据无法区分,解有无穷多个。
三种常见处理
① 去掉一列(如 SAS 把最后一个水平设为 0);② 加约束(如两性别效应之和为 0);③ 用广义逆 G(满足 AGA = A)得到一组解。关键结论:虽然 b̂ 本身不唯一,但可估函数(如"公 − 母"的差)以及育种值 û 的排序是唯一的。所以育种值通常以"相对值"解读。
9方差协方差矩阵:一个"椭圆"
两个随机变量的方差和协方差可以排成对称矩阵 V = [[Var₁, Cov],[Cov, Var₂]]。数据点云的形状就是一个椭圆。
- Cov = 0:椭圆的轴与坐标轴平行;Cov > 0:向右上倾斜(正相关)。
- 椭圆的长短轴方向 = 特征向量;轴长² ∝ 特征值。
- 把 Cov 拉得太大(|Cov| > √(Var₁·Var₂),即相关系数 |r|>1),就会出现负特征值——这样的"方差矩阵"在现实中不可能存在。
正定矩阵(positive definite)
所有特征值 > 0,等价于对任意非零 x 都有 x′Vx > 0("任何组合的方差都为正")。合法的方差协方差矩阵必须正定(或至少半正定)。A、G、R 都应如此;多性状分析中估出的遗传协方差矩阵"不正定"是常见报错,原因往往就是相关系数估出了界。多性状模型里的克罗内克积 ⊗
两个性状的育种值方差:Var(u) = G₀ ⊗ A。⊗ 的规则:用左边矩阵的每个元素去乘整个右边矩阵,拼成大块。
G₀ = 2 个性状的遗传方差/协方差,A = 2 头半同胞(亲缘 0.5)。结果 4×4 描述"任意两头动物 × 任意两个性状"的协方差。
10亲缘关系矩阵 A(分子血缘相关矩阵)
aij = 动物 i 与 j 的加性遗传相关的 2 倍亲缘系数;aii = 1 + Fi(F 为近交系数)。
表格法(按出生顺序,父母在前)
设动物 j 的父母为 s、d(未知则视为 0):・非对角:aij = ½ (ais + aid) ——"我和你的亲缘 = 我和你父母亲缘的平均"
・对角:ajj = 1 + ½ asd ——"父母越亲,我越近交"
读读看:a14 = 0.5(父子);a56 = 0.25(同母半同胞);8 号的父母 3 和 6 之间 a36 = 0,所以 8 号不近交,a88 = 1。
为什么 MME 用 A−1 而不是 A
A 几乎处处非零(稠密),而 A−1 非常稀疏:只有"父母–子女"和"父–母"之间才非零,并且可以直接从系谱写出来(Henderson 规则),根本不用先算 A 再求逆。这就是几百万头动物也能做 BLUP 的秘密。11从模型推导方差:V、协方差与 BLUP 公式
模型 y = Xb + Zu + e 只写了"均值结构"。把几条假设和三条运算规则用上,就能推出数据的方差结构,进而推出育种值该怎么估。
第 1 步:模型假设(推导的全部"原料")
| 假设 | 含义 | 生物学解释 |
|---|---|---|
| E(u) = 0,E(e) = 0 | 随机效应均值为 0 | 育种值是相对于群体的离差;"平均"部分已放进 Xb |
| Var(u) = Aσₐ² = G | 育种值的协方差由亲缘决定 | 只考虑加性效应;亲缘越近,育种值越相像 |
| Var(e) = Iσₑ² = R | 残差互不相关、方差相同 | 没有共同环境(如同窝效应);若有,需另加随机效应 |
| Cov(u, e′) = 0 | 遗传与环境无关 | 好基因的牛不会被系统地分到好圈舍 |
| b 固定、σₐ²、σₑ² 已知 | BLUP 需要先知道方差组分 | 实际中先用 REML 估计(见本节末) |
第 2 步:三条运算规则(标量 → 矩阵)
① 期望:线性的
E(Ax + c) = AE(x) + c标量版:E(ax+c) = aE(x)+c
② 方差:"夹心"
Var(Ax) = A·Var(x)·A′标量版:Var(ax) = a²Var(x)。a² 拆成"左乘 A、右乘 A′"。几何上就是:把第 9 节的椭圆用第 2 节的矩阵 A 变形一下。
③ 和的方差
Var(x+w) = Var(x) + Var(w) + Cov(x,w′) + Cov(w,x′)Cov(Ax, (Bw)′) = ACov(x,w′)B′
第 3 步:推导
均值:E(y) = Xb + ZE(u) + E(e) = Xb
方差:Xb 是常数,不贡献方差,所以
= Z·Var(u)·Z′ + Var(e) (规则②)
= ZAZ′σₐ² + Iσₑ² = V
记录与育种值的协方差:
把例子代进去(σₐ²=20,σₑ²=40),V 的行列对应有记录的动物 4–8:
看懂 V 的每个元素,就是经典数量遗传学
・对角线 Vii = aiiσₐ² + σₑ² = 20 + 40 = 60 = 表型方差 σₚ²,h² = 20/60 = 1/3。・非对角 Vij = aijσₐ²:
这正是教科书上"半同胞表型协方差 = ¼σₐ²、亲子协方差 = ½σₐ²"的矩阵写法。
・亲属之间表型相关,所以 y 不能当作独立数据处理——这就是普通最小二乘不够用的原因。
第 4 步:从方差到"最好的预测"
已知 y 后,怎样猜 u 最准?统计上的答案是条件期望。在正态假设下,它是一条回归:
其中 b̂ 用广义最小二乘(GLS)估计:b̂ = (X′V−1X)−1X′V−1y。V−1 就像"权重":方差大、彼此相关的记录被打折。
标量直觉:只有自身一条记录时
所有矩阵都变成数:G = σₐ²,Z = 1,V = σₚ²,于是绿色实线:斜率 h²,即 BLUP 的"收缩"预测,离差平方和最小。
h² 越低,点云越扁平,最佳预测线越平——证据少,就越保守。
Henderson 的贡献:不用求 V−1
V 是 n×n 的稠密矩阵(n = 记录数,可达上亿),求逆不现实。Henderson 证明:上面 GLS + 回归公式的解,与混合模型方程的解完全相同;而 MME 只用到稀疏的 A−1 和 R−1。下面在浏览器里用两种方法分别算一遍:第 5 步:预测有多准——PEV 与可靠性
预测误差 u − û 的方差(PEV)可以直接从 MME 左边矩阵的逆 C−1 读出:
其中 cii 是 C−1 里动物 i 对应的对角元。还有两个常用结论:Var(û) = Cov(u, û′) = G − PEV(估计值的方差比真实育种值小,也就是"收缩"),以及 r² = Var(ûi)/Var(ui)。
附:σₐ²、σₑ² 本身怎么来?(REML 一瞥)
12把一切拼起来:混合模型方程(MME)
下面所有数字都由浏览器实时计算。拖动遗传力,看育种值如何变化。
第 1 步:拼出左边矩阵 C 与右边向量
蓝 = X′X,绿 = X′Z 和 Z′X,红 = Z′Z + A−1α。注意它是对称的。
第 2 步:解方程 C·[b̂; û] = r
你能从结果里读出什么
・1–3 号没有记录,但通过 A−1 从后代那里"借"到了信息,所以也有育种值。・α 是"收缩"力度:h² 越低,α 越大,A−1α 在对角线上越重,育种值越被拉向 0(越保守)。把 h² 拖到 0.05 看看,再拖到 0.9。
・Z′Z + A−1α 中的"+"让矩阵变得可逆:即使有动物没记录(Z′Z 对角为 0),加上 A−1α 后仍正定。
・预测误差方差 PEV 和可靠性也来自 C−1(推导见第 11 节):PEV = ciiσₑ²,r² = 1 − PEV/(aiiσₐ²);本例无近交(aii=1),化简为 r² = 1 − cii·α。
13速查表
| 符号 | 名称 | 一句话 | 在动物模型里 |
|---|---|---|---|
| a·b | 点积 | 对应相乘再相加 | 矩阵乘法的每一格 |
| AB | 矩阵乘法 | 行·列;(m×n)(n×p)=m×p | Xb、Zu、X′X … |
| A′ / Aᵀ | 转置 | 行列互换;(AB)′=B′A′ | X′y、Z′Z |
| I | 单位矩阵 | 相当于 1,什么都不做 | Var(e)=Iσₑ² |
| |A|, det | 行列式 | 面积/体积缩放倍数,0 ⇒ 不可逆 | REML 似然中的 log|V| |
| A⁻¹ | 逆矩阵 | 撤销变换;A⁻¹A=I | A⁻¹α 加进 MME |
| rank | 秩 | 独立列的个数 | 固定效应不满秩 ⇒ 广义逆 |
| A⁻ | 广义逆 | AGA=A,奇异时也能"凑"一个解 | b̂ 不唯一,可估函数唯一 |
| λ, v | 特征值/向量 | Av=λv,椭圆的轴 | 判断正定、主成分 |
| 正定 | positive definite | 特征值全 >0,x′Vx>0 | 合法的 A、G、R |
| ⊗ | 克罗内克积 | 每个元素乘整个矩阵 | 多性状 G₀⊗A |
| tr(A) | 迹 | 对角线之和 | REML/EM 算法公式 |
进一步阅读:Mrode R.A.《Linear Models for the Prediction of Animal Breeding Values》第 1–3 章;张沅《家畜育种学》中 BLUP 部分。有了本页的基础,读这些书时遇到的矩阵运算应当都不陌生了。