python偏相关分析
偏相关分析含义
偏相关分析是一种用于测量两个变量之间关系的统计方法,它可以控制(排除)其他变量的影响。与简单的相关分析不同,偏相关分析可以帮助我们了解在控制某些干扰因素后,两个变量之间的“净”关系。比如,若研究两个变量 X 和 Y 的关系,同时想排除第三个变量 Z 的影响,偏相关分析可以揭示在控制 Z 后 X 和 Y 之间的相关程度。
例如,有论文利用偏相关分析研究了大气饱和水汽压差与气温和相对湿度的关系(李晓琦等,2024)。
偏相关系数是用来衡量在控制其他变量影响的情况下,两个变量之间的线性关系强度和方向。它可以被看作是两个变量在排除了其他干扰因素后“净”关联程度的量化指标。偏相关系数的取值范围与普通相关系数一样,在 -1 到 1 之间:
• 偏相关系数为 1:表示在控制其他变量后,两个变量之间存在完全正线性关系。即在排除干扰的情况下,一个变量的增加完全导致另一个变量的增加。
• 偏相关系数为 -1:表示在控制其他变量后,两个变量之间存在完全负线性关系。即在排除干扰的情况下,一个变量的增加完全导致另一个变量的减少。
• 偏相关系数为 0:表示在控制其他变量后,两个变量之间没有线性关系。也就是说,两个变量间在排除其他影响因素后不再关联。
偏相关系数的绝对值越接近1,表明两个变量在排除其他变量影响后关联越紧密;反之,绝对值越接近0,说明两个变量之间的关系越弱。
偏相关分析的应用场景
1. 存在混杂变量的情况:如果怀疑某些变量会干扰研究变量之间的关系,可以使用偏相关分析排除这些混杂变量的影响,从而更加准确地衡量变量之间的实际关系。
2. 研究因果关系:虽然偏相关分析本身无法直接证明因果关系,但可以通过排除干扰因素来获得更接近因果关系的关联。
3. 控制变量较多的情形:当希望研究变量的独立关系,但又需要控制多个可能的干扰因素(控制变量)时,偏相关分析能揭示被控制因素下的关系强度。
举例
在研究影响河流流域中植物生长的因素时,假设要探究水分和盐分对植物生长的影响,但温度也是一个重要的外部影响因素。如果希望了解水分和盐分对植物生长的直接影响,就可以使用偏相关分析来控制温度的干扰,从而更加准确地分析水分和盐分对植物生长的贡献。
例如要研究水分和植被生长之间的关系,并希望排除盐分和温度的干扰影响,就可以通过偏相关分析控制住这两个因素。这意味着,你会计算水分和植被生长之间的偏相关系数,同时控制盐分和温度,以排除它们的影响,从而得出在不受这两个因素干扰的情况下水分与植被生长之间的“净”关系。
在这种情况下,你可以通过多元偏相关分析一次性控制多个干扰变量(如盐分和温度),从而得到水分对植被生长的独立性影响的程度。这将有助于更清晰地解读水分与植被生长之间的关系,特别是在生态系统中干扰因素复杂的情境下。
Python示例
可以用Python中的pingouin库来计算偏相关系数,这个库提供了方便的统计分析功能,适合处理偏相关等任务。假设有四个变量的数据集:
• plant_growth(植被生长)
• water(水分)
• salt(盐分)
• temperature(温度)
将计算在控制盐分和温度影响的情况下,水分与植被生长之间的偏相关系数。
import pandas as pd
import pingouin as pg # 使用pingouin库# 创建一个示例数据集
data = pd.DataFrame({'plant_growth': [10, 12, 13, 15, 18, 20, 22, 24, 25, 28],'water': [50, 55, 60, 65, 70, 75, 80, 85, 90, 95],'salt': [5, 7, 6, 7, 8, 7, 6, 5, 7, 6],'temperature': [22, 23, 21, 22, 24, 25, 23, 24, 26, 27]
})# 计算偏相关系数,控制'salt'和'temperature'的影响
# pg.partial_corr函数用于计算偏相关系数,其中x='water'和y='plant_growth'表示要分析的两个变量,covar=['salt', 'temperature']表示要控制的变量列表。
partial_corr = pg.partial_corr(data=data, x='water', y='plant_growth', covar=['salt', 'temperature'])# 输出结果
print(partial_corr)
结果显示:
n r CI95% p-val
pearson 10 0.99126 [0.95, 1.0] 0.000002
其中r是偏相关系数,p-val是显著性水平,表明偏相关系数是否显著,CI95%是95%的置信区间
参考文献
李晓琦,李漠岩,李佳卉,姚俊强,许兴斌.近 60 a 新疆开都-孔雀河流域大气饱和水汽压差变化特征及影响因子[J/OL].干旱区研究. https://link.cnki.net/urlid/65.1095.X.20241028.1527.004