使用Python创建一个相关的矩阵
相关矩阵是一个包含变量之间相关系数的表格。表中的每个单元格代表两个变量之间的相关性。相关矩阵用于总结数据,作为高级分析的诊断,并作为更高级分析的输入。相关性的两个关键组成部分是:
- 幅度:幅度越大,相关性越强。
- 符号:如果是正数,则有规律的相关。如果是负数,则是反相关。
使用以下两个库创建了一个相关矩阵。
1.Numpy库
2.Pandas库
方法1:使用Numpy库创建一个相关矩阵。
Numpy库使用corrcoef()函数,返回一个2×2的矩阵。该矩阵由x与x(0,0)、x与y(0,1)、y与x(1,0)和y与y(1,1)的相关关系组成。我们只关心x与y的相关性,即单元格(0,1)或(1,0)。请看下面的例子。
例子1:假设一家冰激凌店记录了冰激凌的总销量与当天的温度。
import numpy as np
# x represents the total sale in
# dollars
x = [215, 325, 185, 332, 406, 522, 412,
614, 544, 421, 445, 408],
# y represents the temperature on
# each day of sale
y = [14.2, 16.4, 11.9, 15.2, 18.5, 22.1,
19.4, 25.1, 23.4, 18.1, 22.6, 17.2]
# create correlation matrix
matrix = np.corrcoef(x, y)
# print matrix
print(matrix)
输出
[[1. 0.95750662]
[0.95750662 1. ]]
从上述矩阵中,如果我们看到单元格(0,1)和(1,0)都有相同的值,等于0.95750662,这使我们得出结论,只要温度高,我们就有更多的销售。
例子2:假设我们得到了男孩的葡萄糖水平与年龄的关系。找出年龄(x)与体内葡萄糖水平(y)之间的相关性。
import numpy as np
# x represents the age
x = [43, 21, 25, 42, 57, 59]
# y represents the glucose level
# corresponding to that age
y = [99, 65, 79, 75, 87, 81]
# correlation matrix
matrix = np.corrcoef(x, y)
print(matrix)
输出
[[1. 0.5298089]
[0.5298089 1. ]]
从上面的相关矩阵来看,0.5298089或52.98%,意味着该变量具有适度的正相关关系。
方法2:使用Pandas库创建相关矩阵
为了创建一个给定数据集的相关矩阵,我们在数据集上使用corr()方法。
示例 1:
import pandas as pd
# collect data
data = {
'x': [45, 37, 42, 35, 39],
'y': [38, 31, 26, 28, 33],
'z': [10, 15, 17, 21, 12]
}
# form dataframe
dataframe = pd.DataFrame(data, columns=['x', 'y', 'z'])
print("Dataframe is : ")
print(dataframe)
# form correlation matrix
matrix = dataframe.corr()
print("Correlation matrix is : ")
print(matrix)
输出:
Dataframe is :
x y z
0 45 38 10
1 37 31 15
2 42 26 17
3 35 28 21
4 39 33 12
Correlation matrix is :
x y z
x 1.000000 0.518457 -0.701886
y 0.518457 1.000000 -0.860941
z -0.701886 -0.860941 1.000000
示例 2:
import pandas as pd
# create dataframe from file
dataframe = pd.read_csv("C:\\GFG\\sample.csv")
# show dataframe
print(dataframe)
# use corr() method on dataframe to
# make correlation matrix
matrix = dataframe.corr()
# print correlation matrix
print("Correlation Matrix is : ")
print(matrix)
输出:
Correlation Matrix is :
AVG temp C Ice Cream production
AVG temp C 1.000000 0.718032
Ice Cream production 0.718032 1.000000