origin相关性图(皮尔逊相关系数)怎么分析
时间: 2025-05-31 10:32:30 浏览: 32
### 使用皮尔逊相关系数分析数据的相关性图
皮尔逊相关系数是一种衡量两个变量之间线性关系强度和方向的统计量[^2]。其取值范围为 [-1, 1],其中正值表示正相关,负值表示负相关,而接近于零则表明两者几乎没有线性关系[^3]。
以下是基于 Python 的实现方式,展示如何利用皮尔逊相关系数生成并分析数据的相关性图:
#### 数据准备
为了演示目的,我们将创建一组随机数据作为示例。这些数据可以通过 `numpy` 和 `pandas` 库轻松生成。
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 创建样本数据集
np.random.seed(0)
data = {
'X': np.random.randn(100),
'Y': 2 * np.random.randn(100) + 3,
'Z': np.random.uniform(-1, 1, size=100)
}
df = pd.DataFrame(data)
print(df.head())
```
#### 计算皮尔逊相关系数矩阵
通过 Pandas 提供的功能可以直接计算各列间的皮尔逊相关系数矩阵。
```python
# 计算皮尔逊相关系数矩阵
correlation_matrix = df.corr(method='pearson')
print(correlation_matrix)
```
此代码片段会返回一个包含每一对变量间皮尔逊相关系数的矩阵[^4]。
#### 可视化相关性图
Seaborn 是一个强大的绘图库,特别适合用来绘制热力图 (Heatmap),这有助于直观理解不同变量之间的相关程度。
```python
# 绘制热力图
plt.figure(figsize=(8, 6))
sns.heatmap(
correlation_matrix,
annot=True, # 显示具体数值
fmt=".2f", # 数字保留两位小数
cmap="coolwarm", # 颜色主题
cbar=True # 是否显示颜色条
)
plt.title("Pearson Correlation Heatmap")
plt.show()
```
此外,还可以单独针对两组特定的数据绘制散点图来进一步验证它们是否存在明显的线性趋势。
```python
# 散点图查看 X 和 Y 的分布情况
plt.scatter(df['X'], df['Y'])
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Scatter Plot of Variable X vs Y')
plt.grid(True)
plt.show()
# 输出具体的 Pearson 相关系数
from scipy.stats import pearsonr
coeff, p_value = pearsonr(df['X'], df['Y'])
print(f"Pearson coefficient between X and Y: {coeff:.2f}, P-value: {p_value}")
```
以上步骤展示了完整的流程:从原始数据到最终的结果解释以及图形表现形式[^1]。
---
阅读全文
相关推荐


















