前言
自学笔记,分享给对统计学原理不太清楚但需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。ps:本文不涉及公式讲解(文科生小白友好体质)~(部分定义等来源于知乎)
本文重点:皮尔逊相关分析
【1.皮尔逊相关分析的简单原理】
【2.皮尔逊相关分析的数据实例】
【3.皮尔逊相关分析代码】
▷重要:相关关系不等于因果关系
1.皮尔逊相关分析的简单原理(简单看看就行)
- 假设检验:皮尔逊相关检验的零假设(H0)是两个变量之间没有线性关系,即相关系数等于0;备择假设(H1)是两个变量之间存在线性关系,即相关系数不等于0。
- 计算相关系数(皮尔逊相关系数(r)的计算公式):
r = (Σ((X - μX)(Y - μY))) / (n * σX * σY)
其中,X和Y是两个变量,μX和μY分别是X和Y的均值,σX和σY分别是X和Y的标准差,n是样本量。
- 计算 p 值:根据样本量和相关系数,可以计算出 p 值,用于判断相关性的显著性水平。通常,如果 p 值小于显著性水平(如0.05),则拒绝零假设,认为两个变量之间存在显著的线性关系。
▷重要:相关关系不等于因果关系
因此相关分析的结果只能说明随着自变量的变化因变量的变化,并不能说明两者之间存在因果关系
【需要注意】
- 样本量:皮尔逊相关分析对样本量有一定要求。当样本量较小时,相关系数的估计可能不稳定,导致结果不可靠。一般来说,样本量应至少达到30个,以确保分析的稳健性。
- 数据类型:皮尔逊相关分析要求两个变量都是连续型变量,且数据应该在区间或比率尺度上。如果使用序数尺度或分类变量,则应考虑使用其他方法,如斯皮尔曼相关分析或卡方检验。
- 数据分布:皮尔逊相关分析假设两个变量呈正态分布。如果数据严重偏离正态分布,相关系数可能会被扭曲。在这种情况下,可以考虑对数据进行转换(如对数转换)或使用非参数方法,如斯皮尔曼相关分析。
- 异常值:异常值可能对皮尔逊相关系数产生很大影响。异常值可能会夸大或缩小相关性,导致误导性的结果。在进行分析之前,应该仔细检查数据并处理任何异常值。
2.皮尔逊相关分析的数据实例
-
学生的学习时间和考试成绩之间是否相关:
- 学习时间(小时): 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
- 考试成绩(分数): 60, 65, 70, 75, 80, 85, 90, 95, 100, 105
-
广告支出与产品销售额之间是否相关:
- 广告支出(千元): 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
- 产品销售额(万元): 50, 60, 70, 80, 90, 100, 110, 120, 130, 140
-
汽车的马力与油耗之间是否相关:
- 马力(PS): 100, 120, 140, 160, 180, 200, 220, 240, 260, 280
- 油耗(L/100km): 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5
通过计算皮尔逊相关系数和 p 值,我们可以确定这些变量之间是否存在显著的线性相关性,以及相关性的强度和方向。
3.皮尔逊相关分析代码
探究国家人均 GDP 与预期寿命之间的关系
以下是 20 个国家的人均 GDP(美元)和预期寿命(年)数据:
国家 | 人均 GDP | 预期寿命 |
---|---|---|
美国 | 62,794 | 78.5 |
日本 | 39,286 | 84.1 |
德国 | 47,603 | 80.8 |
英国 | 42,943 | 80.9 |
法国 | 41,464 | 82.3 |
意大利 | 34,483 | 82.8 |
加拿大 | 46,233 | 81.9 |
韩国 | 31,362 | 82.0 |
俄罗斯 | 11,289 | 72.4 |
巴西 | 8,920 | 75.1 |
中国 | 9,771 | 76.4 |
印度 | 2,010 | 68.8 |
澳大利亚 | 57,305 | 82.6 |
西班牙 | 30,371 | 83.1 |
墨西哥 | 9,946 | 75.0 |
印度尼西亚 | 3,894 | 71.5 |
荷兰 | 52,367 | 81.6 |
沙特阿拉伯 | 23,219 | 74.8 |
土耳其 | 9,370 | 77.4 |
瑞士 | 82,950 | 83.3 |
import numpy as np
from scipy.stats import pearsonr
gdp = np.array([62794, 39286, 47603, 42943, 41464, 34483, 46233, 31362, 11289, 8920,
9771, 2010, 57305, 30371, 9946, 3894, 52367, 23219, 9370, 82950])
life_expectancy = np.array([78.5, 84.1, 80.8, 80.9, 82.3, 82.8, 81.9, 82.0, 72.4, 75.1,
76.4, 68.8, 82.6, 83.1, 75.0, 71.5, 81.6, 74.8, 77.4, 83.3])
corr, p_value = pearsonr(gdp, life_expectancy)
print(f"皮尔逊相关系数: {corr:.2f}")
print(f"p 值: {p_value:.4f}")
皮尔逊相关系数: 0.80
p 值: 0.0000
根据结果,人均 GDP 和预期寿命之间的皮尔逊相关系数为 0.80,表示两个变量之间存在较强的正相关关系。p 值非常小(远小于 0.05),因此我们可以拒绝零假设,认为人均 GDP 和预期寿命之间存在显著的线性相关性。
这个实例表明,通常情况下,人均 GDP 较高的国家,其公民的预期寿命也较高。当然,这种关系可能受到其他因素的影响,如医疗保健质量、生活方式等。