数据分析方法和思维—相关性分析法

article/2025/10/15 0:19:29

    

01

            写在前面

在数据分析的问题中, 经常会遇见的一种问题就是相关的问题, 比如抖音短视频的产品经理经常要来问留存(是否留下来)和观看时长, 收藏的次数, 转发的次数, 关注的抖音博主数等等是否有相关性, 相关性有多大。

因为只有知道了哪些因素和留存比较相关, 才知道怎么去优化从产品的方向去提升留存率, 比如 如果留存和收藏的相关性比较大 那么我们就要引导用户去收藏视频, 从而提升相关的指标, 

除了留存的相关性计算的问题, 还有类似的需要去计算相关性的问题, 比如淘宝的用户 他们的付费行为和哪些行为相关, 相关性有多大, 这样我们就可以挖掘出用户付费的关键行为

这种问题就是相关性量化, 我们要找到一种科学的方法去计算这些因素和留存的相关性的大小, 

这种方法就是相关性分析

    

02

            什么是相关性分析

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析(官方定义)

简单来说, 相关性的方法主要用来分析两个东西他们之间的相关性大小

相关性大小用相关系数r来描述,关于r的解读:(从知乎摘录的)

(1)正相关:如果x,y变化的方向一致,如身高与体重的关系,r>0;一般地,

·|r|>0.95 存在显著性相关;

·|r|≥0.8 高度相关;

·0.5≤|r|<0.8 中度相关;

·0.3≤|r|<0.5 低度相关;

·|r|<0.3 关系极弱,认为不相关

(2)负相关:如果x,y变化的方向相反,如吸烟与肺功能的关系,r<0;

(3)无线性相关:r=0, 这里注意, r=0 不代表他们之间没有关系, 可能只是不存在线性关系。

下面用几个图来描述一下 不同的相关性的情况

第一张图r=-0.92 <0 是说明横轴和纵轴的数据呈现负相关, 意思就是随着横轴的数据值越来越大纵轴的数据的值呈现下降的趋势,  从r的绝对值为0.92>0.8 来看, 说明两组数据的相关性高度相关

同样的, 第二张图 r=0.88 >0 说明纵轴和横轴的数据呈现正向的关系, 随着横轴数据的值越来越大, 纵轴的值也随之变大, 并且两组数据也是呈现高度相关

        

    

03

            如何实现相关性分析

前面已经讲了什么是相关性分析方法, 那么我们怎么去实现这种分析方法呢, 以下先用python 实现 

1.  首先是导入数据集, 这里以tips 为例

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
## 定义主题风格
sns.set(style="darkgrid")## 加载tips
tips = sns.load_dataset("tips")

2. 查看导入的数据集情况,

字段分别代表 

total_bill: 总账单数

tip: 消费数目

sex: 性别

smoker: 是否是吸烟的群众

day: 天气

time: 晚餐 dinner, 午餐lunch

size: 顾客数

tips.head() # 查看数据的前几行

3. 最简单的相关性计算

tips.corr()

4. 任意看两个数据之间相关性可视化,比如看 total_bill 和 tip 之间的相关性,就可以如下操作进行可视化

## 绘制图形,根据不同种类的三点设定图注
sns.relplot(x="total_bill", y="tip",  data=tips);
plt.show()

从散点图可以看出账单的数目和消费的数目基本是呈正相关, 账单的总的数目越高, 给得消费也会越多

5. 如果要看全部任意两两数据的相关性的可视化

sns.pairplot(tips)

6. 如果要分不同的人群, 吸烟和非吸烟看总的账单数目total_bill和小费tip 的关系。

sns.relplot(x="total_bill", y="tip", hue="smoker",  data=tips)# 利用hue 进行区分
plt.show()

7. 同样的 区分抽烟和非抽烟群体看所有数据之间的相关性,我们可以看到

对于男性和女性群体, 在小费和总账单金额的关系上, 可以同样都是账单金额越高的时候, 小费越高的例子上, 男性要比女性给得小费更大方

在顾客数量和小费的数目关系上, 我们可以发现, 同样的顾客数量, 男性要比女性给得小费更多

在顾客数量和总账单数目关系上, 也是同样的顾客数量, 男性要比女性消费更多

sns.pairplot(tips ,hue ='sex')

    

04

            实战案例

问题: 

影响B 站留存的相关的关键行为有哪些?

这些行为和留存哪一个相关性是最大的?

分析思路: 

  1.  找全与留存相关的行为

  2. 计算这些行为和留存的相关性大小

首先规划好完整的思路, 哪些行为和留存相关, 然后利用这些行为+时间维度 组成指标, 因为不同的时间跨度组合出来的指标, 意义是不一样的, 比如登录行为就有 7天登录天数, 30天登录天数

