加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

用Python进行相关性分析,5行代码就够了

发布时间:2019-10-11 21:16:10 所属栏目:建站 来源:宋天龙
导读:1.相干和因果是一回事吗 相干性不便是因果。用x1和x2作为两个变量举办表明,相干意味着x1和x2是逻辑上的并列相干相关,而因果接洽可以表明为由于x1以是x2(或由于x2以是x1)的逻辑相关,二者是完全差异的。 用一个运营示例来声名二者的相关:做商品促销勾当
副问题[/!--empirenews.page--]

1.相干和因果是一回事吗

相干性不便是因果。用x1和x2作为两个变量举办表明,相干意味着x1和x2是逻辑上的并列相干相关,而因果接洽可以表明为由于x1以是x2(或由于x2以是x1)的逻辑相关,二者是完全差异的。

用Python举办相干性说明,5行代码就够了

用一个运营示例来声名二者的相关:做商品促销勾那时,凡是城市以较低的价值举办贩卖,以此来实现较高的商品销量;跟着商品贩卖的晋升,也给线下物流配送系统带来了更大的压力,在该进程中凡是会导致商品损坏量的增进。

本案例中,商品低价与损坏量增进并不是因果相关,即不能说由于商品价值低以是商品损坏量增进;二者的真实相关是都是基于促销这个大配景下,低价和损坏量都是基于促销发生的。

相干性的真实代价不是用来说明“为什么”的,而是通过相干性来描写无法表明的题目背后真正成因的要领。相干性的真正的代价是能知道“是什么”,即无论通过何种身分对功效发生影响,最终呈现的纪律就是二者会一路增进或降档寥。

如故是上面的案例,通过相干性说明我们可以知道,商品价值低和损坏量增进是相伴产生的,这意味着当价值低的时辰(凡是是做贩卖勾当,也有也许产物质量题目、物流配送题目、包装题目等),我们就想到损坏量也许也会增进。可是到底由什么导致的损坏量增进,是无法通过相干性来获得的。

2.相相关数低就是不相干吗

R(相相关数)低就是不相干吗?着实不是。

R的取值可觉得负,R=-0.8代表的相干性要高于R=0.5。负相干只是意味着两个变量的增添趋势相反,因此必要看R的绝对值来判定相干性的强弱。

纵然R的绝对值低,也不必然声名变量间的相干性低,缘故起因是相干性权衡的仅仅是变量间的线性相干相关,变量间除了线性相关外,还包罗指数相关、多项式相关、幂相关等,这些“非线性相干”的相干性不在R(相干性说明)的权衡范畴之内。

3.代码实操:Python相干性说明

本示例中,将行使Numpy举办相干性说明。源文件data5.txt位于“附件-chapter3”中。附件下载地点:

http://www.dataivy.cn/book/python_book_v2.zip

  1. import numpy as np # 导入库 
  2. data = np.loadtxt('data5.txt', delimiter='t') # 读取数据文件 
  3. x = data[:, :-1] # 切分自变量 
  4. correlation_matrix = np.corrcoef(x, rowvar=0) # 相干性说明 
  5. print(correlation_matrix.round(2)) # 打印输出相干性功效 

示例中实现进程如下:

  1. 先导入Numpy库;
  2. 行使Numpy的loadtxt要领读取数据文件,数据文件以tab脱离;
  3. 矩阵切片,切分出自变量用来做相干性说明;
  4. 行使Numpy的corrcoef要领做相干性说明,通过参数rowvar = 0节制对列做说明;
  5. 打印输出相干性矩阵,行使round要领保存2位小数。功效如下:
  1. [[ 1. -0.04 0.27 -0.05 0.21 -0.05 0.19 -0.03 -0.02] 
  2.  [-0.04 1. -0.01 0.73 -0.01 0.62 0. 0.48 0.51] 
  3.  [ 0.27 -0.01 1. -0.01 0.72 0. 0.65 0.01 0.02] 
  4.  [-0.05 0.73 -0.01 1. 0.01 0.88 0.01 0.7 0.72] 
  5.  [ 0.21 -0.01 0.72 0.01 1. 0.02 0.91 0.03 0.03] 
  6.  [-0.05 0.62 0. 0.88 0.02 1. 0.03 0.83 0.82] 
  7.  [ 0.19 0. 0.65 0.01 0.91 0.03 1. 0.03 0.03] 
  8.  [-0.03 0.48 0.01 0.7 0.03 0.83 0.03 1. 0.71] 
  9.  [-0.02 0.51 0.02 0.72 0.03 0.82 0.03 0.71 1. ]] 

相干性矩阵的左侧和顶部都是相对的变量,从左到右、从上到虾??是列1到列9。从功效看出:

  • 第5列和第7列相干性较高,系数到达0.91。
  • 第4列和第6列相干性较高,系数到达0.88。
  • 第8列和第6列相干性较高,系数到达0.83。

为了更好地展示相干性功效,我们可以共同Matplotlib展示图像。代码如下:

  1. fig = plt.figure() # 挪用figure建设一个画图工具 
  2. ax = fig.add_subplot(111) # 配置1个子网格并添加子网格工具 
  3. hot_img = ax.matshow(np.abs(correlation_matrix), vmin=0, vmax=1) 
  4.  # 绘制热力求,值域从0到1 
  5. fig.colorbar(hot_img) # 为热力求天生颜色渐变条 
  6. ticks = np.arange(0, 9, 1) # 天生0~9,步长为1 
  7. ax.set_xticks(ticks) # 天生x轴刻度 
  8. ax.set_yticks(ticks) # 配置y轴刻度 
  9. names = ['x' + str(i) for i in range(x.shape[1])] # 天生坐标轴标签笔墨 
  10. ax.set_xticklabels(names) # 天生x轴标签 
  11. ax.set_yticklabels(names) # 天生y轴标签 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读