如何使用 Pandas 计算相关系数
参考:pandas correlation coefficient
在数据分析中,相关系数是一种衡量两个变量间线性关系强度和方向的统计指标。Pandas 提供了强大的数据处理能力,特别是在计算相关系数方面。本文将详细介绍如何使用 Pandas 计算相关系数,并提供多个示例代码,帮助读者更好地理解和应用。
1. 相关系数简介
相关系数的值范围从 -1 到 1。值为 1 表示完全正相关,值为 -1 表示完全负相关,而 0 表示没有线性关系。常见的相关系数包括皮尔逊相关系数、斯皮尔曼等级相关系数和肯德尔等级相关系数。
1.1 皮尔逊相关系数
皮尔逊相关系数衡量的是两个变量之间的线性相关性。其计算公式为协方差除以两个变量的标准差。
1.2 斯皮尔曼等级相关系数
斯皮尔曼相关系数是基于等级的非参数相关系数,适用于评估两个变量的单调关系。
1.3 肯德尔等级相关系数
肯德尔等级相关系数也是一种基于等级的非参数相关系数,它通过考虑配对观察值的一致性和不一致性来评估两个变量之间的关系。
2. 使用 Pandas 计算相关系数
在 Pandas 中,可以使用 DataFrame.corr()
方法来计算相关系数矩阵。该方法默认计算皮尔逊相关系数,但也可以通过参数选择其他类型的相关系数。
示例代码 1: 创建 DataFrame
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 2, 3, 2]
}
df = pd.DataFrame(data)
print(df)
Output:
示例代码 2: 计算皮尔逊相关系数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 2, 3, 2]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr()
print(correlation_matrix)
Output:
示例代码 3: 计算斯皮尔曼相关系数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 2, 3, 2]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr(method='spearman')
print(correlation_matrix)
Output:
示例代码 4: 计算肯德尔相关系数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 2, 3, 2]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr(method='kendall')
print(correlation_matrix)
Output:
示例代码 5: 选择性计算相关系数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [2, 3, 2, 3, 2]
}
df = pd.DataFrame(data)
correlation_matrix = df[['A', 'B']].corr()
print(correlation_matrix)
Output:
示例代码 6: 使用皮尔逊相关系数分析股票数据
import pandas as pd
data = {
'Google': [1129, 1132, 1134, 1152, 1152],
'Apple': [191, 192, 190, 194, 195]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr()
print(correlation_matrix)
Output:
示例代码 7: 多变量相关系数矩阵
import pandas as pd
data = {
'Temperature': [22, 24, 24, 25, 23],
'Humidity': [30, 35, 33, 32, 34],
'WindSpeed': [10, 12, 11, 9, 10]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr()
print(correlation_matrix)
Output:
示例代码 8: 使用肯德尔方法比较不同数据集
import pandas as pd
data1 = {
'Math': [90, 91, 85, 88, 86],
'Physics': [92, 89, 85, 87, 90]
}
data2 = {
'Math': [101, 100, 102, 104, 102],
'Physics': [99, 100, 101, 103, 104]
}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
correlation_matrix1 = df1.corr(method='kendall')
correlation_matrix2 = df2.corr(method='kendall')
print(correlation_matrix1)
print(correlation_matrix2)
Output:
示例代码 9: 股票市场相关性分析
import pandas as pd
data = {
'NASDAQ': [7400, 7500, 7550, 7600, 7700],
'S&P 500': [2700, 2720, 2730, 2750, 2770]
}
df = pd.DataFrame(data)
correlation_matrix = df.corr()
print(correlation_matrix)
Output:
示例代码 10: 时间序列数据的相关性分析
import pandas as pd
data = {
'Month': ['January', 'February', 'March', 'April', 'May'],
'Sales': [200, 210, 215, 210, 205],
'Expenses': [150, 160, 165, 160, 155]
}
df = pd.DataFrame(data)
correlation_matrix = df[['Sales', 'Expenses']].corr()
print(correlation_matrix)
Output:
以上示例展示了如何使用 Pandas 计算不同类型的相关系数,并应用于多种数据集。通过这些示例,读者可以更好地理解相关系数的计算方法及其在实际数据分析中的应用。