均值向量和协方差矩阵
对于一个包含多个特征的数据集,协方差矩阵显示了不同特征之间的协方差。协方差矩阵的对角线元素是每个特征的方差,非对角线元素是不同特征之间的协方差。它的对角线元素分别是身高和体重的方差,非对角线元素是身高和体重之间的协方差。:均值向量是一个包含每个特征的均值的向量。对于一个包含多个特征的数据集,每个特征都有其自己的均值,而均值向量则包含了每个特征的均值。在这种情况下,协方差矩阵只有一个非对角线元素,即
我们将直接进入统计学的核心——均值向量和协方差矩阵的计算,以及它们在分析数据集时的关键作用。我们将以一个具体的例子,包含身高和体重的数据集,来演示如何从头到尾计算这两个统计量,并解释其意义。
均值向量计算
均值向量(Mean Vector)提供了数据集中每个特征的平均值。对于含有 n n n个观测值的 m m m个特征的数据集,均值向量是一个 m m m维向量,其中每个元素是对应特征的均值。
公式:
μ
=
[
μ
1
,
μ
2
,
.
.
.
,
μ
m
]
\mu = [\mu_1, \mu_2, ..., \mu_m]
μ=[μ1,μ2,...,μm]
其中,
μ
j
=
1
n
∑
i
=
1
n
x
i
j
\mu_j = \frac{1}{n}\sum_{i=1}^{n}x_{ij}
μj=n1∑i=1nxij
- μ j \mu_j μj是第 j j j个特征的均值。
- x i j x_{ij} xij是第 i i i个观测的第 j j j个特征值。
- n n n是观测值的数量。
例子:
考虑身高和体重的数据集,包含4个观测值:
- 身高: [ 160 , 165 , 170 , 175 ] [160, 165, 170, 175] [160,165,170,175]
- 体重: [ 55 , 60 , 65 , 70 ] [55, 60, 65, 70] [55,60,65,70]
计算均值向量:
- 平均身高: μ 身高 = 160 + 165 + 170 + 175 4 = 167.5 \mu_{\text{身高}} = \frac{160 + 165 + 170 + 175}{4} = 167.5 μ身高=4160+165+170+175=167.5
- 平均体重: μ 体重 = 55 + 60 + 65 + 70 4 = 62.5 \mu_{\text{体重}} = \frac{55 + 60 + 65 + 70}{4} = 62.5 μ体重=455+60+65+70=62.5
因此,均值向量为: μ = [ 167.5 , 62.5 ] \mu = [167.5, 62.5] μ=[167.5,62.5]。
协方差矩阵计算
协方差矩阵(Covariance Matrix)描述了数据集中特征间的相互变化趋势。它不仅展示了单个特征的变异性(通过方差),还显示了特征之间的协方差。
公式:
对于
m
m
m个特征,协方差矩阵是一个
m
×
m
m \times m
m×m矩阵,其中元素定义为:
Σ
j
k
=
1
n
−
1
∑
i
=
1
n
(
x
i
j
−
μ
j
)
(
x
i
k
−
μ
k
)
\Sigma_{jk} = \frac{1}{n-1}\sum_{i=1}^{n}(x_{ij} - \mu_j)(x_{ik} - \mu_k)
Σjk=n−11i=1∑n(xij−μj)(xik−μk)
- Σ j k \Sigma_{jk} Σjk是特征 j j j和特征 k k k之间的协方差。
- μ j \mu_j μj和 μ k \mu_k μk分别是特征 j j j和 k k k的均值。
- n n n是观测值的数量。
例子:
使用上述身高和体重数据计算协方差矩阵。
首先,我们已知:
- μ 身高 = 167.5 \mu_{\text{身高}} = 167.5 μ身高=167.5
- μ 体重 = 62.5 \mu_{\text{体重}} = 62.5 μ体重=62.5
计算方差和协方差:
- 方差(身高): 使用公式计算得 Σ 11 \Sigma_{11} Σ11。
- 方差(体重): 使用公式计算得 Σ 22 \Sigma_{22} Σ22。
- 协方差(身高, 体重): 使用公式计算得 Σ 12 = Σ 21 \Sigma_{12} = \Sigma_{21} Σ12=Σ21。
现在,我们将直接计算这些值。
让我们计算每个特征的方差和身高与体重之间的协方差,以构建协方差矩阵。
在计算完毕后,我们得到以下结果:
-
均值向量: 对于身高和体重,均值分别为 167.5 167.5 167.5 和 62.5 62.5 62.5,因此均值向量为 μ = [ 167.5 , 62.5 ] \mu = [167.5, 62.5] μ=[167.5,62.5]。
-
协方差矩阵:
[ 41.67 41.67 41.67 41.67 ] \begin{bmatrix} 41.67 & 41.67 \\ 41.67 & 41.67 \end{bmatrix} [41.6741.6741.6741.67]
其中,对角线元素( 41.67 41.67 41.67)代表身高和体重的方差,显示了它们各自的变异程度;非对角线元素(同样是 41.67 41.67 41.67)代表身高和体重之间的协方差,指示了它们之间的正相关性。
import numpy as np
# 数据
heights = np.array([160, 165, 170, 175])
weights = np.array([55, 60, 65, 70])
# 计算均值
mean_height = np.mean(heights)
mean_weight = np.mean(weights)
# 计算方差和协方差
variance_height = np.var(heights, ddof=1)
variance_weight = np.var(weights, ddof=1)
covariance_height_weight = np.cov(heights, weights)[0, 1]
# 构造协方差矩阵
covariance_matrix = np.array([[variance_height, covariance_height_weight],
[covariance_height_weight, variance_weight]])
mean_height, mean_weight, covariance_matrix
(167.5,
62.5,
array([[41.66666667, 41.66666667],
[41.66666667, 41.66666667]]))
通过这些计算,我们可以看到身高和体重在该数据集中呈现出强烈的正相关性:随着身高的增加,体重也相应增加。均值向量简明地总结了每个特征的平均水平,而协方差矩阵深入揭示了特征间的相互关系,是理解数据集多维性质的关键。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)