《深入浅出数据分析》读书笔记

每天看个2-3章节,一周左右看完。其中大部分章节都是先得到一个结果,然后发现“翻车了”,再经过修正的。感觉是第一次见这种,有点儿意思。下面摘抄各章的干货。

cha1 数据分析引言:分解数据

page4 数据分析的过程

确定
分解
评估
决策
确定 分解 评估 决策
了解问题,确定问题 分解问题和数据,使其成为更小的组成部分 对前两步了解到的情况进行评估 重新组合结论,做出决策/建议

问题:得到错误或不完整的信息

page21 心智模型

新信息
大脑

解决:通过新的数据发现新的目标群体

cha2 实验:检验你的理论

page43 观察分析法:被研究的人自行决定自己属于哪个群体的一种研究方法
page45 反向思考因果 因果之间的导向关系

问题: page47 混杂因素: 研究对象的差异不是试图比较的因素,最终导致结果敏感度变差
解决:设置控制组(对照组)

cha3 最优化:寻找最大值

page80 最优化问题:一些约束条件和一个目标函数
page92 Solver使用
问题:缺失重要假设
解决:矫正假设

cha4 数据图形化:图形让你更精明

page126 画二维图形以及平均值的线

cha5 检验假设:假设并非如此

page146 正/负相关 : 同增为正
page152 证伪:剔除无法证实的假设
page159 诊断性: 将假设与证据逐条进行比较,看哪种假设具有最强的证据支持

cha6 贝叶斯统计:穿越第一关

page175 假阳:本是阴性,误诊为阳性
page182 贝叶斯公式
P(L|+) = P(L)P(+|L)/(P(L)P(+|L)+P(~L)P(+| ~L))
page186 新的信息会改变基础概率

cha7 主观概率:信念数字化

page198 主观概率 : 用数字形式的概率表示自己对某事的确认程度
page208 标准偏差:分析点与数据集平均值的差距
page217 用贝叶斯规则修正主观概率

cha8 启发法:凭人类的天性做分析

page233 用量化理论了解元素之间的相互作用,知道如何处理变量
page236 启发法

直觉
启发法
最优化

cha9 直方图:数字的形状

参考

  • R软件的安装

  • 脚本无法通过网络连接打开,脚本中的网址也打不开,下载csv文件并更改脚本,输入 employees <-
    read.csv("~/Desktop/Study/DataAnalysis/hfda_data/hfda_ch09_employees.csv",header=TRUE)

  • 输入employees,正确输出csv文件中内容

hist(employees$received, breaks=50)
  
sd(employees$received)
 
summary(employees$received)
 
hist(employees$received[employees$year==2007], breaks=50)
hist(employees$received[employees$year==2008], breaks=50)
hist(employees$received[employees$gender=="M"], breaks=50)
hist(employees$received[employees$gender=="F"], breaks=50)
hist(employees$received[employees$negotiated==FALSE], breaks=50)
hist(employees$received[employees$negotiated==TRUE], breaks=50)

page 276 raise_amount改为received

cha10 回归:预测

page284 算法:为完成某个计算而执行的任何过程
page289 散点图:将不同变量放在一起进行比较的方法

用R画散点图

>  employees <-  read.csv("D:/杂/9780596153946-master/hfda_data/hfda_ch10_employees.csv",header=TRUE)
> head(employees,n=30)

page298 回归线:最准确地贯穿平均值图中的各个点的直线
page300 相关性:两种变量之间的相互关系
计算数据的相关系数

> cor(employees$requested[employees$negotiated==TRUE],employees$received[employees$negotiated==TRUE])
[1] 0.6656481

创建线性回归方程

gotiated==TRUE]~requested[negotiated==TRUE],data=employees)
> myLm$coefficients
                  (Intercept) requested[negotiated == TRUE] 
                    2.3121277                     0.7250664 
> my_raise <- 5
> 2.3 + 0.7*my_raise
[1] 5.8

cha11 误差:合理误差

page321 外插法:用回归方程预测数据范围以外的数值
page330 机会误差/残差:实际结果与预测结果之间的偏差
page336 回归线的机会误差=均方根误差

计算均方根误差

