数据分析是怎样的?

2018 年 1 月 6 日 R语言中文社区 杨奉山


作者简介Introduction

杨奉山:R语言中文社区专栏作者,R语言小学生,和我一起为成为优秀的商业数据分析师努力吧 

知乎专栏:https://zhuanlan.zhihu.com/YFSbda


往期回顾

我的商业数据分析成长之路(书籍方面) | 引言

为什么游戏内销售额会下降 | R语言商业分析实践(1)

这个月本手游活跃度下降了 | R语言商业分析实践2

广告投入是怎样提高新用户数的(岭回归及主成分回归) | R语言商业分析实践3


经个人的经验摸索,数据分析不应是对数据进行分析。

数据分析应是通过数据对实际业务场景进行分析。

也就是说数据分析应当出业务问题出发,结合业务逻辑需要选择一定的方法(统计学、统计学习方法,数学建模)及工具(SQL,EXCEL,Tableau,R等),最终根据分析结论解决我们的问题,有时会提出相关决策建议。

所以关键是,你的问题是什么,为此你要用哪些方法与工具,最后你得出什么样的结论。

在工具的选择上要熟悉各工具的优劣与应用场景,结合业务结合使用。个人比较偏向于:SQL与EXCEL——数据预处理及数据存储;Tableau与R语言——探索性数据分析;R语言——建模与验模;EXCEL、Tableau、R语言——形成报告。(是的,R语言是万能的)


下面是一个简单案列,这个案列的分析步骤是这样的:

第一步,定义我们的业务问题;
第二步,结合问题清洗与处理数据;
第三步,探索性数据分析(加上第二步也可理解为特征工程);
第四步,提出设想,并进行建模与验模;
第五步,回归我们的第一步,得出结论及给出建议。


第一步

我们的业务问题是分析以道奇队为主场的比赛(即比赛均在道奇体育场)上座率受哪些因素影响,特别是门票是否附赠摇头娃娃的影响(因为体育馆考虑是否要推出新的摇头娃娃)。通过百度百科发现道奇体育馆容纳人数为56000。

第二步:使用SQL进行数据预处理

1.介绍一下字段的含义:

month——比赛的月份。
day——比赛的日期。
attend——比赛出席人数。
day_of_week——比赛是星期几。
opponent——客场对手是谁。
temp——比赛当天的气温。
skies——比赛当天是多云还是晴朗。
day_night——比赛是白天还是夜晚。
cap,shirt——比赛是否存在宣传帽与T恤。
fireworks——是否有烟火。
bobblehead——比赛是否附赠摇头娃娃。

2.将CSV格式的数据导入SQL Sever数据库。

3.去掉与我们分析目的无关的day,cap,shirt字段,将attend与temp数据类型改为整数,并将月份与星期的值从英文改为中文(分析结果相对会直观一点)。T-SQL脚本为:

use yfs
go
alter table dbo.dodgers alter column attend int;
alter table dbo.dodgers alter column temp int;
alter table dbo.dodgers drop column day,cap,shirt;
update dbo.dodgers set month=
case month
when 'APR' then '四月'
when 'MAY' then '五月'
whEN 'JUN' THEN '六月'
WHEN 'JUL' THEN '七月'
WHEN 'AUG' THEN '八月'
WHEN 'SEP' THEN '九月'
WHEN 'OCT' THEN '十月'
end
update dbo.dodgers set day_of_week=
case day_of_week
when 'Monday' then '星期一'
when 'Tuesday' then '星期二'
when 'Wednesday' then '星期三'
when 'Thursday' then '星期四'
when 'Friday' then '星期五'
when 'Saturday' then '星期六'
when 'Sunday' then '星期日'
end

4.将结果导出为新csv文件(dodgers_new.csv)方便使用R语言建模。

第三步:使用Tableau进行探索性数据分析(视频)

现在使用Tableau进行探索性数据分析(这里也可以用R语言)。由于Tableau的特点就是简单直接、方便高效,因此这里以视频的形式给出,让我们来体会一下$840/年(学生可以申请免费试用一年)的商业软件的便利:   

 视频地址:https://www.zhihu.com/video/930832729499566080                               

第四步

根据第三步提出设想,使用R语言建立模型与验证模型。

