【Python】多元统计分析笔记(未完)
1. 统计量基础
1. 均值
x ‾ = 1 n ∑ i = 1 n x i \footnotesize \overline x =\dfrac1n\sum_{i=1}^nx_i x=n1i=1∑nxi
2. 方差
σ 2 = 1 n − 1 ∑ i = 1 n ( x i − x ‾ ) \footnotesize \sigma^2=\dfrac1{n-1}\sum_{i=1}^n(x_i-\overline x) σ2=n−11i=1∑n(xi−x)
3. 标准差
σ = σ 2 \footnotesize \sigma=\sqrt{\sigma^2} σ=σ2
2. 多元统计基础
1.大数定律与中心极限定理
1.1.大数定律
-
切雪夫不等式:若 E ( X ) , D ( X ) \footnotesize E(X),D(X) E(X),D(X)都存在, ξ > 0 \xi>0 ξ>0,则
P { ∣ X − E ( X ) ∣ ≥ ξ } ≤ D ( X ) ξ 2 \footnotesize P\left\{\ \left|X-E(X)\right|\ge\xi\ \right\}\le\dfrac{D(X)}{\xi^2} P{ ∣X−E(X)∣≥ξ }≤ξ2D(X)
-
切雪夫大数定律推论:若相互独立的 X 1 , ⋯ , X n \footnotesize X_1,\cdots,X_n X1,⋯,Xn相同分布, E ( X k ) = μ , D ( X k ) = σ 2 \footnotesize E(X_k)=\mu,D(X_k)=\sigma^2 E(Xk)=μ,D(Xk)=σ2存在,对于
lim n → + ∞ P { ∣ 1 n ∑ k = 1 n X k − μ ∣ < ξ } = 1 \footnotesize \lim_{n\rightarrow+\infty}P\left\{\ \left|\dfrac{1}n\sum_{k=1}^nX_k-\mu\right|<\xi\ \right\}=1 n→+∞limP{ n1k=1∑nXk−μ <ξ }=1,
则推论:
lim n → + ∞ P { ∣ Y n − a ∣ < ξ } = 1 记作: Y n → P a \footnotesize\lim_{n\rightarrow+\infty}P\left\{\ \left|Y_n-a\right|<\xi\ \right\}=1\\ 记作:Y_n\xrightarrow{P}a n→+∞limP{ ∣Yn−a∣<ξ }=1记作:YnPa
1.2.中心极限定理
相互独立随机变量 X 1 , ⋯ , X n \footnotesize X_1,\cdots,X_n X1,⋯,Xn服从同一分布,且 E ( X ) = μ , D ( X k ) = σ 2 ≠ 0 \footnotesize E(X)=\mu,D(X_k)=\sigma^2\neq0 E(X)=μ,D(Xk)=σ2=0,随机变量序列 Y n = ∑ k = 1 n X k − n μ n σ \footnotesize Y_n=\dfrac{\sum_{k=1}^nX_k-n\mu}{\sqrt{n}\sigma} Yn=nσ∑k=1nXk−nμ的分布函数 F n ( X ) \footnotesize F_n(X) Fn(X)当 n → + ∞ \footnotesize n\rightarrow+\infty n→+∞时趋于标准正态分布函数:
lim n → + ∞ F n ( x ) = lim n → + ∞ P { Y n ≤ x } = ∫ − ∞ x 1 2 π e − t 2 2 d t = Φ ( x − μ σ ) \\ \footnotesize\lim_{n\rightarrow+\infty}F_n(x) =\lim_{n\rightarrow+\infty}P\left\{Y_n≤x\right\} ={\int_{-\infty}^x\dfrac1{\sqrt{2\pi}}e^{-\tiny{\dfrac{t^2}2}}}\,dt=\\\Phi\left(\dfrac{x-\mu}{\sigma}\right) n→+∞limFn(x)=n→+∞limP{Yn≤x}=∫−∞x2π1e−2t2dt=Φ(σx−μ)
推论定理:棣莫弗-拉普拉斯中心极限
设 m A m_{\tiny A} mA表示 n n n次重复实验中事件 A A A发生的次数,对于任意 ( a , b ] (a,b] (a,b], E ( X ) = μ , D ( X ) = σ 2 ≠ 0 \footnotesize E(X)=\mu,D(X)=\sigma^2\neq0 E(X)=μ,D(X)=σ2=0恒有
lim x → + ∞ P { a < m A ≤ b } = ∫ a b 1 2 π e − t 2 2 d t = Φ ( b − μ σ ) − Φ ( a − μ σ ) \footnotesize \lim_{x\rightarrow+\infty}P\left\{ a<m_{\tiny A}\le b \right\}\\=\int_{a}^b\dfrac{1}{\sqrt{2\pi}}e^{\tiny{-\dfrac{t^2}2}}\,dt\\=\Phi\left(\dfrac{b-\mu}{\sigma}\right)-\Phi\left(\dfrac{a-\mu}{\sigma}\right) x→+∞limP{a<mA≤b}=∫ab2π1e−2t2dt=Φ(σb−μ)−Φ(σa−μ)
2. 协方差矩阵
Σ = [ C o v ( x 1 , x 1 ) C o v ( x 1 , x 2 ) ⋯ C o v ( x 1 , x j ) C o v ( x 2 , x 1 ) C o v ( x 2 , x 2 ) ⋯ C o v ( x 2 , x j ) ⋮ ⋮ ⋱ ⋮ C o v ( x i , x 1 ) C o v ( x i , x 2 ) ⋯ C o v ( x i , x j ) ] 对称矩阵: C o v ( x i , x j ) = C o v ( x j , x i ) \footnotesize\boldsymbol{\Sigma} =\left[ \begin{matrix} Cov(x_1,x_1)&Cov(x_1,x_2)&\cdots&Cov(x_1,x_j)\\ Cov(x_2,x_1)&Cov(x_2,x_2)&\cdots&Cov(x_2,x_j)\\ \vdots&\vdots&\ddots&\vdots\\ Cov(x_i,x_1)&Cov(x_i,x_2)&\cdots&Cov(x_i,x_j) \end{matrix} \right]\\ 对称矩阵:Cov(x_i,x_j)=Cov(x_j,x_i) Σ= Cov(x1,x1)Cov(x2,x1)⋮Cov(xi,x1)Cov(x1,x2)Cov(x2,x2)⋮Cov(xi,x2)⋯⋯⋱⋯Cov(x1,xj)Cov(x2,xj)⋮Cov(xi,xj) 对称矩阵:Cov(xi,xj)=Cov(xj,xi)
- 协方差性质
- D ( x ) = C o v ( x , x ) \footnotesize D(x)=Cov(x,x) D(x)=Cov(x,x)
- C o v ( x , y ) = C o v ( y , x ) \footnotesize Cov(x,y)=Cov(y,x) Cov(x,y)=Cov(y,x)
- D ( x + y ) = D ( x ) + D ( y ) − 2 C o v ( x , y ) \footnotesize D\left(x+y\right)=D\left(x\right)+D\left(y\right)-2Cov\left(x,y\right) D(x+y)=D(x)+D(y)−2Cov(x,y)
- C o v ( x , y ) = E ( x y ) − E ( x ) E ( y ) \footnotesize Cov\left(x,y\right)=E\left(xy\right)-E\left(x\right)E\left(y\right) Cov(x,y)=E(xy)−E(x)E(y)
- C o v ( k x , k y ) = k 2 C o v ( x , y ) \footnotesize Cov(kx,ky)=k^2Cov(x,y) Cov(kx,ky)=k2Cov(x,y)
- C o v ( x 1 + x 2 , y ) = C o v ( x 1 , y ) + C o v ( x 2 , y ) \footnotesize Cov(x_1+x_2,y)=Cov(x_1,y)+Cov(x_2,y) Cov(x1+x2,y)=Cov(x1,y)+Cov(x2,y)
- 协方差相关系数: ρ x y = C o v ( x , y ) D ( x ) D ( y ) \footnotesize\rho_{\tiny xy}=\dfrac{Cov\left(x,y\right)}{\sqrt{D\left(x\right)D\left(y\right)}} ρxy=D(x)D(y)Cov(x,y)
3.多元统计量
1.均值
一元推广到多元就是 x ‾ i \overline x_i xi按列向量分块 ( x ‾ 1 ⋮ x ‾ i ) \begin{pmatrix}\overline x_1\\\vdots\\\overline x_i\end{pmatrix} x1⋮xi ,则为多元样本均值 μ \boldsymbol {\mu} μ
结论:
μ = ( x ‾ 1 , ⋯ , x ‾ i ) T ( x ‾ i 为 i 列的列向量 ) x ‾ i = 1 n ∑ i = 1 n x i \footnotesize \boldsymbol {\mu}=\left( \boldsymbol{\overline x}_1,\cdots, \boldsymbol{\overline x}_i\right)^T \\ (\overline x_i为i列的列向量)\\ \overline x_i=\dfrac1n\sum_{i=1}^nx_i μ=(x1,⋯,xi)T(xi为i列的列向量)xi=n1i=1∑nxi
2.方差
一元推广到多元就是根据协方差的性质,其中每个 i i i样本下的第 j j j个均值, i j ij ij样本的方差即为: C o v ( i , j ) = s i j = 1 n − 1 ∑ i = 1 n ( x i − x ‾ j ) Cov(i,j)=s_{ij}=\dfrac1{n-1}\sum_{i=1}^n(x_i-\overline x_j) Cov(i,j)=sij=n−11∑i=1n(xi−xj)
根据这个我们进行分块可以构造协方差矩阵——多元的方差 : ∑ = ( c o v ( s i j ) ) i × j \boldsymbol{\sum}=\left(cov(s_{ij})\right)_{i \times j} ∑=(cov(sij))i×j
下面公式读者可以根据矩阵展开的乘法定义来推导
Σ = [ s 11 ⋯ s i 1 ⋮ ⋱ ⋮ s 1 j ⋯ s i j ] = 1 n − 1 ∑ i = 1 n ( x i − μ ) ( x i − μ ) T \footnotesize \boldsymbol{\Sigma} =\left[ \begin{matrix}s_{11}&\cdots&s_{i1}\\\vdots&\ddots&\vdots \\s_{1j}&\cdots&s_{ij} \end{matrix}\right]=\frac1{n-1}\sum_{i=1}^n(\boldsymbol x_i-\boldsymbol\mu)(\boldsymbol x_i-\boldsymbol\mu)^T Σ=
s11⋮s1j⋯⋱⋯si1⋮sij
=n−11i=1∑n(xi−μ)(xi−μ)T
3. 相关系数
根据协方差的相关系数, ρ x y = C o v ( x , y ) D ( x ) D ( y ) = s i j s i i s j j \footnotesize\rho_{\tiny xy}=\dfrac{Cov\left(x,y\right)}{\sqrt{D\left(x\right)D\left(y\right)}}=\dfrac{s_{ij}}{\sqrt{s_{ii}s_{jj}}} ρxy=D(x)D(y)Cov(x,y)=siisjjsij可以知道变量间的相关性,基于此公式可以从一元推广到多元
不难看出其是对称矩阵即: σ T = σ \sigma^T=\sigma σT=σ
公式自行推导,这些推导不难
R = [ 1 ρ 12 ⋯ ρ 1 j ρ 21 1 ⋯ ρ 2 j ⋮ ⋮ ⋱ ⋮ ρ i 1 ρ i 2 ⋯ 1 ] = σ − 1 Σ ( σ − 1 ) T = σ − 1 Σ σ − 1 σ − 1 = 1 ∣ σ ∣ σ ∗ σ = { s i j , i = j 0 , i ≠ j \footnotesize\boldsymbol R=\left[ \begin{matrix} 1&\rho_{12}&\cdots&\rho_{1j}\\\rho_{21}&1&\cdots&\rho_{2j}\\ \vdots&\vdots&\ddots&\vdots\\ \rho_{i1}&\rho_{i2}&\cdots&1 \end{matrix}\right] =\boldsymbol{\sigma}^{-1}\boldsymbol{\Sigma(\sigma}^{-1})^T=\boldsymbol{\sigma}^{-1}\boldsymbol{\Sigma\sigma}^{-1}\\ \boldsymbol\sigma^{-1} =\dfrac{1}{|\ \boldsymbol\sigma\ |}\boldsymbol{\sigma}^{*}\\ \boldsymbol{\sigma}=\begin{cases}\sqrt{s_{ij}}\,\,\,,i=j\\\\0\,\,\,,i\neq j\end{cases} R=
1ρ21⋮ρi1ρ121⋮ρi2⋯⋯⋱⋯ρ1jρ2j⋮1
=σ−1Σ(σ−1)T=σ−1Σσ−1σ−1=∣ σ ∣1σ∗σ=⎩
⎨
⎧sij,i=j0,i=j
4. 多元正态分布
根据上面的大数定律和中心极限定理,我们知道正态分布重要性,根据 ∫ − ∞ x 1 2 π e − t 2 2 d t \footnotesize {\int_{-\infty}^x\dfrac1{\sqrt{2\pi}}e^{-\tiny{\dfrac{t^2}2}}}\,dt ∫−∞x2π1e−2t2dt根据分布服从 X ∼ N 1 ( μ , σ 2 ) \footnotesize X\sim N_1(\mu,\sigma^2) X∼N1(μ,σ2),我们可以推导出多元正态分布公式
n 维正态分布服从 X ∼ N n ( μ , Σ ) ,即: f ( x 1 , ⋯ , x n ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 exp { − 1 2 ( X − μ ) T Σ − 1 ( X − μ ) } n维正态分布服从 \footnotesize \boldsymbol X\sim N_n\left(\boldsymbol \mu,\boldsymbol {\Sigma}\right),即:\\ f(x_1,\cdots,x_n) =\dfrac{1}{(2\pi)^{n/2}|\,\boldsymbol{\Sigma} \,|^{1/2}}\exp\left\{-\dfrac12(\boldsymbol X-\boldsymbol\mu)^{\tiny T}\boldsymbol{\Sigma}^{\tiny -1}(\boldsymbol X-\boldsymbol\mu)\right\} n维正态分布服从X∼Nn(μ,Σ),即:f(x1,⋯,xn)=(2π)n/2∣Σ∣1/21exp{−21(X−μ)TΣ−1(X−μ)}
4. 行列式
det A = ∣ A ∣ = ∑ p 1 p 2 ⋯ p n 是排列数 ( − 1 ) t a 1 p 1 a 2 p 2 … a n p n { 和式是对 S n = { 1 , 2 , ⋯ , n } 所有排列作和 t 是排列数 p 1 p 2 ⋯ p n 的逆序数 \footnotesize\det \boldsymbol A=\left|\boldsymbol A\right|=\sum_{p_1p_2\cdots p_n是排列数}(-1)^ta_{1p_1}a_{2p_2}…a_{np_n}\\ \begin{cases} 和式是对S_n=\{1,2,\cdots,n\}所有排列作和\\ t是排列数p_1p_2\cdots p_n的逆序数 \end{cases} detA=∣A∣=p1p2⋯pn是排列数∑(−1)ta1p1a2p2…anpn{和式是对Sn={1,2,⋯,n}所有排列作和t是排列数p1p2⋯pn的逆序数
注 ∗ : { : 1 p 1 2 p 2 ⋯ n p n 是为保证每个元素不同行不同列 1. S n 自然排列时, t = 0 2. 当 S n 非自然排列, t = ∑ i = 1 n − 1 ( p i 的逆序对总数 ) 注^*:\footnotesize\begin{cases}:1p_12p_2\cdots np_n是为保证每个元素不同行不同列\\1.S_n自然排列时,t=0\\2.当S_n非自然排列,t=\sum_{i=1}^{n-1}(p_i的逆序对总数)\end{cases} 注∗:⎩
⎨
⎧:1p12p2⋯npn是为保证每个元素不同行不同列1.Sn自然排列时,t=02.当Sn非自然排列,t=∑i=1n−1(pi的逆序对总数)
-
余子式展开式
- i i i行展开式
det A = a i 1 A i 1 + a i 2 A i 2 + ⋯ + a i n A i n , i = 1 , 2 , ⋯ , n \footnotesize\det \boldsymbol A=a_{i1}\boldsymbol A_{i1}+a_{i2}\boldsymbol A_{i2}+\cdots+a_{in}\boldsymbol A_{in},i=1,2,\cdots,n detA=ai1Ai1+ai2Ai2+⋯+ainAin,i=1,2,⋯,n
- ** j j j列展开式**
det A = a 1 j A 1 j + a 2 j A 2 j + ⋯ + a n j A n j , j = 1 , 2 , ⋯ , n \footnotesize\det \boldsymbol A=a_{1j}\boldsymbol A_{1j}+a_{2j}\boldsymbol A_{2j}+\cdots+a_{nj}\boldsymbol A_{nj},j=1,2,\cdots,n detA=a1jA1j+a2jA2j+⋯+anjAnj,j=1,2,⋯,n
- i i i行展开式
-
性质
- ∣ A T ∣ = ∣ A ∣ \footnotesize\left|\boldsymbol A^{\tiny{\text{\tiny T}}}\right|=\left|\boldsymbol A\right| ∣AT∣=∣A∣
- A → r i ↔ r j B \footnotesize\boldsymbol A\xrightarrow{r_i\leftrightarrow r_j}\boldsymbol B Ari↔rjB,则 ∣ B ∣ = − ∣ A ∣ \footnotesize \left|\boldsymbol B\right|=-\left|\boldsymbol A\right| ∣B∣=−∣A∣
- A → r i ÷ k B ,则 ∣ B ∣ = k ∣ A ∣ ,提取 A 某行元素公因式 k \footnotesize\boldsymbol A\xrightarrow{r_i÷ k}\boldsymbol B,则\left|\boldsymbol B\right|=k\left|\boldsymbol A\right|,提取\boldsymbol A某行元素公因式k Ari÷kB,则∣B∣=k∣A∣,提取A某行元素公因式k
- A → r i + k r j B ,则 ∣ B ∣ = ∣ A ∣ \footnotesize \boldsymbol A\xrightarrow{r_i+kr_j}\boldsymbol B,则\left|\boldsymbol B\right|=\left|\boldsymbol A\right| Ari+krjB,则∣B∣=∣A∣
- 若矩阵 A 两行相同或者成比例,则 ∣ A ∣ = 0 若矩阵\boldsymbol A两行相同 或者 成比例,则\left|\boldsymbol A\right|=0 若矩阵A两行相同或者成比例,则∣A∣=0
- 若 A \boldsymbol A A某行元素为两矩阵某行元素之和,可拆成 ∣ A ∣ = ∣ B ∣ + ∣ C ∣ \footnotesize\left|\boldsymbol A\right|=\left|\boldsymbol B\right|+\left|\boldsymbol C\right| ∣A∣=∣B∣+∣C∣
1. 余子式
n n n阶方阵中 A \textbf A A矩阵的划去 ( i , j ) (i,j) (i,j)元所在 i i i行 , j ,j ,j列,剩下 n − 1 n-1 n−1阶方阵行列式 A \textbf A A的 ( i , j ) (i,j) (i,j)元余子式,记作 M i j \textbf M_{ij} Mij
A i j = ( − 1 ) i + j M i j \footnotesize\boldsymbol A_{ij}=(-1)^{i+j}\boldsymbol M_{ij} Aij=(−1)i+jMij
2. 伴随矩阵
A ∗ = ( A 11 A 12 … A 1 n A 21 A 22 ⋯ A 2 n ⋮ ⋮ ⋱ ⋮ A n 1 A n 2 ⋯ A n n ) \footnotesize\boldsymbol{A}^*=\begin{pmatrix} \boldsymbol A_{11} & \boldsymbol A_{12}&…&\boldsymbol A_{1n}\\ \boldsymbol A_{21}&\boldsymbol A_{22}&\cdots&\boldsymbol A_{2n}\\ \vdots&\vdots &\ddots &\vdots\\ \boldsymbol A_{n1}&\boldsymbol A_{n2}&\cdots&\boldsymbol A_{nn} \end{pmatrix} A∗= A11A21⋮An1A12A22⋮An2…⋯⋱⋯A1nA2n⋮Ann
- 性质
A A ∗ = A ∗ A = ∣ A ∣ E \footnotesize\boldsymbol{A A}^*=\boldsymbol A^*\boldsymbol A=\left|\boldsymbol A\right|\boldsymbol E AA∗=A∗A=∣A∣E
5. 矩阵
1. 逆矩阵
1. 存在的必要条件
C o n d i t i o n = { n × n 的方阵 ∣ A ∣ ≠ 0 \footnotesize Condition=\begin{cases} n\times n的方阵\\ \left|\boldsymbol A\right| \neq 0 \end{cases} Condition={n×n的方阵∣A∣=0
2. 求解方式
- A − 1 = 1 ∣ A ∣ A ∗ \footnotesize\boldsymbol A^{-1}=\dfrac 1{\left|\boldsymbol A\right|}\boldsymbol A^* A−1=∣A∣1A∗
- 设 A \boldsymbol A A是 n n n阶方阵, E n \boldsymbol E_n En写 A \boldsymbol A A右边,构成 n × 2 n n\times 2n n×2n矩阵,当 ( X , E ) \footnotesize\left(\boldsymbol X,\boldsymbol E\right) (X,E)行最简行为 ( E , X ) \footnotesize\left(\boldsymbol E,\boldsymbol X\right) (E,X)时, B = A B − 1 = X \footnotesize\boldsymbol B=\boldsymbol A\boldsymbol B^{-1}=\boldsymbol X B=AB−1=X
( X , E ) → r ( E , A B − 1 ) \footnotesize\left(\boldsymbol X,\boldsymbol E\right)\xrightarrow{r}\left(\boldsymbol E,\boldsymbol A\boldsymbol B^{\tiny-1}\right) (X,E)r(E,AB−1)
2. 方阵的特征值与特征向量
1. 定义与求解
- A \footnotesize \textbf A A是 n n n阶方阵,若存在 λ \lambda λ和 n n n维非零向量 x \boldsymbol x x,使
A x = λ x \footnotesize \boldsymbol A\boldsymbol x=\lambda\boldsymbol x Ax=λx
- 求解特征值 λ \lambda λ与特征向量 x \boldsymbol x x,即: ( λ E − A ) x = 0 \footnotesize(\lambda\boldsymbol E-\boldsymbol A)\boldsymbol x=\boldsymbol 0 (λE−A)x=0
- 特征方程: ∣ λ E − A ∣ = 0 \footnotesize\left|\lambda\boldsymbol E-\boldsymbol A\right|=0 ∣λE−A∣=0
- 代入 λ i \lambda_i λi求解 ( λ i E − A ) = 0 \footnotesize(\lambda_i\boldsymbol E-\boldsymbol A)=\boldsymbol 0 (λiE−A)=0的 x i \boldsymbol x_i xi的特征值通解
2. 特征值 λ \lambda λ与方阵 A \boldsymbol A A关系
- λ 1 + ⋯ + λ n = ∑ i = 0 n a i i \footnotesize\lambda_1+\cdots+\lambda_n=\sum_{i=0}^na_{ii} λ1+⋯+λn=∑i=0naii
- λ 1 ⋅ ⋯ ⋅ λ n = ∣ A ∣ \footnotesize\lambda_1\cdot\cdots\cdot\lambda_n=\left|\boldsymbol A\right| λ1⋅⋯⋅λn=∣A∣
6. 回归
1. 线性回归
1. 原理
y i = β 0 + ∑ k = 1 n β k x k + ξ y 为房价, β i 为权重值, x i 为影响因素, ξ 为误差 \footnotesize y_i=\beta_0+\sum_{k=1}^n \beta_k x_k+\xi\\ y为房价,\beta_i为权重值,x_i为影响因素,\xi为误差 yi=β0+k=1∑nβkxk+ξy为房价,βi为权重值,xi为影响因素,ξ为误差
线性回归模型预测本质上是求解向量 β T = ( β 0 , ⋯ , β n + 1 ) \boldsymbol\beta^T=(\beta_0,\cdots,\beta_{n+1}) βT=(β0,⋯,βn+1),即:
[ 1 x 11 ⋯ x 1 n ⋮ ⋮ ⋱ ⋮ 1 x n 1 ⋯ x n n ] [ β 0 ⋮ β n + 1 ] = [ y 1 ⋮ y n ] y n 为结果, x n 为影响因素, β n + 1 为参数 \footnotesize \left[\begin{matrix} 1&x_{11}&\cdots&x_{1n}\\ \vdots&\vdots&\ddots&\vdots\\ 1&x_{n1}&\cdots&x_{nn} \end{matrix}\right] \left[\begin{matrix} \beta_0\\ \vdots\\ \beta_{n+1} \end{matrix}\right] =\left[\begin{matrix} y_1\\ \vdots\\ y_n \end{matrix}\right]\\ y_{n}为结果,x_n为影响因素,\beta_{n+1}为参数
1⋮1x11⋮xn1⋯⋱⋯x1n⋮xnn
β0⋮βn+1
=
y1⋮yn
yn为结果,xn为影响因素,βn+1为参数
2. 参数估计(最小二乘法)
参数估计本质是为了找寻最优的 β T \boldsymbol\beta^T βT,以减少误差,即:
min { k ∑ i = 1 n ( Y i − y i ) 2 } Y i 为观测值, y i 为预测值 \footnotesize \min \left\{k \sum_{i=1}^n(Y_i - y_i)^2\right\}\\ Y_i为观测值,y_i为预测值 min{ki=1∑n(Yi−yi)2}Yi为观测值,yi为预测值
3. 极大似然估计与核函数
原因:若试验中结果 A A A已出现,选择当试验结果有利于 A A A的出现时,使其出现的概率最大,为了让其最大
∂ ln L ( x 1 , ⋯ , x n ; θ ^ k ) ∂ θ ^ k = 0 θ ^ 为所求的似然估计值 \footnotesize \dfrac{\partial \ln L(x_1,\cdots,x_n;\hat\theta_k)}{\partial\hat\theta_k} =0\\ \hat\theta为所求的似然估计值 ∂θ^k∂lnL(x1,⋯,xn;θ^k)=0θ^为所求的似然估计值
max { θ ^ 1 , ⋯ , θ ^ k } \max\left\{\hat\theta_1,\cdots,\hat\theta_k\right\} max{θ^1,⋯,θ^k}即为最大似然估计值
- 若有所求 f ( x ) f(x) f(x)其中对于有 n + 1 n+1 n+1变量的似然函数 L L L,利用核函数(本质就是不定积分分解函数)分解变量,即:
L ( x 1 , ⋯ , x n ; θ ^ k ) = ∏ i = 1 n f ( x i ; θ ^ k ) L(x_1,\cdots,x_n;\hat\theta_k)=\prod_{i=1}^nf(x_i;\hat\theta_k) L(x1,⋯,xn;θ^k)=i=1∏nf(xi;θ^k)
…额…哪个定理我忘了…反正内容是:连续的函数曲线必然存在一条与x轴平行的导数 - 为了简化 max θ ^ k \max \hat\theta_k maxθ^k计算,我们直接求二阶偏导就是最大的那个估计值,即:对似然求 ln L \ln L lnL对 θ ^ k \hat\theta_k θ^k的二阶偏导,即:
∂ 2 ln L ( x 1 , ⋯ , x n ; max θ ^ ) ∂ 2 max θ ^ = 0 \footnotesize \dfrac{\partial^2 \ln L(x_1,\cdots,x_n;\max\hat\theta)}{\partial^2 \max\hat\theta} =0 ∂2maxθ^∂2lnL(x1,⋯,xn;maxθ^)=0
2.非线性回归
省略,因为非线性问题要根据实际情况求解 y i y_i yi,没有标准的求解过程
3. 聚类
1. 距离矩阵
D = [ 0 d 12 ⋯ d 1 i d 21 0 ⋯ d 2 i ⋮ ⋮ ⋱ ⋮ d i 1 d i 2 ⋯ 0 ] \footnotesize\boldsymbol D=\left[\begin{matrix}0&d_{12}&\cdots&d_{1i}\\d_{21}&0&\cdots&d_{2i}\\\vdots&\vdots&\ddots&\vdots\\d{i1}&d_{i2}&\cdots&0\end{matrix}\right] D= 0d21⋮di1d120⋮di2⋯⋯⋱⋯d1id2i⋮0
1. 明氏距离
d i j ( q ) = [ ∑ k = 1 p ( x i k − x j k ) q ] 1 q { 绝对值距离: ∑ k = 1 p ∣ x i k − x j k ∣ , q = 1 欧式距离: ∑ k = 1 p ( x i k − x j k ) 2 , q = 2 \footnotesize d_{ij}(q)=\left[\sum_{k=1}^p(x_{ik}-x_{jk})^q\right]^{\dfrac1q}\\ \begin{cases}绝对值距离:\sum_{k=1}^p|x_{ik}-x_{jk}|\,\,\,,q=1\\\\欧式距离:\sqrt{\sum_{k=1}^p(x_{ik}-x_{jk})^2}\,\,,q=2 \end{cases} dij(q)=[k=1∑p(xik−xjk)q]q1⎩ ⎨ ⎧绝对值距离:∑k=1p∣xik−xjk∣,q=1欧式距离:∑k=1p(xik−xjk)2,q=2
2. 系统聚类
1. 最短距离法
- 欧式距离计算距离矩阵 D \footnotesize\boldsymbol D D
- 取距离最短 d ( p , q ) = min { d i j ∣ i ∈ G p , j ∈ G q } \footnotesize d(p,q)=\min\{d_{ij}|i\in G_p,j\in G_q\} d(p,q)=min{dij∣i∈Gp,j∈Gq} ,将其 G p G_p Gp和 G q G_q Gq合并为 G r G_r Gr
- 不断循环 ( 2 ) (2) (2),即 D ( r , s ) = min { D ( p , s ) , D ( q , s ) } \footnotesize D(r,s)=\min\{D(p,s),D(q,s)\} D(r,s)=min{D(p,s),D(q,s)}
- 随机生成数据
属性1 属性2 属性3 属性4 属性5 属性6 属性7 属性8 属性9 属性10 ... 属性91 \ 样本1 51.0 92.0 14.0 71.0 60.0 20.0 82.0 86.0 74.0 74.0 ... 71.0 样本2 25.0 88.0 59.0 40.0 28.0 14.0 44.0 64.0 88.0 70.0 ... 61.0 样本3 8.0 61.0 36.0 96.0 50.0 43.0 23.0 78.0 58.0 31.0 ... 0.0 样本4 79.0 2.0 19.0 23.0 53.0 32.0 23.0 74.0 71.0 35.0 ... 94.0 样本5 65.0 26.0 1.0 89.0 16.0 32.0 8.0 42.0 47.0 38.0 ... 88.0 ... ... ... ... ... ... ... ... ... ... ... ... ... 样本96 73.0 73.0 87.0 84.0 10.0 90.0 15.0 89.0 60.0 93.0 ... 86.0 样本97 1.0 83.0 14.0 3.0 85.0 49.0 37.0 22.0 58.0 89.0 ... 26.0 样本98 23.0 64.0 17.0 43.0 75.0 56.0 27.0 70.0 22.0 84.0 ... 9.0 样本99 53.0 5.0 39.0 92.0 93.0 1.0 72.0 1.0 92.0 96.0 ... 10.0 样本100 38.0 52.0 89.0 77.0 55.0 0.0 55.0 3.0 29.0 11.0 ... 7.0
- 距离矩阵
J ... › œ ž Ÿ ¡ \ A 441.67 ... 427.99 418.59 422.05 451.32 422.26 445.76 357.46 B 452.00 ... 428.31 418.79 385.88 418.18 413.27 399.54 432.34 C 441.16 ... 434.73 414.96 430.76 410.47 407.07 403.58 419.55 D 441.67 ... 406.94 377.22 403.83 435.04 422.13 435.32 435.48 E 419.32 ... 433.59 360.35 413.75 391.80 399.48 385.85 431.59 ... £ 433.56 0.00 419.90 ¤ 386.23 419.90 0.00 [100 rows x 100 columns]
- 分类图片与结果示例
至于为什么这个样本为啥是这个名字…主要是我给样本命名用的ascll原因…类别1:{'K'} 类别2:{'u'} 类别3:{'O'} 类别4:{'b'} 类别5:{'k'} 类别6:{'¤'} 类别7:{'}'} 类别8:{'\x84'} 类别9:{'x'} 类别10:{'\x88'} 类别11:{'\x7f'} 类别12:{'I'} 类别13:{'S'} 类别14:{'X'} 类别15:{'¢'} 类别16:{'\x91'} 类别17:{'\x89'} 类别18:{'\x8c'} 类别19:{'\x97'} 类别20:{'g'} 类别21:{'l'} 类别22:{'\x85'} 类别23:{'\x99'} 类别24:{'a'} 类别25:{'\x92'} ... 类别97:{'C'} 类别98:{'^'} 类别99:{'\x8a'} 类别100:{'\x8f'}
2. 重心法
G i j = 1 2 ∑ k = 1 p d d = ( x i , ⋯ , x n ) T \footnotesize \boldsymbol G_{ij}=\dfrac12\sum_{k=1}^p\boldsymbol d\\ \boldsymbol d=(x_i,\cdots,x_n)^T Gij=21k=1∑pdd=(xi,⋯,xn)T
- 计算各样本到欧式距离,取其样本最大距离作为中心点 m i m_i mi
- 根据中心点到其它样本距离初步划分类 G i G_i Gi
- 修改划分类,计算各类重心 G k . . n G_{k..n} Gk..n,根据 d i G k < < d i G n d_{\tiny iG_k}<<d_{\tiny iG_n} diGk<<diGn,确定分为一类,判断初步分类是否正确并且重新划分类 G i G_i Gi
- 注意
系统聚类有很多各种方法,这里是最典型的最短距离法,还有很多例如重心法,Ward法,最长距离法,类平均法,中间距离等各种方法,每种侧重不一样,思想一样
优缺点
- 优点:相对精确,适合数量小时候
- 缺点:但当数据量巨大时,性能过差,甚至计算机会停止工作
3. K − m e a n K-mean K−mean快速聚类——适合数据量大
- 随机初始 k k k个簇心
m k = ( x 1 , ⋯ , x n ) T \boldsymbol m_k=(x_1,\cdots,x_n)^T mk=(x1,⋯,xn)T - 不断计算蔟心与距离直到蔟不再变化
簇心: m k = 1 n k ∑ x ∈ D i x \footnotesize 簇心:\boldsymbol m_k=\dfrac{1}{n_k}\sum_{x\in D_i}x 簇心:mk=nk1x∈Di∑x
数据集省略,结果和图例展示
- 这个是用库自带的KMeans算法和PCA聚类

类别1:{'\x81', 'n', 'w', 'v', 'D', 'd', 'p', '\x9a', 'M', 't', '\x9c', '\x80', 'o', 'L', 'Q', '|', 'h', 'f', 'q', '\x8e'}
类别2:{'\x91', '\x84', 'k', 'O', '\x87', 'J', '\x8f', '\xa0', 'S', '¤', '¢', '\x96'}
类别3:{'x', '~', '\x9b', 'u', 'E', 'C', 'R', '\x88', 'B', 'K', '\\', '\x8a', 'U', 'm', 'Z', '¡', 'X'}
类别4:{'r', 'b', 'G', 'T', '\x9e', 'N', 'H', 'V', '}', '\x9f', '\x9d', 'y', '[', '{', 'A', 'a', 'j', 'z', '\x97', 'P', 'g', 'F', '`', 'c', '\x83', '\x8d', '\x99', '\x7f', 'I'}
类别5:{'\x8c', '\x94', '£', ']', '\x98', '^', 'i', 'l'}
类别6:{'Y', '\x86', '\x95', '\x89', 'e', 'W', '\x8b', '_', '\x92', '\x93', '\x90', '\x82', '\x85', 's'}
当然我自己也有写算法,上面系统聚类也写了,不过因为系统聚类本身对大量数据性能差,用的少,所以就不放了,KMeans倒是可以放一下
注意:我这个数据是没有经过PCA降维
- 代码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#随机数据
np.random.seed(52)
data1= np.random.randn(50, 2)+ np.array([1, 1])
data2= np.random.randn(50, 2)+ np.array([-1, -1])
data3= np.random.randn(50, 2)+ np.array([-1, 1])
data=np.vstack((data1, data2, data3))
#距离计算
def distance(point1, point2):
diff=point2-point1
return np.sqrt(sum(diff**2))
#随机初始化质心
def random_select(data:np.ndarray,k:int):
return data[np.random.choice(data.shape[0], k, replace=False)]
#聚类
def means(data:np.ndarray,k:int,centers:np.ndarray):
row=data.shape[0]
change=True
#存储每点[蔟索引,到中心点的距离]
subCenters=np.zeros((row,2))
while change:
change=False
# 计算每个点到中心点的距离,将每个点分配到距离最近的中心点
for i in range(row):
minDis=np.inf
index=0
for j in range(k):
dis=distance(data[i,],centers[j,])
if dis<minDis:
minDis=dis
index=j
if subCenters[i,0]!=index:
change=True
subCenters[i,]=np.array([index,minDis])
# 计算新的中心点
if change:
for i in range(k):
points=data[np.nonzero(subCenters[:,0]==i)]
if len(points)>0:
centers[i,]=np.mean(points,axis=0)
return subCenters,centers
def kmeans(data:np.ndarray,k:int) -> tuple:
centers:np.ndarray = random_select(data,k)
return means(data,k,centers)
# 随机选择k个质心
k=4
subCenters,centers=kmeans(data,k)
# 绘制散点图
for i in range(k):
points=data[np.nonzero(subCenters[:,0]==i)]
if len(points)>0:
plt.scatter(points[:, 0], points[:, 1], label=f'数据蔟 {i+1}')
plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='x', s=100, label='中心点')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('K-means Clustering')
plt.legend()
plt.show()
- 结果

4. 分析
1. 主成分分析
1. 主成分
Y i = α i T ( z − μ ) \footnotesize Y_i=\boldsymbol\alpha_i^T(\boldsymbol z-\boldsymbol\mu) Yi=αiT(z−μ)
- 求解特征值 λ \lambda λ与特征向量 α i \boldsymbol \alpha_i αi,即: ( Σ − λ E ) α = 0 \footnotesize(\boldsymbol{\Sigma}-\lambda\boldsymbol E)\boldsymbol \alpha=\boldsymbol 0 (Σ−λE)α=0
- 特征方程: ∣ Σ − λ E ∣ = 0 \footnotesize|\boldsymbol{\Sigma}-\lambda\boldsymbol E|\boldsymbol =\boldsymbol 0 ∣Σ−λE∣=0求解 λ i \lambda_i λi
- 主成分 α i \boldsymbol{\alpha}_i αi需要满足 ∑ i = 1 n x i 2 = 1 \footnotesize\sum_{i=1}^nx_i^2=1 ∑i=1nxi2=1
2. 方差贡献率
P = max { λ i ∑ i = 1 n λ i } \footnotesize P=\max\left\{\dfrac{\lambda_i}{\sum_{i=1}^n\lambda_i}\right\} P=max{∑i=1nλiλi}
其中当 λ i ∑ i = 1 n λ i \dfrac{\lambda_i}{\sum_{i=1}^n\lambda_i} ∑i=1nλiλi 为最大时,此时特征向量 x i \boldsymbol x_i xi 为主要的主成分因素,主要成分贡献率达到 P ≥ 85 % P\ge85\% P≥85%,若 max P \max P maxP未达到可加入次贡献率主成分
我这里选了三个样本特征, k = 3 k=3 k=3,多的也懒,数据都一个样,设置随机种子,随机生成的…
特征值 方差贡献率 累积方差贡献率 主成分1 1.12 37.03% 37.03% 主成分2 1.00 32.9% 69.93% 主成分3 0.91 30.07% 100.0% 我们可以明显注意到主成分1和主成分2占比最大,变量贡献率基本最多,那提取数据主要特征可以侧重于这两个特征向量提取,这样提取出来的信息会最大,数据效益更大化
不过会衍生出来另一个问题?
*能否找到这些主成分变量共同的因子?找到之后如何修正?并且确认,这就是后面的因子分析
2. 因子分析
-
对称矩阵必可对角化:求解 R = σ − 1 Σ σ − 1 \footnotesize\boldsymbol R=\boldsymbol\sigma^{-1}\boldsymbol{\Sigma}\boldsymbol\sigma^{-1} R=σ−1Σσ−1的特征向量 α i \boldsymbol\alpha_i αi和特征值 λ i \lambda_i λi
-
验证特征向量 α i \boldsymbol\alpha_i αi正交性:
( α i , α j ) = 0 \footnotesize(\boldsymbol\alpha_i,\boldsymbol\alpha_j)=0 (αi,αj)=0
-
确定因子个数: m m m为因子个数
累积方差贡献率: ∑ i = 1 m λ i ∑ i = 1 n λ i ≥ 80 % \footnotesize累积方差贡献率:\dfrac{\sum_{i=1}^m\lambda_i}{\sum_{i=1}^n\lambda_i}\ge80\% 累积方差贡献率:∑i=1nλi∑i=1mλi≥80%
-
求因子载荷矩阵 A \boldsymbol A A:
A = ( α 1 , . . . , α n ) ( λ 1 ⋱ λ n ) 其中, A i = α i λ i = ( a 1 ⋮ a n ) \footnotesize\boldsymbol A=(\boldsymbol\alpha_1,...,\boldsymbol\alpha_n) \begin{pmatrix} \sqrt{\lambda_1}&&\\ &\ddots&\\ &&\sqrt{\lambda_n} \end{pmatrix}\\ 其中,\boldsymbol A_i=\boldsymbol\alpha_i\sqrt{\lambda_i} =\begin{pmatrix} a_1\\ \vdots\\ a_n \end{pmatrix} A=(α1,...,αn)(λ1⋱λn)其中,Ai=αiλi= a1⋮an
-
建立因子模型 X \boldsymbol X X:
X = A F + ξ 其中, x i = a i F i + ξ i \footnotesize\boldsymbol X=\boldsymbol A\boldsymbol F+\boldsymbol\xi\\ 其中,x_i=a_{i}F_i+\xi_i X=AF+ξ其中,xi=aiFi+ξi
-
求共同度 h i h_i hi:
h i = a i 2 h_i=a_i^2 hi=ai2
-
求公共因子 F i F_i Fi对 x i x_i xi的贡献率:
∑ i = 1 n a i 2 \sum_{i=1}^na_i^2 i=1∑nai2
*** 结果示例***
- 因子载荷矩阵

- 共同度
| 特征 | 共同度 |
|---|---|
| 特征1 | 0.040178 |
| 特征2 | 0.197625 |
| 特征3 | 0.184600 |
| 特征4 | 0.014987 |
| 特征5 | 0.071717 |
| 特征6 | 0.059740 |
| 特征7 | 0.064403 |
| 特征8 | 0.095648 |
| 特征9 | 0.650536 |
| 特征10 | 0.105380 |
- 旋转的因子载荷
| 因子1 | 因子2 | |
|---|---|---|
| 方差贡献率 | 81.83% | 66.65% |
| 累计方差贡献率 | 8.18% | 6.67% |
| 旋转后方差贡献率 | 8.18% | 14.85% |
3. 对应分析
可以同时对变量和样品分析
1. 频率矩阵 P \boldsymbol P P
P = [ p 11 p 12 ⋯ p 1 i p 21 p 22 ⋯ p 2 i ⋮ ⋮ ⋱ ⋮ p i 1 p i 2 ⋯ p i j ] p i j = data i j n n = ∑ i = 1 n ∑ j = 1 n data i j \footnotesize\boldsymbol P=\left[\begin{matrix}p_{11}&p_{12}&\cdots&p_{1i}\\p_{21}&p_{22}&\cdots&p_{2i}\\\vdots&\vdots&\ddots&\vdots\\p{i1}&p_{i2}&\cdots&p{ij}\end{matrix}\right]\\p_{\tiny ij}=\dfrac{\text{data}_{ij}}{n}\\n=\sum_{i=1}^n\sum_{j=1}^n\text{data}_{ij} P= p11p21⋮pi1p12p22⋮pi2⋯⋯⋱⋯p1ip2i⋮pij pij=ndataijn=i=1∑nj=1∑ndataij
2. 过渡矩阵 Z \boldsymbol Z Z
Z = [ z 11 z 12 ⋯ z 1 i z 21 z 22 ⋯ z 2 i ⋮ ⋮ ⋱ ⋮ z i 1 z i 2 ⋯ z i j ] z i j = p i j − p i ⋅ p ⋅ j p i ⋅ p ⋅ j \footnotesize\boldsymbol Z=\left[\begin{matrix}z_{11}&z_{12}&\cdots&z_{1i}\\z_{21}&z_{22}&\cdots&z_{2i}\\\vdots&\vdots&\ddots&\vdots\\z{i1}&z_{i2}&\cdots&z{ij}\end{matrix}\right]\\z_{ij}=\dfrac{p_{\tiny ij}-p_{\tiny i\cdot}p_{\tiny \cdot j}}{\sqrt{p_{\tiny i\cdot}p_{\tiny \cdot j}}} Z= z11z21⋮zi1z12z22⋮zi2⋯⋯⋱⋯z1iz2i⋮zij zij=pi⋅p⋅jpij−pi⋅p⋅j
3. 分别进行因子分析
-
对列 R R R型变量因子分析
∑ = Z T Z \footnotesize\boldsymbol{\sum}=\boldsymbol Z^T\boldsymbol Z ∑=ZTZ
-
对行 Q Q Q型样本因子分析
∑ = Z Z T \footnotesize\boldsymbol{\sum}=\boldsymbol Z\boldsymbol Z^T ∑=ZZT
5. 典型相关分析(二维的多维)
-
求 X \boldsymbol X X与 Y \boldsymbol Y Y的 ∑ \sum ∑协方差矩阵
X = ( x 1 x 2 ) Y = ( y 1 y 2 ) Σ = ( Σ 11 Σ 12 Σ 21 Σ 22 ) \footnotesize \boldsymbol X=\begin{pmatrix}x_1\\x_2\end{pmatrix}\\\boldsymbol Y=\begin{pmatrix}y_1\\y_2\end{pmatrix}\\\Sigma=\begin{pmatrix}\Sigma_{11}&\Sigma_{12}\\\Sigma_{21}&\Sigma_{22}\end{pmatrix} X=(x1x2)Y=(y1y2)Σ=(Σ11Σ21Σ12Σ22)
-
求典型相关系数
A 2 = Σ 11 − 1 2 Σ 12 Σ 22 − 1 2 Σ 21 Σ 11 − 1 2 \footnotesize \boldsymbol A_2=\Sigma_{11}^{-\frac{1}{2}}\Sigma_{12}\Sigma_{22}^{-\frac{1}{2}}\Sigma_{21}\Sigma_{11}^{-\frac{1}{2}} A2=Σ11−21Σ12Σ22−21Σ21Σ11−21
- 求典型相关系数 ∣ A − λ E ∣ = 0 |\boldsymbol A-\lambda \boldsymbol E|=0 ∣A−λE∣=0,求 λ i \lambda_i λi
- 成对相关系数 a i = λ i a_i=\sqrt{\lambda_i} ai=λi
eg:实例
到时候可能会放建模比赛的题目实例(等我先去比赛再说),现在给个大概理论知识
更多推荐




所有评论(0)