python里皮尔逊相关系数
时间: 2023-10-14 17:30:26 浏览: 94
皮尔逊相关系数是用来衡量两个变量之间线性相关程度的统计量,它的取值范围在-1到1之间。如果相关系数为正,则两个变量正相关;如果相关系数为负,则两个变量负相关;如果相关系数为0,则两个变量不相关。
在Python中,可以使用scipy库的pearsonr()函数来计算皮尔逊相关系数。该函数需要两个参数,分别是待计算的两个变量,它会返回两个值:皮尔逊相关系数和p-value。
下面是一个简单的例子:
```python
import scipy.stats as stats
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
corr, p_value = stats.pearsonr(x, y)
print("Pearson correlation coefficient:", corr)
print("p-value:", p_value)
```
输出结果为:
```
Pearson correlation coefficient: 1.0
p-value: 0.0
```
因为x和y是完全正相关的,所以皮尔逊相关系数为1。p-value为0,表示在显著性水平为0.05的情况下,拒绝两个变量不相关的假设。
相关问题
python实现皮尔逊相关系数
要在Python中实现皮尔逊相关系数,你可以使用`numpy`库的`corrcoef`函数。以下是一个简单的示例代码:
```python
import numpy as np
# 创建两个数组作为示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 4, 3, 2, 1])
# 计算皮尔逊相关系数
corr_matrix = np.corrcoef(x, y)
corr_coefficient = corr_matrix[0, 1]
print("皮尔逊相关系数:", corr_coefficient)
```
在这个示例中,我们创建了两个示例数据数组`x`和`y`。然后,我们使用`np.corrcoef`函数计算两个数组之间的相关系数矩阵。最后,我们从矩阵中提取出皮尔逊相关系数并进行打印输出。
请注意,`np.corrcoef`函数接受的参数是一维数组或二维数组,所以你可以将多个一维数组作为参数传递给该函数来计算它们之间的相关系数。
python绘制皮尔逊相关系数图
以下是使用Python绘制皮尔逊相关系数图的示例代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 计算皮尔逊相关系数并绘制热力图
sns.heatmap(df.corr(method='pearson'), linewidths=0.1, vmax=1.0, square=True, linecolor='white', annot=True)
plt.title('皮尔逊热力图')
plt.show()
```
这段代码使用了`seaborn`库和`matplotlib`库来绘制热力图。首先,使用`df.corr(method='pearson')`计算数据框`df`中的皮尔逊相关系数。然后,使用`sns.heatmap()`函数绘制热力图,其中`linewidths`参数设置热力图中每个方块的边框宽度,`vmax`参数设置颜色映射的最大值,`square`参数设置方块的形状为正方形,`linecolor`参数设置边框颜色,`annot`参数设置是否在方块中显示相关系数的数值。最后,使用`plt.title()`函数设置图表的标题,并使用`plt.show()`函数显示图表。
阅读全文