当前位置:   article > 正文

python进行相关性分析_python相关性分析

python相关性分析

相关性分析常用方法

相关系数与P值:相关系数用于衡量两个或多个变量之间的关联程度。常见的相关系数包括皮尔逊相关系数、斯皮尔曼相关系数和肯德尔秩相关系数等。如皮尔逊相关系数,取值范围为 -1 到 1,0 表示没有线性相关性,1 表示完全正相关,-1 表示完全负相关。P值是一个统计量,用于评估观察到的样本数据与一个假设模型的一致性。在相关性分析中,通常用来检验两个变量之间的关系是否是随机发生的。如果p值低于某个预先设定的显著性水平(通常为0.05),则我们可以拒绝零假设,即认为观察到的关系不是偶然发生的。如果p值高于显著性水平,则无法拒绝零假设,即我们不能确定观察到的关系是真实存在的。

  1. 皮尔逊相关系数(Pearson Correlation Coefficient):

    用于衡量两个连续变量之间的线性关系。
    适用于呈线性关系的变量。
    使用scipy.stats.pearsonr()函数计算。
    
    • 1
    • 2
    • 3
    from scipy.stats import pearsonr
    corr, p_value = pearsonr(data['variable1'], data['variable2'])
    
    • 1
    • 2
  2. 斯皮尔曼相关系数(Spearman Correlation Coefficient):

    用于衡量两个变量之间的单调关系,不要求变量之间的关系是线性的。
    适用于不满足线性关系假设的数据。
    使用scipy.stats.spearmanr()函数计算。
    
    • 1
    • 2
    • 3
    from scipy.stats import spearmanr
    corr, p_value = spearmanr(data['variable1'], data['variable2'])
    
    • 1
    • 2
  3. 肯德尔秩相关系数(Kendall Rank Correlation Coefficient):

    用于衡量两个变量之间的秩次关系。
    类似于斯皮尔曼相关系数,但对于小样本数据更为稳健。
    使用scipy.stats.kendalltau()函数计算。
    
    • 1
    • 2
    • 3
    from scipy.stats import kendalltau
    corr, p_value = kendalltau(data['variable1'], data['variable2'])
    
    • 1
    • 2
  4. 多变量相关性:

    当你有多个变量时,你可以使用PCA(主成分分析)或其他多变量分析方法来探索它们之间的关系。
    
    • 1
    from sklearn.decomposition import PCA
    pca = PCA(n_components=2)
    principal_components = pca.fit_transform(data)
    
    • 1
    • 2
    • 3
  5. 热图分析:

    热图是一种用颜色编码的图形方式,用于可视化矩阵或表格数据的模式和关系。在统计学和数据分析中,热图通常	用于展示变量之间的相关性或样本之间的相似性。
    
    • 1

示例代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr, spearmanr, kendalltau

# 生成一些示例数据
data = {'Variable1': np.random.rand(100),
        'Variable2': np.random.rand(100)}

df = pd.DataFrame(data)

# 使用Pearson相关系数
corr, p_value = pearsonr(df['Variable1'], df['Variable2'])
print(f"Pearson相关系数与p值: {corr},{p_value}")

# 使用Spearman相关系数
corr, p_value = spearmanr(df['Variable1'], df['Variable2'])
print(f"Spearman相关系数与p值: {corr},{p_value}")

# 使用Kendall Tau相关系数
corr, p_value = kendalltau(df['Variable1'], df['Variable2'])
print(f"Kendall Tau相关系数与p值: {corr},{p_value}")

# 创建热图
corr_matrix = df.corr()
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

结果:

Pearson相关系数与p值: 0.005875767472672579,0.9537331455681075
Spearman相关系数与p值: 0.015445544554455444,0.8787747351162334
Kendall Tau相关系数与p值: 0.00686868686868687,0.9193472667217757
  • 1
  • 2
  • 3

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/940798
推荐阅读
相关标签
  

闽ICP备14008679号