分析方法
主成分分析法¶
问题背景
某学校有100名学生,每个学生的成绩包含5个学科(数学、物理、化学、英语、历史)。教务部门希望通过分析这些学科的成绩数据,提取几个关键的主成分来描述学生的整体学习表现,简化数据并发现影响成绩的主要因素。
1. 数据收集¶
以下是部分学生的成绩数据(5个学科):
学生编号 | 数学 | 物理 | 化学 | 英语 | 历史 |
---|---|---|---|---|---|
学生1 | 85 | 90 | 88 | 72 | 80 |
学生2 | 78 | 85 | 82 | 74 | 77 |
学生3 | 92 | 88 | 95 | 85 | 83 |
学生4 | 70 | 75 | 78 | 65 | 72 |
学生5 | 88 | 85 | 84 | 80 | 79 |
2. 步骤讲解¶
步骤1: 数据标准化¶
由于不同学科的成绩可能有不同的评分标准(如某学科满分为120,而另一学科满分为100),首先将数据进行标准化(即将均值设为0,标准差设为1)。
标准化公式: [ Z = \frac{X - \mu}{\sigma} ] 其中,\( X \) 是原始数据,\( \mu \) 是均值,\( \sigma \) 是标准差。
举例:以“数学”成绩为例: - 数学均值 \( \mu = \frac{85 + 78 + 92 + 70 + 88}{5} = 82.6 \) - 数学标准差 \( \sigma = \sqrt{\frac{(85-82.6)^2 + (78-82.6)^2 + \dots}{5}} \)
对所有科目标准化后,生成如下标准化矩阵:
学生编号 | 数学 | 物理 | 化学 | 英语 | 历史 |
---|---|---|---|---|---|
学生1 | 0.35 | 0.52 | 0.36 | -0.47 | 0.23 |
学生2 | -0.58 | 0.00 | -0.54 | -0.30 | -0.34 |
学生3 | 1.21 | 0.40 | 1.19 | 1.00 | 0.66 |
学生4 | -1.69 | -1.61 | -1.63 | -1.73 | -1.14 |
学生5 | 0.71 | 0.68 | 0.62 | 0.50 | 0.59 |
步骤2: 计算协方差矩阵¶
协方差矩阵反映学科之间的相关性。
协方差公式:
[
\text{Cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})
]
计算后的协方差矩阵(5×5)如下: [ \text{Cov} = \begin{bmatrix} 1 & 0.96 & 0.94 & 0.80 & 0.85 \ 0.96 & 1 & 0.91 & 0.75 & 0.88 \ 0.94 & 0.91 & 1 & 0.78 & 0.90 \ 0.80 & 0.75 & 0.78 & 1 & 0.85 \ 0.85 & 0.88 & 0.90 & 0.85 & 1 \ \end{bmatrix} ]
步骤3: 计算特征值和特征向量¶
对协方差矩阵进行特征分解,得到特征值和特征向量。
- 特征值:
\(\lambda_1 = 4.21, \lambda_2 = 0.52, \lambda_3 = 0.15, \lambda_4 = 0.08, \lambda_5 = 0.04\)
- 特征向量(对应主成分):
[ v_1 = [0.45, 0.46, 0.45, 0.39, 0.42]
] [ v_2 = [0.31, 0.25, -0.28, 0.61, -0.63]
] 其他特征向量略。
步骤4: 选择主成分¶
特征值越大,说明该主成分解释的数据方差越多。
累计方差贡献率:
[
\text{贡献率} = \frac{\lambda_i}{\sum \lambda}
]
计算后:
- 第1主成分贡献率:84.2%
- 第2主成分累计贡献率:94.6%
- 第3及以下主成分贡献率较低,忽略。
因此,选择前两个主成分。
步骤5: 数据投影到主成分¶
将原始标准化数据投影到前两个主成分上:
公式:
[
Z' = Z \cdot V
]
得到的投影数据(二维)如下:
学生编号 | 主成分1 | 主成分2 |
---|---|---|
学生1 | 1.23 | 0.34 |
学生2 | -0.56 | -0.12 |
学生3 | 2.01 | 0.75 |
学生4 | -3.25 | -0.89 |
学生5 | 0.57 | 0.18 |
结果分析¶
- 第一主成分反映学生的综合学科能力(所有学科的权重相似)。
- 第二主成分可能反映“文理倾向”(如理科成绩高而文科成绩低)。
学习巩固问题¶
-
用以下数据(3学科)完成PCA步骤:
[ \text{数据} = \begin{bmatrix} 70 & 80 & 85 \ 60 & 65 & 70 \ 90 & 95 & 100 \ \end{bmatrix} ] -
在某次分析中,发现前两主成分解释了95%的数据方差。应选择多少主成分?为什么?
-
提供一个实际场景,设计如何用PCA解决问题(如健康数据、社会经济数据等)。
k-means聚类法¶
问题背景
一家电商平台希望根据客户的购买行为(年消费金额和购买频率)将客户分成几个群体,以便进行差异化营销。现有客户数据如下:
客户编号 | 年消费金额(美元) | 购买频率(次/年) |
---|---|---|
客户1 | 500 | 5 |
客户2 | 800 | 20 |
客户3 | 1500 | 15 |
客户4 | 200 | 3 |
客户5 | 1000 | 8 |
客户6 | 1200 | 25 |
希望通过 K-Means 聚类,将客户分为 3个群体。
1. 步骤讲解¶
步骤1: 定义聚类目标¶
K-Means 聚类的目标是将数据点分成 \( k \) 个群集,确保: - 群集内数据点之间的差异最小(即点与其质心的距离最短)。 - 群集间的差异最大。
步骤2: 初始化聚类中心¶
- 选择 \( k = 3 \) (分成3个群体)。
- 随机选取3个数据点作为初始质心(Cluster Centroids)。假设初始质心为:
- \( C_1 = (500, 5) \)
- \( C_2 = (800, 20) \)
- \( C_3 = (1500, 15) \)
步骤3: 分配数据点到最近的质心¶
计算每个点与质心的欧几里得距离: [ \text{距离公式: } d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} ]
计算举例:客户1到质心的距离
- 距 \( C_1 = (500, 5) \):
[
d = \sqrt{(500 - 500)^2 + (5 - 5)^2} = 0
]
- 距 \( C_2 = (800, 20) \):
[
d = \sqrt{(500 - 800)^2 + (5 - 20)^2} = \sqrt{300^2 + 15^2} = 300.37
]
- 距 \( C_3 = (1500, 15) \):
[
d = \sqrt{(500 - 1500)^2 + (5 - 15)^2} = \sqrt{1000^2 + 10^2} = 1000.05
]
重复计算所有客户,将每个客户分配到最近的质心所属的群集。
步骤4: 更新质心位置¶
对于每个群集,计算群集内所有点的均值,更新质心位置。
假设第一次迭代后分组如下:
- 群集1: \( \{(500, 5), (200, 3)\} \)
更新质心为:
[
C_1 = \left(\frac{500 + 200}{2}, \frac{5 + 3}{2}\right) = (350, 4)
]
- 群集2: \( \{(800, 20), (1200, 25)\} \)
更新质心为:
[
C_2 = \left(\frac{800 + 1200}{2}, \frac{20 + 25}{2}\right) = (1000, 22.5)
]
- 群集3: \( \{(1500, 15), (1000, 8)\} \)
更新质心为:
[
C_3 = \left(\frac{1500 + 1000}{2}, \frac{15 + 8}{2}\right) = (1250, 11.5)
]
步骤5: 迭代直到收敛¶
重复“分配数据点到最近质心”和“更新质心位置”步骤,直到质心位置不再变化(或变化极小)。
最终结果可能如下:
- 群集1(低消费低频率客户): \( \{(500, 5), (200, 3)\} \)
- 群集2(高消费高频率客户): \( \{(800, 20), (1200, 25)\} \)
- 群集3(高消费中等频率客户): \( \{(1500, 15), (1000, 8)\} \)
2. 结果解读¶
- 群集1(节俭客户): 这类客户消费金额较低,购买频率也不高。可以通过促销或优惠券激励他们购买更多产品。
- 群集2(忠实客户): 这类客户消费金额和购买频率都很高,是平台的重要客户群体,应给予VIP待遇。
- 群集3(中等活跃客户): 消费金额较高,但购买频率一般,可通过针对性营销提高其活跃度。
3. 学习巩固问题¶
问题1: 手动计算分配¶
用以下数据,假设 \( k = 2 \),初始质心为 \( C_1 = (300, 3), C_2 = (1200, 25) \),完成第一轮分配:
数据点编号 | 年消费金额 | 购买频率 |
---|---|---|
数据点1 | 500 | 5 |
数据点2 | 800 | 20 |
数据点3 | 1500 | 15 |
问题2: 数据标准化¶
如果年消费金额和购买频率的量纲差异较大,如何进行标准化处理以提高聚类效果?给出计算公式。
问题3: 聚类效果评价¶
聚类后,如何用 轮廓系数(Silhouette Score) 或 SSE(误差平方和) 来评价聚类效果?
问题4: 实际应用设计¶
设计一个使用 K-Means 的实际应用场景,如旅游偏好分析或零售客户细分,并描述完整的分析流程。
扩展应用¶
- 市场营销:细分客户群体,根据行为制定差异化营销策略。
- 图像压缩:将图像的像素颜色聚类为有限的颜色集合,从而减少存储空间。
- 推荐系统:基于用户行为数据,聚类用户或物品,提高推荐的精准度。
回归分析法¶
概念
回归分析是一种统计方法,用于研究因变量(目标变量)与一个或多个自变量(预测变量)之间的关系。通过建立数学模型(如线性回归、多元回归等),预测或解释因变量的变化。
案例:预测房价¶
问题背景
某城市的房价受面积和房龄影响,现有以下数据:
编号 | 面积(㎡) | 房龄(年) | 房价(万元) |
---|---|---|---|
1 | 100 | 10 | 120 |
2 | 80 | 5 | 100 |
3 | 120 | 20 | 130 |
4 | 150 | 15 | 200 |
5 | 90 | 8 | 110 |
我们希望建立一个模型,用面积和房龄预测房价。
步骤¶
- 定义模型
假设线性回归模型为:
[ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \epsilon ]
其中: - \( y \):房价
- \( x_1 \):面积
- \( x_2 \):房龄
- \( \beta_0, \beta_1, \beta_2 \):待估参数
-
\( \epsilon \):随机误差
-
拟合模型
使用最小二乘法(OLS)估计参数:
[ \hat{\beta} = (XTX)X^Ty ]
通过计算,假设得出模型为:
[
\hat{y} = 50 + 1.2x_1 - 0.5x_2
]
-
预测新数据
如果一个新房屋的面积为110㎡,房龄为10年,则预测房价:
[ \hat{y} = 50 + 1.2 \cdot 110 - 0.5 \cdot 10 = 162 \, \text{万元} ] -
模型评价
- 决定系数 \( R^2 \):衡量模型的解释能力,越接近1越好。
- 残差分析:检验模型假设是否满足,如线性关系、正态性和同方差性。
应用场景¶
- 经济学:预测GDP、房价、股票走势等。
- 医学:研究药物剂量和疗效的关系。
- 工程:预测设备的寿命。
巩固问题¶
-
给定以下数据,构建单变量线性回归模型(面积与房价):
[ X = \begin{bmatrix} 100 \ 80 \ 120 \ 150 \ 90 \end{bmatrix}, Y = \begin{bmatrix} 120 \ 100 \ 130 \ 200 \ 110 \end{bmatrix} ] -
如何判断房龄对房价的影响是否显著?
差异分析方法(ANOVA)¶
概念
差异分析(ANOVA)是一种统计方法,用于比较多个样本组的均值是否有显著差异。常用于检测因子(自变量)对响应变量(因变量)的影响。
案例:不同教学方法对学生成绩的影响¶
问题背景
某教育机构采用3种教学方法(A、B、C)对学生进行培训,收集了每组学生的考试成绩(满分100分):
教学方法 | 成绩(分) |
---|---|
A | 85, 87, 90, 88, 86 |
B | 75, 78, 80, 77, 76 |
C | 65, 68, 70, 67, 66 |
我们希望检验不同教学方法是否对成绩有显著影响。
步骤¶
- 假设检验
- 零假设 \( H_0 \):不同教学方法的均值无显著差异。
-
备择假设 \( H_a \):至少有一种教学方法的均值显著不同。
-
计算组间和组内方差
- 总方差(SST):衡量所有数据的总变异。
[ SST = \sum_{i=1}^{n} (y_i - \bar{y})^2 ] - 组间方差(SSA):不同组均值间的变异。
[ SSA = \sum_{j=1}^{k} n_j (\bar{y}_j - \bar{y})^2 ] -
组内方差(SSE):每组内部数据的变异。
[ SSE = \sum_{j=1}^{k} \sum_{i=1}^{n_j} (y_{ij} - \bar{y}_j)^2 ] -
计算 F 值
[ F = \frac{\text{组间均方(MSA)}}{\text{组内均方(MSE)}} = \frac{SSA / (k - 1)}{SSE / (n - k)} ]
通过计算,假设 \( F = 35.6 \)。
- 检验显著性
- 查找 F 分布表,设显著水平 \( \alpha = 0.05 \),临界值 \( F_\text{crit} = 4.26 \)。
-
若 \( F > F_\text{crit} \),拒绝 \( H_0 \),即教学方法有显著影响。
-
结论
因为 \( F = 35.6 > 4.26 \),我们拒绝零假设,认为教学方法对学生成绩有显著影响。
应用场景¶
- 市场研究:分析不同广告策略的效果是否显著不同。
- 农业实验:比较不同肥料对作物产量的影响。
- 医学实验:比较不同治疗方法对病人的疗效。
巩固问题¶
- 假设你有以下数据:
- 方法A:60, 62, 65, 58
- 方法B:70, 72, 68, 75
-
方法C:80, 85, 82, 78
计算并判断三种方法是否有显著差异。 -
当样本均值差异较大,但组内方差也较大时,F 值是否一定显著?为什么?
Meta-Analysis(荟萃分析)¶
概念
Meta分析是一种综合性统计方法,用于系统性地合并和分析多个独立研究的结果,从而得出更精确、稳健的结论。
它常用于医学、心理学、教育学等领域,通过量化研究之间的差异,评估总体效果。
案例:研究一种新药对降低血压的效果¶
问题背景¶
一种新药被用于降低血压,已发表5项临床研究,每项研究的效果(血压降低值)及样本量如下:
研究编号 | 平均降低值(mmHg) | 样本量 | 标准误差(SE) |
---|---|---|---|
1 | 5.1 | 50 | 0.8 |
2 | 4.8 | 30 | 1.2 |
3 | 5.3 | 40 | 1.0 |
4 | 6.0 | 60 | 0.7 |
5 | 4.5 | 20 | 1.5 |
我们希望通过Meta分析评估该药物总体效果,并判断是否显著。
1. 步骤讲解¶
步骤1: 设定研究问题¶
- 零假设 \( H_0 \):新药对降低血压没有显著效果(总体均值为0)。
- 备择假设 \( H_a \):新药对降低血压有显著效果(总体均值≠0)。
步骤2: 汇总效应量¶
Meta分析中常用效应量:
- 均值差异(Mean Difference, MD):如本案例的血压降低值。
- 标准化均值差异(Standardized Mean Difference, SMD):用于不同量纲的数据。
- 比值比(Odds Ratio, OR) 和 风险比(Risk Ratio, RR):用于分类数据。
本案例选择均值差异作为效应量。
步骤3: 计算加权平均效应量¶
每项研究的权重(\( w_i \))通常与其精确性相关:
[
w_i = \frac{1}{SE_i^2}
]
-
权重计算
[ w_1 = \frac{1}{0.8^2} = 1.5625, w_2 = \frac{1}{1.2^2} = 0.6944, \text{...} ] -
加权平均效应量
[ \hat{MD} = \frac{\sum w_i \cdot MD_i}{\sum w_i} ]
假设计算后得: [ \hat{MD} = 5.2 ]
步骤4: 异质性检验(Heterogeneity Test)¶
研究间的结果差异通过 \( Q \) 统计量检验:
[
Q = \sum_{i=1}^k w_i (MD_i - \hat{MD})^2
]
计算 \( Q \) 后: - 若 \( Q \) 显著,则异质性较大,需考虑随机效应模型。 - 若 \( Q \) 不显著,可继续使用固定效应模型。
步骤5: 计算置信区间和显著性¶
通过标准误差计算总体效应量的置信区间:
[
\text{CI}{95\%} = \hat{MD} \pm 1.96 \cdot SE
]
其中 }\( SE_{\text{total}} = \sqrt{\frac{1}{\sum w_i}} \)。
假设结果为: [ \text{CI}_{95\%} = [4.8, 5.6] ]
若 CI 不包含 0,表明新药效果显著。
步骤6: 绘制森林图(Forest Plot)¶
森林图是Meta分析的核心可视化工具: - 横轴为效应量。 - 每项研究显示其效应量和置信区间。 - 总体效应量及其置信区间用菱形表示。
2. 结果解读¶
根据分析得出: - 总体效应量 \( \hat{MD} = 5.2 \),说明新药平均降低血压5.2 mmHg。 - 置信区间 [4.8, 5.6] 不包含0,表明药物效果显著。 - 如果 \( Q \) 检验不显著,结果较为稳健;否则可能存在研究间的异质性。
3. 应用场景¶
医疗领域¶
- 新药疗效评估:汇总多个临床试验结果评估药物效果。
- 疾病风险因素:分析吸烟、饮酒等对疾病的影响。
教育领域¶
- 教学方法比较:不同教学策略对学习效果的影响。
社会科学¶
- 政策评估:不同地区政策的影响分析。
4. 巩固问题¶
问题1: 手动计算¶
给定以下数据,计算加权平均效应量: | 研究编号 | 效应量(MD) | 标准误差(SE) | |----------|-------------|----------------| | 1 | 2.5 | 0.5 | | 2 | 3.0 | 0.6 | | 3 | 2.8 | 0.4 |
问题2: 异质性分析¶
若 \( Q \) 值较大,应如何处理异质性?
问题3: 随机效应模型¶
随机效应模型如何调整权重,适用于什么场景?