数据分析是怎样的?

浏览: 1627

作者简介:

杨奉山: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

第三步:使用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的显著性与系数。这里明显看出门票是否附赠摇头娃娃对上座率影响是正的并且显著性很高,因此建议体育馆门票附赠摇头娃娃,但是基于什么价格附赠,那就是另外一个数据模型了。

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

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册