数据分析之数理基础高频面试题及答案
一、逻辑推理
一、逻辑推理
1、甲、乙两地相距S,火车A以20的速度从甲开向乙,火车B以15的速度从乙开向甲,A上有一只小鸟以30的速度和A同时出发,小鸟碰到另一辆火车的时候立刻调头,问:火车AB相遇的时候,小鸟飞了多少距离?(腾讯)
参考答案:
S*(10/21)
答案解析:
在小鸟开始飞行至火车AB相遇的时间轴中有两个关键节点:小鸟与火车B相遇,火车AB相遇。以下从这两个关键节点进行分析求解。
1) 小鸟与火车B相遇
小鸟与火车B相遇时,小鸟总飞行时长为S/(30+15)=S/45,其飞行距离为S(30/45)=S(2/3)。
2) 火车AB相遇
火车AB相遇时,小鸟总飞行时长为S/(20+15)=S/35。因此,小鸟自与火车B相遇至火车AB相遇之间飞行时长为S/35-S/45=S(2/315),其飞行距离为 。所以小鸟总飞行距离为S(2/3)-S(4/21)=S(10/21)。
二、随机变量
1、面对大方差如何解决?(滴滴出行)
参考答案:
● AB实验场景下,如果一个指标的方差较大表示它的波动较大,那么实验组和对照组的显著差异可能是因为方差较大即随机波动较大。解决方法有:PSM方法、CUPED(方差缩减)
● 机器学习场景下,特征的方差反而越大越好,因为如果一个特征方差为0,那么其实这个特征对于模型来说没有什么意义,所以特征方差大对于模型的训练才是有帮助的
答案解析:
● PSM倾向值匹配方法(Propensity Score Matching):观测性研究有时无法人为控制干扰因素,因此可能会导致因果推断的偏差。 常规的解决思路是尽量模拟随机试验, 这样实验组与对照组在结果变量上的差异就可归因与实验条件的改变而非干扰因素或协变量施加的影响。PSM基于反事实因果模理论发展而成,属于因果推断的一种,相当于人为去造一个理想的实验环境
● CUPED方差缩减方法(Controlled-experiment Using Pre-Experiment Data):先分层计算后汇总,举个例子,我们计算对照组和实验组的用户平均使用时长,可以分别按照城市划分,先计算每个城市的用户平均使用时长,然后再按照权重(各城市实验用户)计算总的。(前提是城市这个特征与用户平均使用时长高度相关)
2、数据分析指标的阈值怎么确定?(携程)
参考答案:
-
人为划定:根据过往经验设定阈值
-
统计分类:基于统计分类结果设定阈值
-
自动选择:通过数据挖掘方法确定阈值
答案解析:
指标阈值的确定是业务中最常遇到的问题,确定指标阈值主要可以考虑人为划定、统计分类、模型自动选择三种方法。
对于一些有明确目的或者是凭借过往经验可直接判断的阈值标准,就可以人为划定。这种方法的优势在于简单便捷成本低。
而对于有一定业务知识但是历史经验不足的情况,可以在人为划定的基础上加入统计学原理,用统计分类的思想进行指标阈值确定。这种情况下需要掌握数据的整体情况,了解数据指标的基本分布,根据数据分位数、3-sigma原则、统计指标的拒绝域等进行划分。这种方法既包含了对业务指标有多了解,又用到了统计分析的科学方法,具备科学性和稳定性。
而在数据维度多、指标数量大的情况下,上述两种方法则变得十分困难,此时可以通过机器学习的方法让模型自动调整参数,确定最优阈值。这个过程中最常用的方法有分类、聚类、关联、回归,每种方法下都有多个模型可以进行选择,根据各类模型的评价指标进行参数选择、阈值确定。
3、如何不用自带函数统计一段话每个单词出现的次数(招联金融)
参考答案:
sentence = 'xxx xx x' words = sentence.split() dic = {} for w in words: if w in dic: dic[w] += 1 else: dic[w] = 1 for w, cnt in dic.items(): print('单词%s出现%d'%(w,cnt))
答案解析:
python能够便捷地处理文本相关的问题。在统计词频时,首先将语句拆分为一个个单词,然后将单词写入字典并统计每个单词出现的次数,最终输出即可。
对于有大小写的情况,可以先用lower函数统一转成小写后进行统计。
4、SQL中如何利用replace函数统计给定重复字段在字符串中的出现次数?(拼多多)
参考答案:
##All_String表示完整字符串,Target_String表示待统计的目标字段 select ( length('All_String')- length(replace('All_String', 'Target_String','')) )/length('Target_String') as cnt from table
答案解析:
此处我们用All_String表示完整字符串,用Target_String表示待统计的目标字段。
解题的基本思想是:字符串的总长度减去去掉目标字段的字符串长度,就得到了目标字段出现的总长度,除以目标字段长度就得到目标字段出现次数。SQL中提供了获取字符串长度的函数length( )以及从字符串里删除字符的函数replace( )。
● length('All_String') 用来计算字符串的总长度;
● length(replace('All_String','Target_String','')) 首先将字符串中目标字段替换为空然后再计算替换后的字符串长度;
● (length('All_String')-length(replace('All_String','Target_String',''))) 两个长度相减则得到重复字段在字符串中出现的总长度;
●(length('All_String')length(replace('All_String','Target_String','')))/length('Target_String') 在重复字段总长度的基础上除以单个重复字段长度则得到重复字段的出现次数。
5、常见的统计分析方法有哪些?(锐明科技)
参考答案:
● 描述统计
○ 数据的概括性度量(集中趋势、离散趋势、偏态和峰度等)、数理统计(概率分布等)
● 推断统计
○ 检验统计量及抽样分布、参数估计、假设检验,以及它们间的联系和区别
○ 重点关注假设检验的思想及使用场景,以及一些重要的概念(第一类和第二类错误、置信区间和置信度)
● 列联分析与独立性检验
● 方差分析
○ 方差分析是通过检验各总体的均值是否相等来判断分类型自变量是否对数值型因变量有影响
● 相关分析与回归分析
○ 相关分析是相关关系,回归分析是因果关系,各自的使用场景
● 主成分分析与因子分析
● 时间序列分析
● 非参数检验
答案解析:
● 假设检验在工作之后更重要的一个应用就是AB实验。AB实验是快速验证策略是否有效的方法,其中涉及的大量统计学知识以及实验步骤:确定目标及假设、确定指标、确定实验单位、样本量估算、测试时间估算、实施测试、分析测试结果等
● 参数估计和假设检验的联系是:
○ 参数估计和假设检验都是样本去估计总体,都是建立在概率基础上的统计,可以相互转换
● 参数估计和假设检验的区别是:
○ 参数估计是用样本统计量估计总体参数的方法;假设检验是先对总体参数提出一个假设,然后利用样本信息去检验这个假设是否成立
○ 参数估计是以置信区间(大概率)估计总体参数;假设检验是利用小概率事件是否发生来判断假设是否成立
三、中心极限定理
1、中心极限定理(快手)
参考答案
答案解析
有了中心极限定理,我们就可以把业务中的大部分指标都近似成正态分布了。这一点非常重要,因为 A/B 测试中的很多重要步骤,比如计算样本量大小和分析测试结果,都是以指标为正态分布为前提的。均值类的指标比如用户平均使用时长、平均购买金额,概率类的比如点击率、购买率等等,在数据量足够大的时候都服从正态分布,概率类的本质上服从二项分布,但在数据量足够大时,也服从正态分布