漏斗分析Python代码
不同页面用户流失情况 流失情况的定义:如果某个页面的转化率低,说明用户在这个页面流失严重。 转化率的定义:下一页面用户数/当前页面用户数 定位问题页面:可以通过 convertion 列表的值找出转化率低的步骤,从而定位需要优化的页面或功能。 假设各页面用户数分别为: home_page: 1000 listing_page: 800 product_page: 500 payment_page: 300 confirmation_page: 150 计算结果: 转化率的定义:下一页面用户数/当前页面用户数 listing_page 转化率: 800/1000 = 0.8 product_page 转化率: 500/800 = 0.625 payment_page 转化率: 300/500 = 0.6 confirmation_page 转化率: 150/300 = 0.5 可以看到,转化率从首页到确认页逐渐降低,其中 product_page 和 payment_page 流失尤为明显。 使用场景 电商:分析从浏览商品到最终下单的流失情况。 应用程序:分析用户从注册到活跃的转化路径。 运营优化:定位流失严重的步骤,优化体验提升转化率。 convertion = [] page = ['home_page','listing_page','product_page','payment_page','confirmation_page'] for col in range(len(page)-1): print(user_info[page[col+1]].sum()) print(user_info[page[col]].sum()) convertion.append(user_info[page[col+1]].sum() / user_info[page[col]].sum()) >> sample output >> [0.8, 0.625,0.6,0.5] 漏斗分析 - Device 维度 device_funnel = user_info....
窗口函数
<窗口函数> over (partiton by <被分组的字段> order by <被排序的字段>) as <被排序的字段> <窗口函数>:为自己需要的窗口函数 <被分组的字段>:需要对某一字段进行开窗口(分组) <被排序的字段>:需要增加的排序要求(按需求添加) <被排序的字段>:就是一个名字
SQLNotes
单双引号 单引号、双引号在不同的数据库管理系统中,有不同的含义和用途。 它们在SQL语法中通常用于字符串、标识符(如表名、列名)以及字段分隔符等,但不同的数据库可能会在这方面有所不同。 单引号 (’) 单引号通常用于表示字符串文字(literal)。在绝大多数数据库中,单引号是字符串的标准界定符。 MySQL、SQL Server、PostgreSQL、Oracle 等:单引号用于包围字符串字面量。 示例: SELECT * FROM users WHERE username = 'john_doe'; 双引号 (") 双引号的用途在不同数据库中有所不同,通常与标识符(如列名、表名)相关,但在某些数据库中,它的行为是不同的。 在不同数据库中的含义: MySQL: 双引号:默认情况下,MySQL 使用 反引号()来包围标识符(如表名、列名等)。但如果启用了 ANSI_QUOTES` 模式,那么 双引号 可以用来标识标识符。 反引号(`):用于包围标识符(如列名、表名、数据库名),以避免与保留字冲突。 SELECT `select`, `from` FROM `order`; SQL Server: 双引号:SQL Server 也支持使用双引号来包围标识符(如表名和列名),但默认情况下,标识符使用 方括号 ,而不是双引号。 SELECT "column_name" FROM "table_name"; 但 SQL Server 默认情况下不会识别双引号作为标识符的界定符,除非启用了 QUOTED_IDENTIFIER 设置。 SET QUOTED_IDENTIFIER ON; PostgreSQL: 双引号:在 PostgreSQL 中,双引号用于区分标识符(如列名、表名等)。如果标识符包含大写字母或与SQL关键字冲突,可以使用双引号进行转义。 SELECT "Column Name" FROM "My Table"; PostgreSQL 是大小写敏感的,因此 “MyColumn” 和 “mycolumn” 是不同的标识符。...
A/B Testing Example
Scenario: Suppose we have a website and want to test whether a new button color (Version B) performs better than the current one (Version A) in terms of click-through rate (CTR). Define Hypotheses: (H_0): The CTR of Version B ≤ the CTR of Version A. (H_1): The CTR of Version B > the CTR of Version A (one-tailed test). Group Assignment: Randomly assign 1,000 users to each version (A and B), and record the number of clicks....
不同分布在A/B测试中的对比总结
1. 二项分布(Binomial Distribution) 特点 模型的是离散数据,如“点击/未点击”。 适合小样本、二元结果的情况。 可以直接用于显著性检验(如二项检验)。 适用场景 对于转化率等二元指标直接比较时使用。 当样本量不大且需要精确计算时。 优点 完全适合二元事件,理论模型和实际数据一致。 不需要依赖近似,结果精确。 缺点 计算复杂度较高,尤其在样本量很大时。 不适合连续数据。 2. 正态分布(Normal Distribution) 特点 用于近似大样本下的二项分布(中心极限定理)。 适用于连续指标或二元指标的近似分析。 适用场景 样本量较大(通常 (n \geq 30))。 关注均值的显著性差异,如点击率的均值比较。 优点 计算简单,快速。 适用于大样本场景,便于可视化和解释。 缺点 当样本量小或数据偏离正态分布时,可能不适用。 假设较强:需要数据接近正态分布。 3. t分布(t-Distribution) 特点 用于小样本的均值差异分析。 t分布的形状取决于自由度,样本量越小,尾部越厚。 适用场景 样本量小于30。 比较两组均值的显著性差异。 优点 适合样本量较小的数据。 不完全依赖正态分布假设,允许更宽松的分析。 缺点 随样本量减小,检验的统计效能降低。 仅适合均值分析,不适合离散数据。 4. 泊松分布(Poisson Distribution) 特点 模型的是稀疏事件的频率,如少量点击或购买。 数据是非负整数,适合罕见事件。 适用场景 点击/转化发生率低(例如点击率小于1%)。 事件总数未知,只关注单位时间或单位流量内的发生次数。 优点 更适合稀疏事件,不需要假设总样本量。 计算简单,尤其在极小概率事件下。 缺点 不适合高频事件。 不适用于二元(成功/失败)事件建模。 5. Beta分布(Beta Distribution) 特点 描述概率分布的不确定性。 常用于贝叶斯方法,作为点击率的先验或后验分布。 适用场景 需要基于历史数据引入先验知识。 使用贝叶斯推断的A/B测试。 优点 可以直接表示概率的分布,不仅是一个点估计。 允许融入先验信息,适合动态调整测试策略。 缺点 分析和解释需要统计背景知识。 不适合频率统计中的经典显著性检验。 6....