第二步计算这些行为和留存的相关性, 我们用1 表示会留存 0 表示不会留存

那么就得到 用户id + 行为数据+ 是否留存 这几个指标组成的数据

然后就是相关性大小的计算

import matplotlib.pyplot as plt
import seaborn as sns
retain2 = pd.read_csv("d:/My Documents/Desktop/train2.csv") # 读取数据
retain2 = retain2.drop(columns=['click_share_ayyuid_ucnt_days7']) # 去掉不参与计算相关性的列
plt.figure(figsize=(16,10), dpi= 80)
# 相关性大小计算
sns.heatmap(retain2.corr(), xticklabels=retain2.corr().columns, yticklabels=retain2.corr().columns, cmap='RdYlGn', center=0, annot=True)# 可视化
plt.title('Correlogram of retain', fontsize=22)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.show()

图中的数字值就是代表相关性大小 r 值 所以从图中我们可以发现

留存相关最大的四大因素:

•30天或者7天登录天数(cor: 0.66)

•30天观看品类个数(cor: 0.44)

•30天观看主播数 (cor: 0.37)

•30天日均观看时长(cor: 0.26)

●可以从一份超市数据集中分析出啥?

●10大Python数据可视化库!

后台回复“入群”即可加入小z数据干货交流群

http://chatgpt.dhexx.cn/article/eB3ASeSy.shtml

相关文章

python相关性分析_python实践统计学中的三大相关性系数,并绘制相关性分析的热力图...

本文首发地址&#xff1a; https://yishuihancheng.blog.csdn.net/article/details/83547648 欢迎关注我的博客【Together_CZ】&#xff0c;我是沂水寒城&#xff01; 今天我简单地使用了scipy模块进行了统计学中三大相关性分析方法&#xff08;皮尔森相关性系数、斯皮尔曼相…

数据相关性分析笔记

一、数据相关性的含义 数据类型 数据可以是连续的值&#xff0c;比如声音、图像&#xff0c;称为模拟数据。也可以是离散的&#xff0c;如符号、文字&#xff0c;称为数字数据。(ppt)数值型数据、分类型数据、定序数据。 数据相关性 数据相关性是指数据之间存在某种关系&#…

ArcGIS栅格数据图层空间相关性分析方法

ArcGIS栅格数据图层空间相关性分析方法 也不知道严谨不严谨&#xff0c;先Mark吧欸。 矢量的空间相关分析可以通过Spatial Join以后&#xff0c;导出属性表到EXCEL中&#xff0c;进行相关分析Correlation Analysis.  而两个栅格数据图层直接能不能直接在ArcMap中进行相关分…

IBM SPSS Statistics常用的相关性分析方法

灵活运用IBM SPSS Statistics做数据的统计和分析是每个数据分析师都应该掌握的技能&#xff0c;这款软件为用户提供了全面的数据分析方法&#xff0c;可以解决我们在数据分析过程中遇到的各种难题。 接下来小编就为大家介绍一下SPSS相关性分析的方法。 图1&#xff1a;SPSS软件…

神经网络相关性分析方法,神经网络相关性分析图

1、bp神经网络怎么确定输入与输出是正相关还是负相关&#xff1f; 想了解输入输出关系你可以求协方差&#xff0c;进而求peason相关系数 当然你也可以求spearman 等&#xff0c;看他们的相关度即可&#xff0c;正负就代表是正相关还是负相关&#xff0c;具体值代表相关性度量 …

重剑无锋!15种相关分析算法,总有一款适合你!

相关系数&#xff08;Correlation coefficient&#xff09;可用于评估两个变量之间的线性关系&#xff0c;它的值在-1到1之间&#xff0c;-1或1代表完美的负相关和正相关&#xff0c;0表示不存在线性关系。 计算相关系数的方法种类繁多&#xff0c;各有自己的定义以及适用情况…

Keil MDK5中对结构体变量使用结构体成员运算符.后不自动显示结构体成员

MDK5在对结构体变量使用结构体成员运算符.时是会显示结构体成员的&#xff0c;如图所示&#xff1a; 但是有时候使用结构体成员运算符.时并不会出现结构体成员&#xff0c;导致这个问题的原因是没有将自己写的文件添加到工程之中&#xff0c;解决办法如下&#xff1a; 检查是…

【C语言】结构体的创建和使用与结构体内存对齐

结构体创建 前言结构体的声明全局声明特殊声明 结构体变量定义与成员初始化成员类型变量定义匿名结构体变量定义 结构体的自引用结构体成员的访问成员初始化操作符结构体传参 结构体内存对齐对齐数对齐规则 前言 在生活中我们要描述一个人时是不是要知道他的名字、性别、年龄啊…

