一、SQL
1.union和union all的区别
二者都是SQL中用于合并两个或多个SELECT语句的关键字,区别在于如何处理重复行
1️⃣union去除重复行,返回唯一的行
2️⃣union all不去除重复的行,所有行都保留
2.几种窗口函数及区别
1️⃣ROW_NUMBER()
为结果集中的每一行分配一个唯一的整数值,按照指定的排序顺序进行排序
若有两个或多个行排序条件相同,则每行都会分配一个不同的序号
返回唯一的行号
2️⃣RANK()
为结果集中的每一行分配一个排名值,按照指定的排序顺序进行排序
若有两个或者多个行具有相同的排序条件,则会被分配相同的排名值,并且下一个行将跳过相应数量的排名值
返回相同排序值的相同排名
3️⃣DENSE_RANK()
与RANK()类似,也为结果集中的每一行分配一个排名值,胆不会跳过排名值
eg:3个行有相同排序值,则分配为1,1,1,然后下一行被分配排名值为2若是rank函数则为4
返回相同排序值的不同排名
4️⃣NTILE()
将结果集划分为指定数量的桶,并为每个桶分配一个编号,从1开始
如果结果集中的行数不能被桶的数量整除,最后一个桶将包含剩余的行
将结果集划分为指定数量的桶
3.CASE WHEN THEN ELSE END
CASE WHEN
是 SQL 中的一个条件表达式,可以用来实现条件逻辑。它允许根据条件来返回不同的值。您可以使用 CASE WHEN
语句来实现类似 IF-THEN-ELSE
的逻辑。具体分为两种情况:
简单形式:这种形式适用于在 expression
的值等于某个特定值时返回对应的结果。
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
搜索形式:这种形式适用于根据条件来返回结果。
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
4.计算中位数
(1)使用变量的方法:
这是一种传统的方法,适用于MySQL 5.7及以下版本。
示例表结构和数据:
CREATE TABLE tb_video_info (
video_id INT,
tag VARCHAR(255),
like_cnt INT,
start_time DATETIME
);
INSERT INTO tb_video_info (video_id, tag, like_cnt, start_time) VALUES
(1, 'tag1', 10, '2021-10-01 10:00:00'),
(2, 'tag1', 20, '2021-10-01 10:10:00'),
(3, 'tag1', 30, '2021-10-01 10:20:00'),
(4, 'tag2', 40, '2021-10-01 10:30:00'),
(5, 'tag2', 50, '2021-10-01 10:40:00');
查询中位数代码如下:
SET @row_number := 0;#初始化一个变量用于记录行号。
SELECT
AVG(like_cnt) AS median_val
FROM (
SELECT
@row_number := @row_number + 1 AS row_number,
like_cnt
FROM
tb_video_info
ORDER BY
like_cnt
) AS ranked_likes
WHERE
row_number IN (FLOOR((@row_number + 1) / 2), CEIL((@row_number + 1) / 2));
#子查询中,使用变量 @row_number 对 like_cnt 进行排序,并为每行分配一个行号
#在外层查询中,选择行号在中间位置的记录并计算其平均值,这就是中位数
FLOOR
函数返回小于或等于给定数值的最大整数。CEIL
函数(或CEILING
函数)返回大于或等于给定数值的最小整
(2)使用窗口函数的方法:
适用于MySQL 8.0及以上版本
WITH ordered_likes AS (
SELECT
like_cnt,
ROW_NUMBER() OVER (ORDER BY like_cnt) AS row_number,
COUNT(*) OVER () AS total_rows
FROM tb_video_info
)
SELECT
AVG(like_cnt) AS median_val
FROM ordered_likes
WHERE
row_number IN (FLOOR((total_rows + 1) / 2), CEIL((total_rows + 1) / 2));
#使用窗口函数:ROW_NUMBER() OVER (ORDER BY like_cnt) AS row_number:为每行分配一个排序后的行号。
#COUNT(*) OVER () AS total_rows:计算总行数。
#在外层查询中,选择行号在中间位置的记录并计算其平均值。
二、统计学
1.主要围绕AB实验
(1)AB实验是什么
A/B实验(也称为A/B测试或拆分测试)是一种对照实验,用于比较两个或多个版本的变量(例如网页、应用界面、广告等),以确定哪个版本在特定的性能指标上表现更好。这是一种数据驱动的决策方法,常用于产品开发、用户体验设计和市场营销领域。
(2)如何确定样本量
样本量的确定步骤:
-
定义目标指标(Metrics):明确你要优化的指标(例如点击率、转化率、平均订单价值等)。
-
确定基准值(Baseline Conversion Rate):基于历史数据或前期研究,确定当前的基准转化率。例如,如果目前的点击率是5%,则基准值是5%。
-
设定最小可检测效果(Minimum Detectable Effect, MDE):定义你希望检测到的最小效果差异。例如,如果你希望检测到转化率至少提高2个百分点(从5%到7%),则MDE是2%。
-
选择统计显著性水平(Significance Level, α):常用的显著性水平是0.05,对应于95%的置信水平。这意味着你接受有5%的风险去拒绝真实的原假设。
-
选择统计检验功效(Statistical Power, 1-β):常用的功效是0.8或80%。这意味着你有80%的概率正确地拒绝假设。
-
使用样本量计算公式或工具:基于上述参数,使用统计公式或样本量计算工具来确定所需的样本量。
在线样本量计算工具
许多在线工具可以帮助你快速计算所需的样本量,这些工具通常基于上述公式。常见的工具包括:
- Optimizely Sample Size Calculator
- Evan Miller's A/B Testing Sample Size Calculator
(3)假设检验
AB测试中的假设检验步骤
1.定义假设:
①原假设(H0):A版本和B版本之间没有差异,即两者效果相同
②备择假设(H1):A版本和B版本之间存在差异,即两者效果不同
2.选择显著性水平(α):
常用的显著性水平是0.05(5%),表示有5%的风险误拒真原假设。
3.收集数据:
对A版本和B版本分别进行实验,收集数据(如点击率、转化率等)。
4.选择适当的检验方法:
根据数据类型和实验设计选择合适的检验方法。例如,对于两组比例的比较,常用z检验或卡方检验。
5.计算检验统计量和p值:
根据样本数据计算检验统计量(如z值)和相应的p值。
p值(p-value)是统计假设检验中的一个关键概念,用于帮助我们判断观察到的数据是否支持原假设。具体来说,p值表示在原假设为真时,得到当前数据或更极端数据的概率。以下是对p值的详细解释及其在假设检验中的作用。
6.作出决策:
- 如果p值小于显著性水平α,则拒绝原假设,认为两者存在显著差异。
- 如果p值大于或等于显著性水平α,则不拒绝原假设,认为两者没有显著差异。
7.解释结果:
根据统计检验结果,解释两版本的效果差异,并指导下一步行动。
示例:AB测试假设检验
假设我们在一个网站上测试两个版本的页面A和B,目标是比较两个版本的转化率(conversion rate,即用户完成特定操作的比例)。收集的数据如下:
- 版本A:有1000名用户,其中50名用户完成了转化。
- 版本B:有1000名用户,其中70名用户完成了转化。
步骤1:定义假设
- H0:转化率A = 转化率B
- H1:转化率A ≠ 转化率B
步骤2:选择显著性水平
α=0.05
步骤3:收集数据
步骤4:选择检验方法
使用z检验比较两个比例。
步骤5:计算检验统计量和p值
计算具体的z值和p值(Python代码示例):
import math
from scipy.stats import norm
# 输入数据
n_A = 1000
n_B = 1000
p_A = 50 / n_A
p_B = 70 / n_B
p_pool = (50 + 70) / (n_A + n_B)
# 计算z值
z = (p_A - p_B) / math.sqrt(p_pool * (1 - p_pool) * (1/n_A + 1/n_B))
# 计算p值
p_value = 2 * (1 - norm.cdf(abs(z))) # 双尾检验
z, p_value
步骤6:作出决策
- 比较p值和显著性水平α:
- 如果 p<0.05,拒绝原假设,认为两版本之间存在显著差异。
- 如果 p≥0.05,不拒绝原假设,认为两版本之间没有显著差异。
步骤7:解释结果
- 如果计算出的p值小于0.05,说明两版本的转化率存在显著差异,B版本可能更有效。
- 如果p值大于或等于0.05,说明两版本的转化率没有显著差异,可以认为A和B版本在转化率上表现相当。
计算得到的结果如下:
- z值为 -3.216964190582035
- p值为 0.0012998548318312255
由于p值(0.0013)小于常见的显著性水平(例如0.05),我们可以拒绝原假设,即A版本和B版本之间的转化率存在显著差异。
(4)置信区间
置信区间是统计学中的一个概念,用于对参数的估计提供区间估计。在实际研究中,我们往往只能通过对样本数据进行统计分析来推断总体参数的真实取值,而无法直接得知总体参数的真实值。置信区间给出了一个范围,我们有一定的置信水平相信总体参数落在这个范围内。
换句话说,置信区间描述了对总体参数的估计范围,通常以一个区间的形式表示。这个区间的两个端点由样本数据和置信水平共同决定。置信水平通常用百分比表示,例如95%或99%。
当我们使用置信区间时,我们通常认为,如果我们重复进行相同的抽样实验并计算置信区间,约有95%(或其他置信水平)的置信区间会包含总体参数的真实值。
例如,如果我们进行了一个样本调查来估计某个市场产品的平均满意度,并计算出95%的置信区间为[70, 80],那么我们有95%的置信度相信,该市场产品的真实平均满意度位于70到80之间。
(5)中心极限定理(Central Limit Theorem)
中心极限定理是统计学中最重要的定理之一,它表明当从任何总体中抽取足够大的样本时,样本均值的分布会趋近于正态分布,无论总体的分布形态是什么。换句话说,即使总体分布不是正态分布,样本均值的分布也会接近于正态分布。
具体而言,中心极限定理有两种形式:
- 弱中心极限定理:指出当样本容量足够大时,样本均值的分布近似于正态分布。
- 强中心极限定理:指出当样本容量趋向无穷大时,样本均值的分布收敛于正态分布。
中心极限定理的重要性在于它提供了许多统计推断的基础,例如用于构建置信区间和假设检验等。
(6)大数定律(Law of Large Numbers)
大数定律描述了随着样本容量的增加,样本平均值将收敛于总体平均值的现象。换句话说,当样本容量足够大时,样本的平均值会越来越接近于总体的平均值。
大数定律通常分为弱大数定律和强大数定律:
- 弱大数定律:样本平均值以概率1收敛于总体平均值。
- 强大数定律:样本平均值以几乎确定性的方式收敛于总体平均值。
大数定律的意义在于,它提供了一个理论基础,支持在统计学中使用样本统计量来估计总体参数的有效性。大数定律告诉我们,随着样本容量的增加,我们可以更加可靠地使用样本统计量来估计总体参数。
(7)T检验,Z检验,F检验,卡方检验: 场景、使用条件、统计量、分布
① T检验(Student's t-test)
- 场景:T检验用于比较两个样本均值之间是否存在显著差异,适用于小样本情况。
- 使用条件:样本服从正态分布,总体标准差未知。
- 统计量:T值,表示两个样本均值之间的差异与样本误差之间的比率。
- 分布:自由度为样本量较小的那组样本的t分布。
② Z检验(Z-test)
- 场景:Z检验用于比较一个样本的均值与已知总体均值之间是否存在显著差异,适用于大样本情况。
- 使用条件:样本服从正态分布,总体标准差已知。
- 统计量:Z值,表示样本均值与总体均值之间的差异与标准误差之间的比率。
- 分布:标准正态分布。
③ F检验(F-test)
- 场景:F检验用于比较两个或多个样本方差是否存在显著差异,适用于方差比较。
- 使用条件:样本服从正态分布,总体方差未知。
- 统计量:F值,表示两个或多个样本方差之间的比率。
- 分布:F分布,其分布的两个自由度参数分别对应于两个样本方差的自由度。
④ 卡方检验(Chi-square test)
- 场景:卡方检验用于检验两个或多个分类变量之间是否存在相关性或独立性。
- 使用条件:数据是分类数据,且观察频数与期望频数之间的偏差服从正态分布。
- 统计量:卡方值,表示观察频数与期望频数之间的差异。
- 分布:卡方分布,其自由度取决于分类变量的自由度。
2.围绕贝叶斯概率
拼多多二面问过
“三门问题”是一个著名的概率谜题,源自美国电视节目《让·皮埃尔·法尔奇尔的智慧谷》(Let's Make a Deal)中的一个游戏节目,后来被称为蒙提霍尔问题(Monty Hall problem),因为该问题在美国作家和电影导演蒙提·霍尔(Monty Hall)主持的电视节目中出现过。
问题描述如下:
假设有三扇关闭的门,其中一扇门后面有一辆汽车,另外两扇门后面各有一只山羊。参赛者首先会选择一扇门,然后主持人(知道每扇门后面是什么)会打开另外一扇有山羊的门。然后,主持人会问参赛者是否要更换之前选择的门,参赛者可以选择留在原来选择的门,也可以选择换另一扇门。最后,参赛者选择的门会被打开,如果门后是汽车,则参赛者获胜。
问题的关键是:在主持人打开一扇有山羊的门后,参赛者是否应该更换之前选择的门?
解答:
直觉上,很多人认为更换选择和坚持原来选择的概率是相等的,因为打开一扇有山羊的门似乎没有改变另外两扇门后面的汽车的概率分布。然而,这是一个错误的观点。
事实上,更换选择的概率更大。这是因为在最初选择的三扇门中,只有一扇门后面有汽车,而其他两扇门后面是山羊。当主持人打开一扇有山羊的门后,原先的选择要么是汽车(概率为1/3),要么是山羊(概率为2/3)。因此,更换选择后,获胜的概率为2/3,而坚持原来选择的概率为1/3。
这个问题引发了许多争论和解答,涉及到概率论中的条件概率和贝叶斯定理等概念。虽然看似简单,但这个问题挑战了人们的直觉和数学思维,是一个经典的概率谜题。
解释一下为什么在“三门问题”中,更换选择的获胜概率是2/3。
首先,让我们考虑参赛者最初选择的情况:
- 如果参赛者最初选择的是汽车所在的门,那么他选择换门后就会失败。
- 如果参赛者最初选择的是山羊所在的门,那么主持人只能打开另一扇有山羊的门,然后换门后就会获胜。
在这两种情况中,只有当参赛者最初选择的是山羊所在的门时,换门才能获胜。
考虑到参赛者最初选择的三扇门中,有两扇是山羊所在的门,所以参赛者最初选择的是山羊所在的门的概率是2/3。
因此,当参赛者换门时,获胜的概率是2/3。
三、场景、业务问题
你搭建指标体系的思路是什么?你们平常工作会关注哪些指标?
1.常见的指标体系构建思路:
-
明确业务目标和策略:首先,理解业务的战略目标和优先级,以及实现这些目标所需的关键策略和行动计划。
-
确定关键绩效指标(KPIs):根据业务目标和策略,确定可以衡量和监测业务绩效的关键指标。这些指标应该具有以下特点:
- 相关性:与业务目标直接相关,能够反映业务的成功或失败。
- 可衡量性:能够通过数据收集和分析来量化和监测。
- 可操作性:能够被业务团队理解和影响,以便采取行动改进绩效。
-
分类和层级结构:根据业务的不同方面和层级,对指标进行分类和层级结构化。通常可以将指标分为战略性指标(关注长期目标)、运营指标(关注日常业务运营)和项目/任务指标(关注特定项目或任务的绩效)。
-
建立指标间的关联关系:分析指标之间的关联关系和影响,确保指标体系的完整性和一致性。有时候,指标之间存在因果关系或相互影响,需要考虑这些关系来综合评估业务绩效。
-
选择数据收集和分析方法:确定收集和分析指标数据的方法和工具,包括数据来源、数据收集频率、数据处理和分析技术等。
2.在平常的工作中,我们会关注一些常见的指标
例如:
- 业务增长指标:如销售额、收入增长率、用户增长率等。
- 用户体验指标:如用户满意度、用户留存率、转化率等。
- 市场指标:如市场份额、品牌知名度、竞争对手分析等。
- 运营效率指标:如生产效率、资源利用率、成本效益等。
- 质量指标:如产品质量、服务质量、投诉率等。
- 创新指标:如新产品发布数量、研发投入比例、创新成功率等。
这些指标可以帮助我们全面了解业务的绩效状况,并支持业务决策和优化。
以视频类产品为例,可以建立以下指标体系:
大盘指标
- 日活跃用户(DAU):每日使用产品的活跃用户数量。
- 新增用户:每日新增的用户数量。
- 回流用户:曾经使用过产品,又重新回到产品的用户数量。
- 持续活跃用户:在一段时间内持续使用产品的用户数量。
- 次留率、三留率、七留率:用户在注册后第二、第三、第七天仍然活跃的比例。
消费指标
- 内容消费渗透率:访问用户中观看视频内容的比例。
- 人均使用时长:每位用户平均使用产品的时间。
- 人均播放时长:每位用户平均观看视频的时间。
- 人均播放次数:每位用户平均观看视频的次数。
- 完播率:视频播放完整的比例。
互动指标
- 整体互动设备数:参与视频互动的设备数量。
- 点赞数、评论数、收藏数、分享数:视频相关互动的数量。
生产指标
- 总视频数量:产品中的视频总数。
- 新增视频数量:每日新增的视频数量。
- 投稿作者数:每日投稿视频的作者数量。
- 人均投稿数:平均每位作者投稿的视频数量。
- 整体投稿率:参与投稿的用户占注册用户的比例。
这些指标可以帮助视频类产品了解用户行为、内容消费、互动情况以及生产运营状况,从而指导产品优化和决策制定。
3.异常值的拆解
例如:成交额下降,怎么分析
(1)明确数据,确定下降幅度和时间范围:
- 首先,确认成交额的下降幅度和发生时间。比如,成交额在过去一个月下降了20%。
- 检查同比和环比数据,确定下降是否符合预期或者是否出现了异常情况。
(2)维度拆分,确定下降的原因:
- 将成交额拆分为不同的维度,比如新老用户、用户来源渠道等。
- 分析不同维度下的成交额变化情况,看是否某些维度的成交额下降明显。
(3)指标拆解,找到影响因素:
- 将成交额拆解为流量、转化率和客单价三个指标,分析每个指标的变化情况。
- 比较流量、转化率和客单价在下降前后的变化,找出影响成交额下降的主要因素。
(4)进一步分析背后的原因:
- 如果发现流量下降,可能是由于广告投放减少或者SEO排名下降等原因。
- 如果转化率下降,可能是由于网站性能问题、页面设计不佳或者支付流程出现bug等原因。
- 如果客单价下降,可能是因为促销活动减少或者产品质量问题等。
(5)针对性的解决问题:
- 根据分析结果,采取针对性的措施来解决问题,比如增加广告投放、优化网站性能、改善页面设计、提升产品质量等。
通过以上步骤的分析,可以更清晰地了解成交额下降的原因,并采取有效的措施来解决问题,确保业务的持续增长。
4.衡量某一个细分模块给平台带来的收益
(1) AB测试
- 设计两个方案,一个有该细分模块,一个没有。
- 将用户随机分配到两组,一组使用有该模块的方案,另一组使用没有该模块的方案。
- 对比两组用户在关键指标上的表现,如成交额、贡献市场、活跃人数等。
- 通过统计分析,确定该细分模块对平台带来的实际收益情况。
(2) 控制变量法 + 时间、人群对比
- 对用户进行分组,例如根据是否使用该细分模块分为两组。
- 观察两组用户在细分模块上线前后的表现,同时对比其他因素的影响。
- 通过对比分析,评估该细分模块对平台的实际收益贡献。
(3)具体应用举例:
- 对于视频平台,可以针对某个新推出的功能模块,进行AB测试,比较有无该功能模块对用户的活跃度、观看时长和转化率的影响。
- 对于电商平台,可以针对某个新推出的运营策略,进行AB测试,比较有无该策略对用户的购买行为、订单量和客单价的影响。
5.衡量贝壳在一个城市的可面向人群规模:
- 可以基于该城市的人口统计数据和房产市场数据,进行市场调研和分析,了解该城市的居民结构、购房需求和经济情况。
- 结合贝壳平台的用户画像和需求数据,评估该城市潜在的房产交易市场规模和增长潜力。
6.留存问题拆分 / 影响留存因素:
- 对于新用户,关注渠道质量、注册后的首次体验和内容质量等因素。
- 对于老用户,关注用户生命周期、持续的内容质量和及时有效的内容分发,同时维护良好的用户关系和提供个性化的服务。
标签:数据分析,常问,样本,用户,检验,指标,转化率,版本,SQL From: https://blog.csdn.net/zfyzfw/article/details/139097928