由于本文重点是介绍数据分析的基本思路及过程,所以这里只进行了简单的回归分析,并未进行回归诊断及多重共线性处理(可参考之前文章2.3 R商业分析3:广告投入是怎样提高新用户数的(岭回归及主成分回归)),并且这里并未将数据分为train和test组,有兴趣的可以尝试。

dog <- read.csv("dodgers_new.csv",header = T) str(dog) head(dog) dog <- dog[,c(-4,-5,-6,-7,-8)] mod <- lm(attend~.,data=dog) summary(mod) mod_step=step(mod)

第五步:结论及建议

> summary(mod_step)

Call:
lm(formula = attend ~ month + day_of_week + skies + bobblehead, 
data = dog)

Residuals:
Min 1Q Median 3Q Max 
-9346 -3753 -602 2216 15662 

Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept) 44575 2608 17.093 < 2e-16 ***
month九月 -1775 2469 -0.719 0.47464 
month六月 4916 2574 1.910 0.06052 . 
month七月 1250 2448 0.511 0.61134 
month十月 -2473 3972 -0.623 0.53575 
month四月 -982 2567 -0.383 0.70325 
month五月 -4601 2150 -2.140 0.03605 * 
day_of_week星期六 -1523 2532 -0.602 0.54951 
day_of_week星期日 -2066 2642 -0.782 0.43698 
day_of_week星期三 -5196 2684 -1.936 0.05721 . 
day_of_week星期四 -7360 3261 -2.257 0.02730 * 
day_of_week星期五 -3200 2666 -1.200 0.23437 
day_of_week星期一 -8294 2692 -3.081 0.00301 ** 
skiesCloudy -2706 1850 -1.463 0.14822 
bobbleheadYES 10556 2402 4.395 4.11e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6069 on 66 degrees of freedom
Multiple R-squared: 0.5587, Adjusted R-squared: 0.4651 
F-statistic: 5.968 on 14 and 66 DF, p-value: 2.17e-07

模型的各个参数显著性不高,R方也不够高。但我们本身的业务重点就是在是否推出新的摇头娃娃,因此我们关心的是是bobblehead的显著性与系数。这里明显看出门票是否附赠摇头娃娃对上座率影响是正的并且显著性很高,因此建议体育馆门票附赠摇头娃娃,但是基于什么价格附赠,那就是另外一个数据模型了。

数据地址:云盘链接:pan.baidu.com/s/1nuFKRl   密码:s4ww



往期精彩内容整理合集:

R语言中文社区历史文章整理(作者篇)

R语言中文社区历史文章整理(类型篇)

公众号后台回复关键字即可学习

回复 R               R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 

登录查看更多
1

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
专知会员服务
139+阅读 · 2020年5月19日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
192+阅读 · 2020年3月12日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
R语言数据挖掘利器:Rattle包
R语言中文社区
21+阅读 · 2018年11月17日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
Xgboost算法——Kaggle案例
R语言中文社区
13+阅读 · 2018年3月13日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
【宁波站】网络爬虫与文本挖掘
数萃大数据
5+阅读 · 2017年7月19日
Image Captioning: Transforming Objects into Words
Arxiv
7+阅读 · 2019年6月14日
Arxiv
8+阅读 · 2019年5月20日
Local Relation Networks for Image Recognition
Arxiv
4+阅读 · 2019年4月25日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
5+阅读 · 2017年12月29日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
专知会员服务
139+阅读 · 2020年5月19日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
192+阅读 · 2020年3月12日
相关资讯
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
R语言数据挖掘利器:Rattle包
R语言中文社区
21+阅读 · 2018年11月17日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
Xgboost算法——Kaggle案例
R语言中文社区
13+阅读 · 2018年3月13日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
【宁波站】网络爬虫与文本挖掘
数萃大数据
5+阅读 · 2017年7月19日
相关论文
Image Captioning: Transforming Objects into Words
Arxiv
7+阅读 · 2019年6月14日
Arxiv
8+阅读 · 2019年5月20日
Local Relation Networks for Image Recognition
Arxiv
4+阅读 · 2019年4月25日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
5+阅读 · 2017年12月29日
Top
微信扫码咨询专知VIP会员