"自然的一般规律在大多数情况下不是直接的感知对象。"
"The general laws of Nature are not, for the most part, immediate objects of perception."
—— 乔治·布尔 (George Boole) | 英格兰数学家和哲学家 | 1815-1864
📦 Python工具箱
随机变量的函数:以鸢尾花为例
Functions of Random Variables: Iris Example
随机变量的函数可以分为两类:线性变换(linear transformation)、非线性变换(nonlinear transformation)。 线性变换是本章的核心内容。
🎲 随机变量的函数:以鸢尾花为例
Functions of Random Variables: Iris Dataset Example
变换类型
选择具体变换
X₂: 花萼宽度
E(X₁) = 5.843
E(X₂) = 3.057
中心化数据,期望变为0
Z-score,期望0方差1
加权求和,仿射变换
面积、交互作用
形状指标、归一化
压缩尺度、稳定方差
- 发现新的线性关系
- 提高分类判别能力
- 改善正态性
- 识别离群值
经过6种变换后得到的成对特征散点图,展现不同变换对数据分布和关系的影响。
- 线性变换 — 期望E(aX+b) = aE(X)+b,方差var(aX+b) = a²var(X)
- 非线性变换 — 期望、方差需重新计算,分布形状可能改变
- 去均值 — 中心化数据,E(X-μ) = 0
- 标准化 — Z-score,E(Z)=0, var(Z)=1
- 乘积/比例 — 创建交互特征,非线性关系
- 对数变换 — 稳定方差,改善正态性
回顾:色子点数的"花式玩法"
我们在本书第3、4章聊过色子点数的"花式玩法",
比如点数之和、点数平均值、点数之差、点数平方、点数之商等等。
这些"花式玩法"都可以叫做随机变量的函数。
📐 线性变换
对于随机变量X₁和X₂,以下都是线性变换:
🎨 非线性变换
线性变换之外的随机变量变换都统称为非线性变换:
重要提示
注意,经过转换后的随机变量,其分布类型、期望、方差等都可能会发生变化。
🌸 以鸢尾花数据为例
鸢尾花数据的前4列特征分别为:
- X₁:花萼长度(sepal length)
- X₂:花萼宽度(sepal width)
- X₃:花瓣长度(petal length)
- X₄:花瓣宽度(petal width)
假如在一个有关鸢尾花的研究中,为了进一步挖掘鸢尾花数据中可能存在的量化关系,
我们可以分析如下几个指标:
图1所示为经过上述转换后得到的鸢尾花新特征之间的成对特征散点图(pairplot)。
这些新特征之间的成对关系中:
- 有些展现出明显的线性关系
- 有些特征更方便判别鸢尾花分类
- 有些特征展现出更好的"正态性"
- 有些则更容易发现"离群值"
从数据角度看
从数据角度来看,以上变换又叫数据转化(data transformation)。
这是《鸢尾花书:数据有道》一册的话题。
📝 14.1 关键要点总结
• 加法、减法、数乘
• 去均值、标准化
• 期望和方差可预测
• 对数、指数、倒数
• ECDF分位变换
• 改变分布形状
• 成对特征散点图
• 发现新的关系
• 提高判别能力
• 期望可能改变
• 方差可能改变
• 需重新分析
线性变换:投影视角
Linear Transformation: Projection Perspective
《矩阵力量》第25章介绍过随机变量的线性变换,我们部分内容"抄"过来。
本章后文会用鸢尾花数据展开讲解。
📐 线性变换:投影视角
Linear Transformation: Projection Perspective
变换类型
Y = aX + b
缩放 + 平移
如果X为一个随机变量,对X进行函数变换,可以得到其他的随机变量Y:
特别地,如果h()为线性函数,则X到Y进行的就是线性变换:
其中,a和b为常数
= aE(X) + b
a = 2, b = 1
E(X) = 5
E(Y) = 2×5 + 1 = 11.00
= a²var(X)
a = 2
var(X) = 0.5
var(Y) = 2²×0.5 = 2.00
- 缩放(a):改变尺度,影响方差
- 平移(b):改变位置,影响期望
线性变换 + 平移向量的组合
- 一元变换 — Y = aX + b,期望E(Y) = aE(X)+b,方差var(Y) = a²var(X)
- 二元变换 — Y = aX₁ + bX₂,方差var(Y) = a²var(X₁) + b²var(X₂) + 2ab·cov(X₁,X₂)
- 单方向投影 — Y = vᵀχ,E(Y) = vᵀμ,var(Y) = vᵀΣv
- 正交系投影 — γ = Vᵀχ,E(γ) = Vᵀμ,var(γ) = VᵀΣV
- PCA核心 — 选择Σ的特征向量作为V,使var(γ) = Λ对角化
📊 一元随机变量
如果X为一个随机变量,对X进行函数变换,可以得到其他的随机变量Y:
特别地,如果h()为线性函数,则X到Y进行的就是线性变换:
其中,a和b为常数。
= aE(X) + b
= a²var(X)
上式相当于几何中的缩放、平移两步操作。在线性代数中,上式相当于仿射变换(affine transformation)。
展开来说,在线性代数中,仿射变换是指一类在二维或三维欧几里得空间中的变换,
可以描述为一种线性变换和一个平移向量的组合。
- 仿射变换:线性变换 + 平移,Y = aX + b
- 纯线性变换:仅由矩阵乘法表达,可以缩放、旋转、镜像、剪切,但不能平移
📐 二元随机变量
如果Y和二元随机变量(X₁, X₂)存在如下关系:
(5)可以写成:
Y和二元随机变量(X₁, X₂)期望之间存在如下关系:
= aE(X₁) + bE(X₂) (7)
(7)可以写成如下矩阵运算形式:
= vᵀμ (8)
Y和二元随机变量(X₁, X₂)方差、协方差存在如下关系:
= a²var(X₁) + b²var(X₂) + 2ab·cov(X₁,X₂) (9)
(9)可以写成:
[cov(X₁,X₂), var(X₂)]][a b]ᵀ (10)
相信大家已经在上式中看到了如下协方差矩阵:
[cov(X₁,X₂), var(X₂)]] (11)
也就是说,(10)可以写成:
= vᵀΣv (12)
🎯 D维随机变量:朝单一方向投影
如果随机向量χ = [X₁, X₂, ..., X_D]ᵀ服从N(μ_χ, Σ_χ),χ在单位向量v方向上投影得到Y:
其中v是单位向量:||v|| = 1
= vᵀE(χ)
= vᵀμ (14)
= vᵀΣv (15)
- 将D维数据投影到1维直线上
- v是投影方向(单位向量)
- Y = vᵀχ是χ在v方向上的标量投影
- 这是降维的一种方式
🔄 D维随机变量:朝正交系投影
χ = [X₁, X₂, ..., X_D]ᵀ服从N(μ_χ, Σ_χ),χ在规范正交系V投影得到γ = [Y₁, Y₂, ..., Y_D]ᵀ:
其中V = [v₁, v₂, ..., v_D]是规范正交系:VᵀV = I
= VᵀE(χ)
= Vᵀμ (17)
= VᵀΣV (18)
= VᵀVΛVᵀV
= Λ(对角矩阵)
- 新坐标系中的协方差矩阵是对角矩阵
- 各分量不相关
- 这就是主成分分析(PCA)的核心思想!
上式还告诉我们,v_iᵀχ和v_jᵀχ的协方差为:
即不同方向的投影不相关
📝 14.2 关键要点总结
• E(Y) = aE(X) + b
• var(Y) = a²var(X)
• 仿射变换 = 缩放 + 平移
• E(Y) = vᵀμ
• var(Y) = vᵀΣv
• 涉及协方差矩阵
• E(Y) = vᵀμ
• var(Y) = vᵀΣv
• D维 → 1维降维
• E(γ) = Vᵀμ
• var(γ) = VᵀΣV
• V是特征向量 → PCA
单方向投影:鸢尾花两特征为例
Single Direction Projection: Iris Two Features
本节以鸢尾花数据花萼长度、花萼宽度两特征为例讲解线性变换。
我们首先看两个最简单的例子,将数据分别投影到横轴、纵轴。然后再看更一般的情况。
🎯 单方向投影:鸢尾花两特征为例
Single Direction Projection: Iris Sepal Features
投影角度
v = [1.000, 0.000]
μ₂ = 3.0573
σ₁² = 0.6856
σ₂² = 0.1899
cov = -0.0424
= [μ₁, μ₂][v₁, v₂]ᵀ
= v₁μ₁ + v₂μ₂
= v₁²σ₁² + v₂²σ₂²
+ 2v₁v₂cov(X₁,X₂)
Y = X₁(花萼长度)
var(Y) = 0.6856 cm²
Y = X₂(花萼宽度)
var(Y) = 0.1899 cm²
将椭圆(马氏距离d=1,2,3)投影到投影轴上,得到的线段分别代表:
花萼长度,方差最大
花萼宽度,方差较小
接近x轴方向
X₁和X₂等权重
更偏向花萼宽度
负角度示例
- 投影向量v — v = [cos(θ), sin(θ)],单位向量定义投影方向
- 投影数据y — y = Xv,将2D数据投影到1D直线上
- 投影期望 — E(y) = vᵀμ,质心的标量投影
- 投影方差 — var(y) = vᵀΣv,二次型形式
- 椭圆投影 — 马氏距离d的椭圆投影为μ_Y ± d·σ_Y线段
- 角度影响 — 不同投影方向导致不同的方差,反映数据在该方向的分散程度
📊 投影到x轴(图2)
鸢尾花数据矩阵为X = [x₁, x₂],对应随机变量为χ = [X₁, X₂]ᵀ。
如图2所示,将X投影到横轴,即:
[-0.0424, 0.1899]]
= [1 0][[0.6856, -0.0424],
[-0.0424, 0.1899]][1 0]ᵀ
= 0.6856
注意,图2中椭圆代表马氏距离。
三个黑色旋转椭圆分别代表马氏距离为1、2、3。
将图2中三个椭圆也投影到横轴上,大家会发现得到的三条线段分别代表:
μ₁ ± σ₁、μ₁ ± 2σ₁、μ₁ ± 3σ₁
本章后续会展开讲解。
📐 投影到y轴(图3)
如图3所示,将X投影到纵轴,即:
= [5.8433, 3.0573][0 1]ᵀ
= 3.0573
= [0 1]Σ_X[0 1]ᵀ
= 0.1899
🔄 其他投影方向(图4-图7)
图4~图7所示为其他四个投影场景,请大家自己分析。
v ≈ [0.996, 0.087]ᵀ
v ≈ [0.707, 0.707]ᵀ
v ≈ [0.259, 0.966]ᵀ
μ_Y = 4.466(示例值)
v ≈ [0.996, -0.087]ᵀ
对于任意角度θ,投影向量为:
投影后的统计量:
var(Y) = vᵀΣv
= cos²(θ)·σ₁² + sin²(θ)·σ₂²
+ 2cos(θ)sin(θ)·cov(X₁,X₂)
📝 14.3 关键要点总结
• Y = X₁(花萼长度)
• E(Y) = 5.8433
• var(Y) = 0.6856
• Y = X₂(花萼宽度)
• E(Y) = 3.0573
• var(Y) = 0.1899
• E(Y) = vᵀμ
• var(Y) = vᵀΣv
• 6个示例(图2-7)
这揭示了马氏距离与投影方差之间的深刻联系!
正交系投影:鸢尾花两特征为例
Orthogonal Projection: Iris Two Features
🔄 正交系投影:鸢尾花两特征为例
Orthogonal Projection: Iris Two Features
旋转角度
[sin(θ), cos(θ)]]
v₁ = [1.000, 0.000]
v₂ = [0.000, 1.000]
[y₁ y₂] = X[v₁ v₂]
= [Xv₁ Xv₂]
[Y₁ Y₂]ᵀ = Vᵀ[X₁ X₂]ᵀ
= [v₁ᵀχ v₂ᵀχ]ᵀ
v₁ = [1.000, 0.000]ᵀ
v₂ = [0.000, 1.000]ᵀ
= [[var(Y₁), cov(Y₁,Y₂)],
[cov(Y₁,Y₂), var(Y₂)]]
= [[0.6856, -0.0424],
[-0.0424, 0.1900]]
cos(2θ) = cos²(θ) - sin²(θ) = 1.0000
- 正交系V — 两个正交的单位向量v₁和v₂,通过角度θ旋转
- 同时投影 — Y = XV将数据同时投影到两个正交方向
- 方差之和恒定 — var(Y₁) + var(Y₂) = 0.8756 = tr(Σ_X),旋转不变量
- 协方差变化 — cov(Y₁,Y₂)随θ变化,某个角度时为0
- PCA角度 — θ ≈ -4.85°时,Σ_γ对角化,Y₁和Y₂不相关
- 方差分布 — PCA角度使var(Y₁)最大,var(Y₂)最小
正交系投影交互(14.4 补充图)
📐 正交系定义
给定正交系V:
[sin(θ), cos(θ)]]
这是一个旋转矩阵,VᵀV = I(正交矩阵)
如图8所示,数据X可以投影到正交系V中得到数据Y:
展开上式得到:
= [Xv₁ Xv₂]
随机变量χ = [X₁, X₂]ᵀ投影到V得到γ = [Y₁, Y₂]ᵀ:
展开上式得到:
= [v₁ᵀχ v₂ᵀχ]ᵀ
数据矩阵:Y = XV(右乘)
随机向量:γ = Vᵀχ(左乘转置)
📊 向第一方向投影
先考虑X向v₁投影:
= [X₁ X₂][cos(θ) sin(θ)]ᵀ
= cos(θ)X₁ + sin(θ)X₂
= [5.8433 3.0573][cos(θ) sin(θ)]ᵀ
= 3.0573sin(θ) + 5.8433cos(θ)
= [cos(θ) sin(θ)]Σ_X[cos(θ) sin(θ)]ᵀ
= -0.0424sin(2θ) + 0.2478cos(2θ)
+ 0.4378
📐 向第二方向投影
同理,给定v₂:
注意:v₁和v₂正交,v₁ᵀv₂ = 0
= [X₁ X₂][-sin(θ) cos(θ)]ᵀ
= -sin(θ)X₁ + cos(θ)X₂
= [5.8433 3.0573][-sin(θ) cos(θ)]ᵀ
= -5.8433sin(θ) + 3.0573cos(θ)
= [-sin(θ) cos(θ)]Σ_X[-sin(θ) cos(θ)]ᵀ
= 0.0424sin(2θ) - 0.2478cos(2θ)
+ 0.4378
🔗 协方差
= [cos(θ) sin(θ)]Σ_X[-sin(θ) cos(θ)]ᵀ
= -0.2478sin(2θ) - 0.0424cos(2θ)
利用如下三角函数关系:
cos(2θ) = cos²(θ) - sin²(θ)
我们可以进一步整理(38)、(39)、(43)、(44)、(45),这部分推导交给大家完成。
🎯 重要性质:方差之和为定值
如图9所示,期望、方差、协方差随θ变化。
请大家特别注意Y₁和Y₂的方差之和为定值,即:
= [-0.0424sin(2θ) + 0.2478cos(2θ) + 0.4378]
+ [0.0424sin(2θ) - 0.2478cos(2θ) + 0.4378]
= 0.8756
无论θ取何值,var(Y₁) + var(Y₂)始终等于0.8756
这个值恰好等于原协方差矩阵的迹:tr(Σ_X) = σ₁² + σ₂² = 0.6856 + 0.1899 = 0.8756
📊 协方差矩阵Σ_γ
γ = [Y₁, Y₂]ᵀ的协方差矩阵Σ_γ为:
[cov(Y₁,Y₂), var(Y₂)]]
图10所示为当θ取不同值时,协方差矩阵Σ_γ的三种不同可视化方案的变化情况。
特别地,如图10(b)所示,当θ约为-4.85度时,
协方差矩阵Σ_γ为对角方阵。
- Y₁和Y₂的相关性系数为0
- 两个投影方向完全不相关
- 这就是主成分分析(PCA)的核心!
在图9中,我们可以发现,当θ约为-4.85度时:
- var(Y₁)取得最大值
- var(Y₂)取得最小值
如图11所示为数据矩阵在这个正交坐标系中投影的结果。
这一点对于本章后续要讲解的主成分分析非常重要。
📝 14.4 关键要点总结
• 数据:Y = XV
• 随机变量:γ = Vᵀχ
• 两个正交方向同时投影
• Y₁ = cos(θ)X₁ + sin(θ)X₂
• E(Y₁) = 3.0573sin(θ) + 5.8433cos(θ)
• var(Y₁) = -0.0424sin(2θ) + 0.2478cos(2θ) + 0.4378
• Y₂ = -sin(θ)X₁ + cos(θ)X₂
• E(Y₂) = -5.8433sin(θ) + 3.0573cos(θ)
• var(Y₂) = 0.0424sin(2θ) - 0.2478cos(2θ) + 0.4378
• var(Y₁) + var(Y₂) = 0.8756(常数)
• 等于tr(Σ_X),旋转不变
• Σ_γ = VᵀΣ_XV
• Σ_γ对角化,cov(Y₁,Y₂) = 0
• var(Y₁)最大,var(Y₂)最小
• 这就是主成分分析的核心思想!
以椭圆投影为视角看线性变换
Linear Transformation from Ellipse Projection Perspective
本节将从椭圆投影视角理解随机变量的线性转换。
📊 以椭圆投影为视角看线性变换
Linear Transformation from Ellipse Projection Perspective
矩形类型
σ₂ = 0.4358
λ₁ = 0.6939
λ₂ = 0.1817
如图12所示,三个"正"矩形的四条边分别和马氏距离为1、2、3的椭圆相切。
其中,和马氏距离为1的矩形相切的矩形的长、宽分别为2σ₁、2σ₂。
= 1.4433
= √tr(Σ)
上一章特别强调图12中阴影区域对应的1/4矩形。
σ₁σ₂ = 0.3608
√(σ₁² + σ₂²) = 0.9357
根据本章有关随机变量线性变换内容,如图12所示:
- μ₁ ± σ₁
- μ₁ ± 2σ₁
- μ₁ ± 3σ₁
- μ₂ ± σ₂
- μ₂ ± 2σ₂
- μ₂ ± 3σ₂
- "正"矩形 — 边平行于坐标轴,长宽2σ₁和2σ₂,面积4σ₁σ₂
- "主轴"矩形 — 边平行于椭圆主轴,长宽2√λ₁和2√λ₂,面积4√(λ₁λ₂)
- 对角线恒定 — 所有相切矩形的对角线长度相同,等于2√tr(Σ)
- 椭圆切线 — 法向量n = 2Σ⁻¹(p - μ),用于计算旋转矩形
- 投影对应 — 矩形边的位置对应μ ± dσ,d=1,2,3
📐 "正"矩形(图12)
如图12所示,三个"正"矩形的四条边分别和马氏距离为1、2、3的椭圆相切。
其中,和马氏距离为1的矩形相切的矩形的长、宽分别为2σ₁、2σ₂。
上一章提到过,图12中这个大矩形的面积为:
矩形对角线长度为:
上一章特别强调图12中阴影区域对应的1/4矩形。
这个值是其协方差迹的平方根:√tr(Σ) = √(σ₁² + σ₂²)
根据本章有关随机变量线性变换内容,如图12所示:
- μ₁ ± σ₁
- μ₁ ± 2σ₁
- μ₁ ± 3σ₁
- μ₂ ± σ₂
- μ₂ ± 2σ₂
- μ₂ ± 3σ₂
本节后续将用数学工具加以证明。
🔄 "主轴"矩形(图13-14)
如图13所示,和马氏距离为1的椭圆相切的矩形有无数个。
观察这些矩形,大家能够发现它们的顶点位于正圆之上。
这意味着这些矩形的对角线长度相同,都是 2√(λ₁ + λ₂)。
除了图12中的"正"矩形之外,还有一个"旋转"矩形特别值得我们关注。
这就是图14所示的"主轴"矩形。
因为这个矩形的四条边平行于椭圆的两条主轴(长轴、短轴)。
而特征值分解协方差矩阵就是获得椭圆主轴方向、长轴长度、短轴长度的数学工具。
📏 椭圆切线(图15)
大家可能好奇如何绘制图13这组旋转矩形。
如图15所示,首先,计算椭圆圆心μ和椭圆上任意一点p切线的距离h。
2h就是矩形一条边长度。
而切线的梯度向量n可以用来定位矩形的旋转角度。
然后,根据矩形的对角线长度为2√(λ₁+λ₂),我们便得到矩形另外一条边的长度。
我们在《矩阵力量》第20章介绍过如何求解椭圆切线。
f(x)对x求偏导便得到梯度向量n:
也就是说,图13中椭圆上p点处切线的法向量为:
切点p和椭圆圆心μ的距离向量p - μ,对应图13中的绿色箭头。
而距离h就是向量p - μ在梯度向量n上的标量投影。
有了以上推导,请大家自行编写代码绘制图14。
《可视之美》一册详细讲解过这段可视化代码。
主成分分析:换个视角看数据
Principal Component Analysis: A New Perspective
下面以鸢尾花数据作为原始数据,
从随机变量的线性变换角度理解主成分分析。
🔄 PCA主成分分析:数据旋转可视化
Principal Component Analysis: Data Rotation Visualization
旋转角度
数据顺时针旋转30.0°
[sin(θ), cos(θ)]]
V = [[0.866, -0.500],
[0.500, 0.866]]
(旋转中心化数据)
[-0.2358, 0.3505]]
0.5250 (较大)
0.3505 (较小)
0.8755
(恒等于0.8756)
顺时针30.0°
倾斜状态
继续旋转寻找最优角度
正交系逆时针30°
数据顺时针旋转30°
正交系逆时针45°
数据顺时针旋转45°
正交系逆时针-30°
数据顺时针旋转-30°
PCA最优角度!
第一、第二主成分方向
- 旋转不变量 — var(Y₁) + var(Y₂) = 0.8756,无论如何旋转
- 最优角度 — θ ≈ -4.85°时,协方差矩阵对角化
- 主成分方向 — v₁和v₂是协方差矩阵的特征向量
- 方差极值 — 最优角度时var(Y₁)最大,var(Y₂)最小
- 去相关化 — cov(Y₁,Y₂)在最优角度时为0
- 换个视角 — PCA本质是在最优坐标系中观察数据
📊 数据中心化和投影
首先将鸢尾花花萼长度、花萼宽度数据中心化,即获得:
图16所示为中心化数据的散点图。
将数据投影到角度为逆时针30度的正交系V = [v₁, v₂]中。
如前文所述,数据投影到正交系中好比在V中观察数据,如图17所示。
在V中,我们看到代表协方差矩阵的椭圆发生了明显旋转。
在v₁和v₂方向上,我们可以求得投影数据的分布情况。
🔄 多组投影角度示例
图18~图23所示为其他3组投影角度。
数据顺时针旋转30度
数据顺时针旋转45度
数据顺时针旋转-30度
正交系逆时针-4.85度
数据顺时针旋转-4.85度
请大家格外注意图22和图23,这就是前文说的最优化角度。
第一、第二主成分方向。
理论深入
本章仅仅从随机变量的线性函数角度介绍主成分分析,
本书第25章将深入介绍主成分分析。
《矩阵力量》第25章介绍过,
特征值分解协方差矩阵仅仅是主成分分析六条基本技术路径之一,
《数据有道》还会介绍其他路径,并做区分。
📝 第14章总结
随机变量的函数是指一个或多个随机变量组成的函数,其值也是一个随机变量。
它们可以用来描述随机变量之间的关系或随机事件的性质。
随机变量的函数在概率论和统计学中都有广泛的应用,
例如用于建立概率模型、描述随机事件的分布和性质、进行概率推断和预测等。
这一章,我们特别关注的是随机变量的线性变换。
这是指将一个随机变量通过一个线性函数转化为另一个随机变量的过程,
相当于线性代数中的仿射变换。
随机变量的线性变换在统计学和概率论中经常被用来描述随机变量之间的关系,例如:
- 线性回归模型
- 协方差矩阵
- 主成分分析
通过线性变换,可以将随机变量从原始空间中转换到一个新的空间,
从而发现不同随机变量之间的联系和规律。
请大家特别重视通过投影、椭圆视角理解随机变量的线性变换。