pandas 相关性和正态性分析的实践
作者:程序那点事hhu
当我们谈论正态性(Normality)和相关性(Correlation)时,我们实际上在尝试理解数据的分布模式和不同变量之间的关系,本文就来介绍一下pandas 相关性和正态性的实践,感兴趣的可以了解一下
当我们谈论正态性(Normality)和相关性(Correlation)时,我们实际上在尝试理解数据的分布模式和不同变量之间的关系。让我们先来看看这两个数学概念:
正态性(Normality)
正态性指的是数据的分布模式是否符合正态分布(也称为高斯分布)。正态分布是一种连续概率分布,具有以下特征:
- 对称性:正态分布是关于其均值对称的,也就是说,它的左半部分和右半部分是镜像对称的。
- 集中性:正态分布的数据集中在其均值周围,并且随着距离均值的增加而逐渐减少。
- 确定性:正态分布由两个参数完全确定,即均值(μ)和标准差(σ)。
正态性检验通常用于判断一个数据集是否来自正态分布。通常使用的方法包括观察直方图、Q-Q图(Quantile-Quantile Plot)以及一些统计检验,比如Shapiro-Wilk检验和Kolmogorov-Smirnov检验。
示例代码:
import pandas as pd import numpy as np from scipy.stats import shapiro # 创建示例数据 data = np.random.normal(loc=0, scale=1, size=1000) series = pd.Series(data) # Shapiro-Wilk检验 statistic, p_value = shapiro(series) # 解释检验结果 if p_value > 0.05: print("数据可能符合正态分布") else: print("数据不符合正态分布")
相关性(Correlation)
相关性描述的是两个变量之间的关系程度。相关性的测量通常使用相关系数来完成,最常见的是皮尔逊相关系数。皮尔逊相关系数的取值范围在-1到1之间:
- 当相关系数为1时,表示完全正相关。这意味着两个变量的值以相同的比例增加或减少。
- 当相关系数为-1时,表示完全负相关。这意味着两个变量的值以相反的方向变化。
- 当相关系数接近于0时,表示变量之间没有线性关系。
需要注意的是,相关性并不意味着因果关系,即使两个变量高度相关,也不代表其中一个变量的变化导致了另一个变量的变化。
示例代码:
import pandas as pd # 创建示例数据 data = { 'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1], 'C': [1, 1, 2, 2, 3] } df = pd.DataFrame(data) # 计算相关系数 correlation_matrix = df.corr() print("相关系数矩阵:") print(correlation_matrix) 相关性和正态性综合性示例: import pandas as pd import numpy as np from scipy.stats import shapiro from scipy.stats import pearsonr # 创建示例数据集 data = { 'A': np.random.normal(loc=0, scale=1, size=1000), 'B': np.random.normal(loc=0, scale=1, size=1000), 'C': np.random.normal(loc=0, scale=1, size=1000) } df = pd.DataFrame(data) # 正态性分析 for column in df.columns: series = df[column] statistic, p_value = shapiro(series) if p_value > 0.05: print(f"列 '{column}' 可能符合正态分布 (p-value={p_value:.4f})") else: print(f"列 '{column}' 不符合正态分布 (p-value={p_value:.4f})") # 相关性分析 correlation_matrix = df.corr() print("\n相关系数矩阵:") print(correlation_matrix) # 特定变量之间的相关性 for col1 in df.columns: for col2 in df.columns: if col1 != col2: correlation, p_value = pearsonr(df[col1], df[col2]) print(f"{col1} 和 {col2} 的相关系数为 {correlation:.4f} (p-value={p_value:.4f})")
这个示例代码首先创建了一个包含三个变量的数据集,并对每个变量进行了正态性分析,然后计算了变量之间的相关系数。最后,它还输出了特定变量之间的相关性及其显著性水平(p-value)。通过这个更丰富的示例,我们可以更好地理解如何使用Pandas进行正态性分析和相关性分析,并且了解了这些分析的结果如何影响我们对数据的理解和解释。
到此这篇关于pandas 相关性和正态性分析小结的文章就介绍到这了,更多相关pandas 相关性和正态性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!