从平方和说起一步步推明白卡方分布的概率密度函数很多学统计、做数据分析的朋友第一次碰到卡方分布心里多少都有点嘀咕——教材里直接甩出一个带伽马函数的密度公式告诉你这就是卡方分布然后用它做拟合优度检验、列联表独立性检验。但那个公式到底怎么来的为什么自由度是几就是几很少有人真正推过一遍。这篇文章就是干这件事的从最基础的标准正态分布出发手把手把卡方分布的概率密度函数推出来。我会避开那些“显然可得”的跳跃尽量把每一步的逻辑讲透你只需要会换元积分、知道雅可比行列式是什么东西就能跟着走完全程。即便你一时半会儿跟不上某些细节我也建议你硬着头皮看完——因为卡方分布这条推导线几乎串起了概率统计里最重要的几个工具变量变换、卷积、矩母函数、伽马分布。把这一个分布弄明白后面学t分布、F分布会轻松非常多。先交代一下我们要推导的目标。设(Z_1, Z_2, \dots, Z_n)是相互独立且都服从标准正态分布(N(0,1))的随机变量定义[ \chi^2_n Z_1^2 Z_2^2 \dots Z_n^2 ]这个随机变量服从自由度(n)的卡方分布记作(\chi^2_n \sim \chi^2(n))。我们的任务是把它的概率密度函数[ f(x) \frac{1}{2^{n/2}\Gamma(n/2)} x^{n/2 - 1} e^{-x/2}, \quad x 0 ]从头推出来并搞清楚每一部分为什么长这样。1. 先把工具备齐推导要用的三个数学基础1.1 标准正态分布和它的平方标准正态分布(Z \sim N(0,1))的密度函数是[ f_Z(z) \frac{1}{\sqrt{2\pi}} e^{-z^2/2}, \quad -\infty z \infty ]如果你对正态分布已经很熟这里只需要记住一件事标准正态分布的密度函数里指数部分是(-z^2/2)。就是这玩意儿让正态分布和平方和产生了千丝万缕的联系。你可以把(e^{-z^2/2})想象成一个天然的“权重因子”它决定了每个(z)出现的概率密度而平方和本身就是多个这样的指数项相乘之后的结果。后面你会看到卡方分布密度函数里那个(e^{-x/2})本质上就是(n)个(e^{-z_i^2/2})乘在一起后换元留下的东西。1.2 随机变量变换的通用公式单调函数的变量替换假设(X)是一个连续型随机变量密度函数是(f_X(x))我们想求(Y g(X))的密度函数。如果(g)是严格单调函数有反函数(x g^{-1}(y))那么[ f_Y(y) f_X(g^{-1}(y)) \cdot \left| \frac{d}{dy} g^{-1}(y) \right| ]直观理解就是(Y)落在([y, ydy])的概率等于(X)落在对应区间([x, xdx])的概率两者概率相等所以密度函数要乘上一个“伸缩因子”也就是导数绝对值的倒数。这个公式是后面一切推导的基础工具。对于二维情况公式变成[ f_{Y_1,Y_2}(y_1,y_2) f_{X_1,X_2}(x_1,x_2) \cdot |J| ]其中(|J|)是雅可比行列式的绝对值[ J \begin{vmatrix} \frac{\partial x_1}{\partial y_1} \frac{\partial x_1}{\partial y_2} \ \frac{\partial x_2}{\partial y_1} \frac{\partial x_2}{\partial y_2} \end{vmatrix} ]这个雅可比行列式说白了就是坐标变换时“面积元”的缩放倍数。生活在二维平面上从直角坐标((x_1,x_2))换到另一个坐标系((y_1,y_2))一小块面积(dx_1dx_2)会变成(|J|dy_1dy_2)密度函数就得相应调整。1.3 两个独立随机变量之和卷积公式如果(U)和(V)是相互独立的连续型随机变量密度函数分别是(f_U(u))和(f_V(v))那么(W UV)的密度函数是[ f_W(w) \int_{-\infty}^{\infty} f_U(u) f_V(w-u), du ]这就是卷积公式。它背后的逻辑也很朴素要让(UV w)可以是(U u)且(V w-u)把所有可能的(u)都积分起来就行。因为独立联合密度直接相乘。卷积公式用来处理两个分布相加的场景。但是当随机变量超过两个、或者我们已经知道一个分布的形状时逐次卷积会变得非常笨重。这时候有一个更好用的工具——矩母函数。2. 从最简单的情况入手自由度1的推导2.1 一个标准正态变量的平方先从最简单的情况开始(n1)也就是(Y Z^2)其中(Z \sim N(0,1))。这里要用变量变换公式。设(Y g(Z) Z^2)。这个函数在((-\infty, 0))和((0, \infty))两个区间上分别是单调的所以不能直接套单调函数的公式得换成分布函数法。先求(Y)的分布函数[ F_Y(y) P(Y \le y) P(Z^2 \le y) P(-\sqrt{y} \le Z \le \sqrt{y}), \quad y 0 ]因为(Z)的密度函数是对称的所以[ F_Y(y) \int_{-\sqrt{y}}^{\sqrt{y}} \frac{1}{\sqrt{2\pi}} e^{-z^2/2}, dz 2\int_0^{\sqrt{y}} \frac{1}{\sqrt{2\pi}} e^{-z^2/2}, dz ]对(y)求导得到密度函数[ f_Y(y) \frac{d}{dy}F_Y(y) 2 \cdot \frac{1}{\sqrt{2\pi}} e^{-y/2} \cdot \frac{d}{dy}(\sqrt{y}) ]这里用到了变上限积分的求导规则以及链式法则[ \frac{d}{dy}(\sqrt{y}) \frac{1}{2\sqrt{y}} ]所以[ f_Y(y) 2 \cdot \frac{1}{\sqrt{2\pi}} e^{-y/2} \cdot \frac{1}{2\sqrt{y}} \frac{1}{\sqrt{2\pi}} y^{-1/2} e^{-y/2}, \quad y 0 ]这就是自由度1的卡方分布密度函数。写成更规范的形式[ f_{\chi^2_1}(x) \frac{1}{\sqrt{2\pi}} x^{-1/2} e^{-x/2}, \quad x 0 ]注意一个细节当(y0)时(Z^2 \le y)对应的是(Z)在([-\sqrt{y}, \sqrt{y}])区间内因为(Z^2)是关于0对称的。这也是这个推导里最容易出错的地方——忘记乘2或者忘记对(\sqrt{y})求导。我第一次推的时候就在这里翻过车直接抄公式没算中间步骤结果怎么也对不上那个(\frac{1}{2\sqrt{y}})。2.2 发现规律和伽马函数的关系看到(f_{\chi^2_1}(x) \frac{1}{\sqrt{2\pi}} x^{-1/2} e^{-x/2})这个形式你可能已经隐约感觉到它和伽马分布有关。伽马分布的密度函数是[ f(x; \alpha, \beta) \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha-1} e^{-\beta x}, \quad x0 ]对比一下(\alpha 1/2, \beta 1/2)时[ f(x; 1/2, 1/2) \frac{(1/2)^{1/2}}{\Gamma(1/2)} x^{-1/2} e^{-x/2} ]而(\Gamma(1/2) \sqrt{\pi})所以[ \frac{(1/2)^{1/2}}{\sqrt{\pi}} \frac{1}{\sqrt{2\pi}} ]完美对上。也就是说(\chi^2_1)分布就是(\text{Gamma}(1/2, 1/2))分布。这个观察特别重要。它告诉我们卡方分布不是凭空蹦出来的新东西而是伽马分布族的一个特例。后面我们会用这个关系推导一般情况也会解释为什么参数恰好各是(1/2)。3. 推导自由度2极坐标变换的经典操作3.1 问题设定两个标准正态变量的平方和现在考虑(n2)的情况(Y Z_1^2 Z_2^2)其中(Z_1, Z_2)独立且都服从(N(0,1))。最直接的方法是先求联合分布再做变量变换。设[ U Z_1^2 Z_2^2, \quad V \text{某个与}U\text{独立的量} ]但从直角坐标直接处理平方和并不方便。这里有一个经典技巧把((Z_1, Z_2))看成平面上的一个点转换成极坐标[ Z_1 r\cos\theta, \quad Z_2 r\sin\theta ]那么(Z_1^2Z_2^2 r^2)问题变成了求极径(r)的分布。3.2 极坐标变换与雅可比行列式((Z_1, Z_2))的联合密度函数是[ f_{Z_1,Z_2}(z_1,z_2) \frac{1}{2\pi} e^{-(z_1^2z_2^2)/2} ]因为两个变量独立且都服从标准正态分布联合密度就是各自密度的乘积。坐标变换的雅可比行列式[ J \begin{vmatrix} \frac{\partial z_1}{\partial r} \frac{\partial z_1}{\partial \theta} \ \frac{\partial z_2}{\partial r} \frac{\partial z_2}{\partial \theta} \end{vmatrix} \begin{vmatrix} \cos\theta -r\sin\theta \ \sin\theta r\cos\theta \end{vmatrix} r\cos^2\theta r\sin^2\theta r ]所以(dz_1dz_2 r, dr, d\theta)。这个(r)就是面积元从直角坐标到极坐标的缩放倍数——你在高数里学极坐标积分时的那个“多出来的(r)”和这里是同一个东西。于是((r, \theta))的联合密度函数为[ f_{r,\theta}(r,\theta) \frac{1}{2\pi} e^{-r^2/2} \cdot r, \quad r0, ; 0\le\theta2\pi ]把(\theta)积分掉[ f_r(r) \int_0^{2\pi} \frac{1}{2\pi} r e^{-r^2/2}, d\theta r e^{-r^2/2}, \quad r0 ]这是瑞利分布的密度函数。现在令(Y r^2)再次使用变量变换公式反函数(r \sqrt{y})导数(\frac{dr}{dy} \frac{1}{2\sqrt{y}})[ f_Y(y) f_r(\sqrt{y}) \cdot \frac{1}{2\sqrt{y}} \sqrt{y} e^{-y/2} \cdot \frac{1}{2\sqrt{y}} \frac{1}{2} e^{-y/2}, \quad y0 ]这就是自由度2的卡方分布密度函数——它其实就是参数(\lambda 1/2)的指数分布。这个结论很多人第一次看到会觉得惊讶两个标准正态变量的平方和居然服从指数分布。但从几何上看非常自然极径的平方就是圆盘面积的尺度而二维标准正态分布在极坐标下对角度积分后剩下的密度自然就是指数衰减的形式。3.3 为什么自由度2恰好得到指数分布从伽马分布的角度看(\chi^2_2 \sim \text{Gamma}(1, 1/2))。因为(\Gamma(1) 1)密度函数化简为[ f(x) \frac{(1/2)^1}{\Gamma(1)} x^{0} e^{-x/2} \frac{1}{2} e^{-x/2} ]这正好是指数分布。这里有个很有意思的规律自由度每增加1形状参数(\alpha)就增加(1/2)。自由度1对应(\alpha1/2)自由度2对应(\alpha1)自由度3对应(\alpha3/2)以此类推。这个规律为我们推导一般情况提供了线索。4. 一般自由度的推导矩母函数方法最省力4.1 从已知自由度的规律出发我们已经知道[ \chi^2_1 \sim \text{Gamma}(1/2, 1/2), \quad \chi^2_2 \sim \text{Gamma}(1, 1/2) ]自由度(n)的卡方分布是(n)个独立的标准正态变量平方和。如果卡方分布真的是伽马分布族的一员那自由度(n)对应的就应该是(\text{Gamma}(n/2, 1/2))。现在需要验证这个猜想。要验证两个分布是否相同最直接的方法是比较它们的矩母函数。如果两个分布的所有矩都相同那它们就是同一个分布。矩母函数本质上就是矩的“生成器”(M(t) E(e^{tX}))。4.2 标准正态变量平方的矩母函数设(Y Z^2)其中(Z\sim N(0,1))那么(Y \sim \chi^2_1)。求(Y)的矩母函数[ M_Y(t) E(e^{tZ^2}) \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{tz^2} e^{-z^2/2}, dz ]合并指数项[ M_Y(t) \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-(1-2t)z^2/2}, dz ]这个积分需要(1-2t 0)才能在实数域收敛所以要求(t 1/2)。用高斯积分的公式[ \int_{-\infty}^{\infty} e^{-az^2}, dz \sqrt{\frac{\pi}{a}}, \quad a0 ]令(a (1-2t)/2)得到[ M_Y(t) \frac{1}{\sqrt{2\pi}} \cdot \sqrt{\frac{2\pi}{1-2t}} (1-2t)^{-1/2} ]4.3 独立变量和的矩母函数相乘即可现在考虑自由度(n)的情况(\chi^2_n Z_1^2 \dots Z_n^2)。因为(Z_i^2)是相互独立的它们的矩母函数可以直接相乘[ M_{\chi^2_n}(t) \prod_{i1}^{n} M_{Z_i^2}(t) \left[(1-2t)^{-1/2}\right]^n (1-2t)^{-n/2} ]这一步是整条推导线的关键。独立随机变量之和的矩母函数等于各自矩母函数的乘积——这是因为和的期望等于期望的乘积在指数函数下的自然结果[ E(e^{t(X_1\dotsX_n)}) E(e^{tX_1}\dots e^{tX_n}) E(e^{tX_1})\dots E(e^{tX_n}) ]中间等号成立正是因为独立性。4.4 对照伽马分布的矩母函数接下来要证明(\text{Gamma}(n/2, 1/2))的矩母函数恰好是((1-2t)^{-n/2})。伽马分布(\text{Gamma}(\alpha, \beta))的密度函数是[ f(x) \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha-1} e^{-\beta x}, \quad x0 ]它的矩母函数[ M(t) \int_0^\infty e^{tx} \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha-1} e^{-\beta x}, dx ]合并指数项当(t \beta)时[ M(t) \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty x^{\alpha-1} e^{-(\beta-t)x}, dx ]做变量替换(u (\beta-t)x)则(x u/(\beta-t))(dx du/(\beta-t))[ M(t) \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty \left(\frac{u}{\beta-t}\right)^{\alpha-1} e^{-u} \frac{du}{\beta-t} ]整理[ M(t) \frac{\beta^\alpha}{(\beta-t)^\alpha} \cdot \frac{1}{\Gamma(\alpha)} \int_0^\infty u^{\alpha-1} e^{-u}, du ]那一坨积分就是(\Gamma(\alpha))的定义[ M(t) \frac{\beta^\alpha}{(\beta-t)^\alpha} \left(\frac{\beta}{\beta-t}\right)^\alpha \left(1-\frac{t}{\beta}\right)^{-\alpha} ]现在代入(\alpha n/2, \beta 1/2)[ M(t) \left(1-\frac{t}{1/2}\right)^{-n/2} (1-2t)^{-n/2} ]和(\chi^2_n)的矩母函数完全一致。根据矩母函数的唯一性定理两个分布相同。因此[ \chi^2_n \sim \text{Gamma}\left(\frac{n}{2}, \frac{1}{2}\right) ]密度函数直接写出来[ f_{\chi^2_n}(x) \frac{(1/2)^{n/2}}{\Gamma(n/2)} x^{n/2-1} e^{-x/2} \frac{1}{2^{n/2}\Gamma(n/2)} x^{n/2-1} e^{-x/2}, \quad x0 ]这就得到了教科书上的标准形式。4.5 卷积法的补充思路除了矩母函数也可以直接用卷积公式从低自由度往高自由度推。比如已知(f_{\chi^2_1})和(f_{\chi^2_1})卷积得到(f_{\chi^2_2})再卷积一个(f_{\chi^2_1})得到(f_{\chi^2_3})。但这个过程每做一次都要算一个伽马型的卷积积分非常繁琐而且很容易出错。我建议你至少手动做一次从(\chi^2_1)卷积到(\chi^2_2)的计算感受一下卷积公式的工作方式然后再用矩母函数处理一般情况。两种方法各有优势卷积法让你直观看到“和的密度是如何被积分出来的”矩母函数法则在计算上省力太多。实际做研究的时候矩母函数几乎是标配工具。另外还有一种思路是利用卡方分布与伽马分布的关系直接用伽马分布的加法性质独立伽马变量若速率参数相同则形状参数相加。(\chi^2_1 \sim \text{Gamma}(1/2,1/2))(n)个独立加起来就是(\text{Gamma}(n/2,1/2))。这个性质本质上和矩母函数法是同一回事但表述上更直观。5. 卡方分布的核心性质与应用场景5.1 均值与方差为什么是n和2n有了密度函数就可以计算均值和方差。已知(\text{Gamma}(\alpha, \beta))的均值为(\alpha/\beta)方差为(\alpha/\beta^2)。代入(\alpha n/2, \beta 1/2)[ E(\chi^2_n) \frac{n/2}{1/2} n, \quad \text{Var}(\chi^2_n) \frac{n/2}{(1/2)^2} 2n ]这个结论很多人在实际使用中会忘记验证样本方差和总体方差的比值服从卡方分布自由度(n-1)所以均值是(n-1)而不是(n)。这是一个高频易错点后面会详细讲。从矩母函数的角度也可以直接验证。矩母函数(M(t) (1-2t)^{-n/2})在(t0)处展开[ M(t) 1 (n)t \frac{n(n2)}{2}t^2 \dots ]一阶矩(E(X) n)二阶矩(E(X^2) n(n2))于是方差( n(n2) - n^2 2n)。两种方法殊途同归。5.2 可加性独立卡方变量相加仍为卡方如果(X \sim \chi^2_m)(Y \sim \chi^2_n)且(X, Y)相互独立那么[ XY \sim \chi^2_{mn} ]这个性质在方差分析中有重要作用。比如两个独立的样本方差估计量相加自由度也相加因为背后的信息量是累加的。5.3 标准化样本方差统计学里最重要的卡方应用假设(X_1, \dots, X_n)是来自正态总体(N(\mu, \sigma^2))的独立样本。样本方差为[ S^2 \frac{1}{n-1}\sum_{i1}^{n}(X_i - \bar{X})^2 ]那么有经典的结论[ \frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{n-1} ]这里自由度是(n-1)而不是(n)因为样本均值(\bar{X})是从数据中估计出来的消耗了一个自由度。直观理解给定(\bar{X})只有(n-1)个((X_i-\bar{X}))是“自由”的最后一个可以由(\bar{X})和各偏差之和为0这个约束反推出来。这就是“自由度”这个名字的由来。这个结论是t检验、卡方检验、F检验的基石。例如构造t统计量[ t \frac{\bar{X} - \mu}{S/\sqrt{n}} ]分母中的(S^2)与分子中的(\bar{X})独立这是正态总体下的著名结论且((n-1)S^2/\sigma^2 \sim \chi^2_{n-1})于是(t)服从自由度为(n-1)的t分布。5.4 拟合优度检验卡方统计量的经验版本还有一种非常常见的卡方检验场景是拟合优度检验。假设有(k)个类别观测频数分别是(O_1, \dots, O_k)期望频数是(E_1, \dots, E_k)那么统计量[ \chi^2 \sum_{i1}^{k}\frac{(O_i-E_i)^2}{E_i} ]在零假设下近似服从(\chi^2_{k-1-p})其中(p)是估计参数的个数。这个检验用到的就是卡方分布作为“平方和”的特质。6. 实际操作中容易踩的坑与排查技巧6.1 自由度到底是n还是n-1最常见的坑是自由度用错。比如用样本方差构造卡方统计量时用(n)还是(n-1)结果差异巨大。记住一句话每估计一个参数就少一个自由度。估计了均值自由度减1估计了回归模型里的(p)个系数自由度减(p)。6.2 标准正态条件是硬性要求卡方分布定义要求变量来自标准正态分布。如果随机变量不是标准正态平方和就不服从卡方分布。举个例子如果(X_i \sim N(0, \sigma^2))那么[ \sum_{i1}^{n}\frac{X_i^2}{\sigma^2} \sim \chi^2_n ]必须先标准化再平方和。很多新手在这里直接拿原始变量平方求和然后发现分布对不上其实就是漏了标准化的步骤。6.3 用软件验证推导结果推完公式后最直接的验证方式是模拟。用R、Python都可以先生成大量标准正态随机数平方求和再画直方图和理论密度曲线叠加在一起看。比如在R里set.seed(42) n - 5 samples - replicate(100000, sum(rnorm(n)^2)) hist(samples, breaks50, freqFALSE) curve(dchisq(x, dfn), addTRUE, colred, lwd2)如果直方图和曲线贴合得很好说明推导和实现都没有问题。这个方法也适合验证其他分布的推导——用随机模拟检验真是省心又高效。6.4 小心伽马函数在整数和半整数处的值计算卡方分布密度时经常要算(\Gamma(n/2))。当(n)为偶数时(\Gamma(n/2))就是普通的阶乘当(n)为奇数时需要用到(\Gamma(1/2) \sqrt{\pi})。例如(\Gamma(5/2) (3/2)(1/2)\Gamma(1/2) 3\sqrt{\pi}/4)。算错这个值密度函数的归一化就不对了这在半整数自由度场景下很容易出现。6.5 用卡方分布表反查临界值实际做假设检验时很少手算密度函数而是直接查表或用软件。但理解密度函数的形状有助于判断检验的方向卡方分布是右偏的自由度越小偏得越厉害自由度增大后逐渐接近正态分布。所以查临界值时小自由度场景下右侧尾部概率对应的分位数往往比直觉中的大不少。7. 从推导过程得到的几点体会最后再分享一点我自己的体会。推卡方分布这条线最值钱的不是最后那个公式本身而是过程中反复出现的几个思想平方和结构对应几何里的距离、变量变换对应坐标系的切换、矩母函数把复杂的卷积变成了简单的乘法、伽马分布则把所有独立同分布的平方和问题统一成一个框架。如果你以后遇到类似的问题——比如想知道两个独立卡方变量之比服从什么分布答案F分布或者想知道卡方变量除以它的自由度再开方是什么分布答案t分布的一种构造方式你完全可以沿着这篇文章的思路自己推。方法都是现成的只是换了个壳而已。另一个实用的建议是做这类推导时尽量把最终结果和已知的特殊情况对照一下。比如我当年推完(\chi^2_2)的密度函数后发现是指数分布立刻觉得“这结果大概是对的”——因为自由度为2的卡方分布在伽马分布族里有明显的对应关系。这种“直觉检查”虽然不能代替严格证明但能帮你快速筛掉大部分计算错误。要是你在学习过程中卡在了某一步可以试着回到一开始的变量变换公式确认有没有漏了雅可比行列式或者忘记对反函数求导。百分之八十的推导错误都出在这两个地方而不是出在线性代数和积分本身。