大家好,我是可乐。
很多同学留言看数据分析工作的笔试/面试题,今天的文章就是这样。
从搜狐畅游数据分析帖的笔试试题在牛科上找到的。com,为解析,选择了14个主题,涵盖统计、Excel、SQL、Python和业务理解。
*统计数据
* Excel
*业务理解
* SQL
* Python
#统计数据
No.1如果咖啡和茶是相互替代的,当咖啡价格上涨时,茶叶需求的变化趋势是:
答案:增加
解析:由于供求关系的影响,咖啡的价格上涨,购买咖啡的人越来越少。咖啡和茶互为替代品,所以大家都会选择价格没有上涨的茶。
No.2游戏中,玩家可以通过酷暑活动和西瓜大赛活动两种方式获得玉浆。假设每个活动中获得玉浆数的概率如下表所示:
活动上线后,有玩家随机选择参加一个活动,结果得到了25个玉浆。请问玩家参加酷暑活动的概率。
答案:7月4日
解析:检验贝叶斯概率:
事件A是凉爽的夏天,事件B是得到25个瓜。
P(A)=0.5是参加酷暑活动的概率。
p(B)=(0.40.3)/2=0.7/2,即获得25玉浆的概率。
P(B|A)=0.4,即参加一个清凉的夏日活动,得到25玉浆的概率。
P(A|B)是当获得25个玉浆时,参加一个凉爽的夏季活动的概率。
贝叶斯概率:P(A|B)=P(B|A)*P(A)/P(B)
替代:0.4*0.5/(0.7/2)=4/7
3号
在游戏中,假设对于普通玩家来说,参加一个地图绘制活动获得一张藏宝图的概率为0.5,每个地图绘制活动相对独立。一个角色参加了10次制图活动,获得了9张藏宝图。这个角色可以算是非普通玩家吗?
a、不能用0.01的校准水平识别,但可以用0.05的校准水平识别。
b、校准等级0.01,可以认定为非普通玩家。
c,校准水平为0.05,无法识别。
答案
g> :B解析 : 考察假设检验。
这是一个总体比例的检验。
原假设:该角色为普通玩家,Π=0.5
备择假设:该角色为非普通玩家,Π≠0.5
p=9/10
n=10
计算Z统计量:
代入公式计算得到z≈2.53,这是一个单侧检验,在0.01显著性水平下,
z= 2.32 < 2.53
落在拒绝域外,不拒绝,即以0.01的校验水准,可以认定为非普通玩家
> No.4 筛选了一批新用户,统计其每天在线时长、获得经验数据如下: 角色id 平均每天在线时长(小时) 平均每天获得经验(万)
> 请尝试计算平均每天在线时长数据、平均每天获得经验数据的协方差。
答案 :19/3
解析 : 协方差表示的是两个变量的总体的误差。可以通俗的理解为:两个变量在变化过程中是同方向变化?还是反方向变化?变化程度如何?
Cov(X,Y) = E(XY) - E(X)E(Y)
X表示平均每天在线时长
Y表示平均每天获得经验
E(X)是X的期望,E(X) = (4+5+9)/3=6
E(Y)是Y的期望,E(Y) = (2+4+9)/3=5
E(XY) = (4 _2+5_ 4+9*9)/3 = 109/3
带入得到Cov(X,Y) = 19/3
# Excel
> No.5 如表A中记录了玩家的账号和消费金额,表B中记录了玩家的账号和性别,现需要把表B中玩家性别信息匹配到表A中,在EXCEL中应该用哪个函数?
A、LOOKUP
B、SEARCH
C、MATCH
D、VLOOKUP
答案 :VLOOKUP
解析 :这题就很简单了,考察Excel里的两表匹配的函数,即VLOOKUP。
# 业务理解
> No.6 以下哪组指标都是付费项指标:
A、APA,ARPU
B、APA,DAU
C、DAU,ARPU
D、DAU,DAOT
答案 :APA,ARPU
解析 :
* APA (Active Payment Account):活跃付费用户数
* ARPU(Average Revenue per User):每用户平均收入
* DAU(Daily Active Users):日活跃用户数量
> No.7
> 指标定义:新用户n日留存率=新用户游戏的第n天留存数/新用户数。那么,7月8日新增用户2000人,这2000人在7月9日,7月10日,7月11日分别上线了500,400,350人,那么7月8日新增用户的3日留存率为多少(请以百分数展现,小数点后保留一位)
答案 :20%
解析 : Day 1 7月8日,新增2000人 Day 2 7月9日,留存500人 Day 3 7月10日,留存400人
7月8日的3日留存率 = 7月8日当天新增用户中第三天还登录的用户 / 7月8日新增用户数 = 400/2000 = 20%
# SQL
接下来是SQL题
> No.8 SQL中常用的条件表达式有:
A、case when
B、if else
C、if else when
D、switch
答案 :case when
解析 : SQL里的条件表达式就是case when
> No.9 SQL中用于将某种数据类型的表达式显式转换为另一种数据类型的函数是
A、concat
B、isnumeric
C、change
D、cast
答案 :cast
解析 :
CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。
比如:
SELECT CAST(NOW() AS DATE)
得到结果:2021-11-04,而直接输入now()的结果是带时间的。将时间类型转换为日期。
> No.10
> 数据库中的表A记录了某天玩家登录游戏的所有记录,表A中共有2个字段,一个是记录玩家登录时间的字段time,一个是记录玩家游戏账号的字段cnmaster,现需要计算这天登录过游戏的不重复账号个数,SQL命令是:
答案 :
select count(distinct cnmaster) from A
解析 : 考察SQL语句计数与去重。
> No.11 数据库有两张表,
> A表为游戏登出表,用户每次下线时记录一条:dt(登出日期),servertime(登出时间),userid(用户id),onlinetime(当次在线时长(单位:秒),int);
> B表为游戏充值表,用户每次充值记录一条:dt(充值日期),servertime(充值时间),userid(用户id),money(充值金额,int)
> 请查出: 1)2018年9月1日~2018年9月7日每天用户平均在线时长。 指标说明:平均在线时长=总在线时间/用户数。
> 2)2018年9月1日当天,总在线时长超过20分钟以上的用户的付费总金额。
答案 :
-- 第一题select dt,sum(onlinetime)/count(uesrid) as '平均在线时长'from Awhere dt between '2018-09-01' and '2018-09-07'group by dt-- 第二题select userid,sum(money)from Bwhere userid = ( select userid from A where dt = '2018-09-01' group by userid having sum(onlinetime) >20*60)group by userid
解析 : 第二题中先找出2018年9月1日当天,总在线时长超过20分钟以上的用户的id,再求这些用户付费总金额,用到了子查询。
# Python
> No.12 使用python的matplotlib工具包绘制折线图,所用的函数是
A、plot
B、scatter
C、sort
D、input
答案 :plot
解析 :不多说了,基础,plot绘图。
> No.13 以下python命令的输出结果为:
zhandouli=16000if zhandouli < 10000:print("初入江湖")elif zhandouli < 30000:print("小有名气")else:print("名动一方")
答案 :小有名气
解析 :也是基础,10000<16000<30000,所以输出小有名气。
> No.14 在Python中输入以下命令,输出结果为:
s=0for k in range(101): s=s+kprint (s)
答案 :5050
解析 : range(101)返回的结果是0到100,这题是0到100相加的等差数列,结果是5050.
总的来说,题目偏简单,考察的都是很基础的内容,比如Excel只考察了vlookup是做什么用的,但实际用起来才会知道它更多的坑,这也就是笔试/面试和工作的区别。当然首先得有敲门砖,进来后再深入学习也不晚。
@可乐的数据分析之路
by:进击的可乐