【Python・统计学】皮尔逊相关分析(原理及代码)

前言

自学笔记,分享给对统计学原理不太清楚但需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。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),则拒绝零假设,认为两个变量之间存在显著的线性关系。
▷重要:相关关系不等于因果关系

因此相关分析的结果只能说明随着自变量的变化因变量的变化,并不能说明两者之间存在因果关系

【需要注意】

  1. 样本量:皮尔逊相关分析对样本量有一定要求。当样本量较小时,相关系数的估计可能不稳定,导致结果不可靠。一般来说,样本量应至少达到30个,以确保分析的稳健性。
  2. 数据类型:皮尔逊相关分析要求两个变量都是连续型变量,且数据应该在区间或比率尺度上。如果使用序数尺度或分类变量,则应考虑使用其他方法,如斯皮尔曼相关分析或卡方检验。
  3. 数据分布:皮尔逊相关分析假设两个变量呈正态分布。如果数据严重偏离正态分布,相关系数可能会被扭曲。在这种情况下,可以考虑对数据进行转换(如对数转换)或使用非参数方法,如斯皮尔曼相关分析。
  4. 异常值:异常值可能对皮尔逊相关系数产生很大影响。异常值可能会夸大或缩小相关性,导致误导性的结果。在进行分析之前,应该仔细检查数据并处理任何异常值。

2.皮尔逊相关分析的数据实例

  1. 学生的学习时间和考试成绩之间是否相关:
    • 学习时间(小时): 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
    • 考试成绩(分数): 60, 65, 70, 75, 80, 85, 90, 95, 100, 105
  2. 广告支出与产品销售额之间是否相关:
    • 广告支出(千元): 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
    • 产品销售额(万元): 50, 60, 70, 80, 90, 100, 110, 120, 130, 140
  3. 汽车的马力与油耗之间是否相关:
    • 马力(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,79478.5
日本39,28684.1
德国47,60380.8
英国42,94380.9
法国41,46482.3
意大利34,48382.8
加拿大46,23381.9
韩国31,36282.0
俄罗斯11,28972.4
巴西8,92075.1
中国9,77176.4
印度2,01068.8
澳大利亚57,30582.6
西班牙30,37183.1
墨西哥9,94675.0
印度尼西亚3,89471.5
荷兰52,36781.6
沙特阿拉伯23,21974.8
土耳其9,37077.4
瑞士82,95083.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 较高的国家,其公民的预期寿命也较高。当然,这种关系可能受到其他因素的影响,如医疗保健质量、生活方式等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值