> summary(myLm)

Call:
lm(formula = received[negotiated == TRUE] ~ requested[negotiated == 
    TRUE], data = employees)

Residuals:
     Min       1Q   Median       3Q      Max 
-13.5560  -0.5914  -0.0601   0.3879  16.9173 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                    2.31213    0.21775   10.62   <2e-16 ***
requested[negotiated == TRUE]  0.72507    0.02573   28.18   <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05.0.1 ‘ ’ 1

Residual standard error: 2.298 on 998 degrees of freedom
Multiple R-squared:  0.4431,    Adjusted R-squared:  0.4425 
F-statistic:   794 on 1 and 998 DF,  p-value: < 2.2e-16

page346 分割:将数据分拆为几个组
分段计算线性回归

ted >10]~requested[negotiated==TRUE  & requested >10],data=employees)
> myLmSmall <- lm(received[negotiated==TRUE & requested <=10]~requested[negotiated==TRUE  & requested <=10],data=employees)
> summary(myLmSmall)$coefficients
                                                 Estimate Std. Error
(Intercept)                                     0.7933468 0.22472009
requested[negotiated == TRUE & requested <= 10] 0.9424946 0.03151835
                                                  t value      Pr(>|t|)
(Intercept)                                      3.530378  4.378156e-04
requested[negotiated == TRUE & requested <= 10] 29.903041 6.588020e-134
> summary(myLmSmall)$sigma
[1] 1.374526
> summary(myLmBig)$coefficients
                                               Estimate Std. Error  t value
(Intercept)                                    7.813403  1.8760371 4.164845
requested[negotiated == TRUE & requested > 10] 0.302609  0.1420151 2.130824
                                                   Pr(>|t|)
(Intercept)                                    4.997597e-05
requested[negotiated == TRUE & requested > 10] 3.457618e-02
> summary(myLmBig)$sigma
[1] 4.544424

cha12 关系数据库:你能关联吗?

参考
countif(range,criteria)
page368 这里不用输入.csv
=COUNTIF(hfda_ch12_articles.!B:B, hfda_ch12_issues!A2)

SUMIF(range,criteria,sum_range)
=SUMIF(hfda_ch12_sales!B:B, hfda_ch12_issues!A2, hfda_ch12_sales!C:C)

画文章数-销量图
> dispatch <- read.csv("C:/Users/thinkpad/Desktop/dispatch analysis.csv", header=TRUE)
> plot(Sales~jitter(Article.count), data=dispatch)

画作家-评论量图 
> plot(Sales~jitter(Article.count), data=dispatch)
> articleHitsComments <- read.csv("C:/Users/thinkpad/Desktop/hfda_ch12_articleHitsComments.csv", header=TRUE)
> library(lattice)
> xyplot(webHits~commentCount|authorName, data=articleHitsComments)

cha13 整理数据:井然有序

page398 excel公式
page404 正则表达式 模式

用正则表达式修正lastname
> hfhh <- read.csv("C:/Users/thinkpad/Desktop/hfda_ch13_data_for_R.csv", header=TRUE)
> NewLastName <- sub("\\(.*\\)", "", hfhh$LastName)
> head(NewLastName)

存储lastname
> hfhh$LastName <- NULL
> hfhh["LastName"] <- NewLastName
> write.csv(hfhh, file="hfhh.csv")

排序
>hfhhSorted <- hfhh[order(hfhh$PersonID), ]
> head(hfhhSorted, n=50)

去除重复的人
> hfhhNamesOnly <- hfhhSorted
> hfhhNamesOnly$CallID <- NULL
> hfhhNamesOnly$Time <- NULL
> hfhhNamesOnly <- unique(hfhhNamesOnly)
> head(hfhhNamesOnly, n=50)
> write.csv(hfhhNamesOnly, file="C:/Users/thinkpad/Desktop/hfhhNamesOnly.csv")

page414 保存原始数据-直观显示数据最终数据集-识别数据中重复的模式-整理和重新构建-使用经过打理的数据

发布了20 篇原创文章 · 获赞 6 · 访问量 4632

猜你喜欢

转载自blog.csdn.net/better_eleven/article/details/104654462