C语言struct结构体内存

对齐规则&#xff1a; &#xff08;i&#xff09;结构体内 成员存储位置 的起始地址为成员自身长度与默认对齐值 中的较小者的整倍数。 &#xff08;ii&#xff09;结构体A嵌套在结构体B内&#xff0c;则A在B内存储位置起始地址为 A内成员最长长度 的整数倍。 &#xff08;iii&…

嵌入式系统开发:C语言中的位结构体

在嵌入式开发中&#xff0c;经常需要表示各种系统状态&#xff0c;位结构体的出现大大方便了我们&#xff0c;尤其是在进行一些硬件层操作和数据通信时。但是在使用位结构体的过程中&#xff0c;是否深入思考一下它的相关属性&#xff1f;是否真正用到它的便利性&#xff0c;来…

keil中,编写结构体成员运算符(.)后不能自动弹出结构体成员

keil中&#xff0c;编写结构体成员运算符&#xff08;.&#xff09;后不能自动弹出结构体成员 解决办法&#xff1a; 1、确保源文件里面包含sys.h/stm32f10x.h文件&#xff08;或者源文件里面的头文件也行&#xff09; 2、把源文件路径加载到keil里面&#xff08;魔术棒->C/…

c++中的结构体案例

结构体案例一 案例描述&#xff1a;学生做毕设项目&#xff0c;每名老师有5个学生&#xff0c;总共有3个老师&#xff0c;需求如下&#xff1a; 设计学生和老师的结构体&#xff0c;在老师的结构体中&#xff0c;有老师的姓名和一个存放了5名学生的数组作为成员学生的成员有姓…

C语言:位结构体

位结构体是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构体比按位运算符更加方便。 一、位结构—简介 有些信息在存储时&#xff0c;并不需要占用一个完整的字节&#xff0c; 而只需占几个或一个二进制位。 例如在存放一个开关量时&#xff0c;只有0和1 两种状…

C 语言编程 — 构造数据类型 — 结构体(struct)

目录 文章目录 目录结构体声明一个结构体类型定义一个结构体类型的变量定义一个结构体类型的指针变量结构体的成员结构体的内存分布 结构体 结构体&#xff08;Structure&#xff09;是一种由不同类型的数据成员组成的数据类型。通过定义结构体&#xff0c;我们可以将多个不同…

C语言结构体和其他构造数据类型详解

结构体和其他构造数据类型 结构体 “结构”是一种构造类型&#xff0c;它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构既然是一种“构造”而成的数据类型&#xff0c;那么说明和使用之前必须先定义它&#xff0c;也就是构造它。 结…

C的实用笔记38——结构体的引入和定义

1.为什么要用结构体&#xff1f; 0、原因&#xff1a;实际开发中&#xff0c;我们需要将不同类型的数据组合成一个整体&#xff0c;这就是结构体。结构体是自创的类型。 1、查找一名学生信息的两种方案&#xff1a;在EXCEL表格和数据库中经常有这种情况&#xff0c;比方说一个…

7.IDA-创建结构体

结构体分类 结构体的一个显著特点在于&#xff0c;结构体中的数据字段是通过名称访问&#xff0c;而不是像数组那样通过索引访问。不好的是&#xff0c;字段名称被编译器转换成了数字偏移量。结果&#xff0c;在反汇编代码清单中&#xff0c;访问结构体字段的方式看起来与使用…

结构体的初步认识以及其内存的计算

目录 前言 结构体的定义 结构体的自引用 结构体的初始化 结构体内存的计算 前言 我们知道&#xff0c;通过不同的数据类型我们可以表达不同意义的数据&#xff0c;如长度宽度面积只需要定义一个 int 类型的数据就可以符合大部分的需求。但是&#xff0c;有些东西自存在就是一…

IDA创建结构体方法

1. ida是最好用的逆向分析工具 2.问题 如果你在使用IDA分析时遇到大量的结构体指针偏移形式的变量&#xff0c;肯定想根据自己的分析重命名结构体各项。 3.定义结构体 这是需要先找到结构体初始化的地方 这里记录了每一项的偏移量&#xff0c;记录了结构体总大小Ox110uLL。 …

手把手教你写单片机的结构体

手把手教你写单片机的结构体 摘要&#xff1a;听说还有好多学单片机的小伙伴不会用结构体&#xff1f;指针和结构体是学单片机必须要掌握的&#xff0c;如果你C语言掌握的不牢&#xff0c;单片机根本学不到精髓&#xff0c;只能完成一些低级的项目。看得懂结构体并且能够灵活运…