当前位置: 代码网 > it编程>编程语言>C/C++ > pandas 相关性和正态性分析的实践

pandas 相关性和正态性分析的实践

2024年07月26日 C/C++ 我要评论
当我们谈论正态性(normality)和相关性(correlation)时,我们实际上在尝试理解数据的分布模式和不同变量之间的关系。让我们先来看看这两个数学概念:正态性(normality)正态性指的

当我们谈论正态性(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 相关性和正态性内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com