统计概率初体验
经过几天的学习,我已经提前完成了《深入浅出统计学》第二三章的计划,现在我将使用R来对统计学习中比较基础的四个指标进行计算。
四个指标:
- 平均值
- 四分位数
- 标准差
- 标准分
数据来源:自己平时学习在EXCEL中记录的晚间集中学习时间信息,如下图(部分数据)
1导入数据
library(xlsx)
workplace <- "C:/Users/Administrator/Desktop/Learning manual.xlsx"
Study <- read.xlsx(workplace,1,stringsAsFactors = F)
#查看数据
> str(Study)
'data.frame': 86 obs. of 6 variables:
$ Level : chr "绗竴鍏\xb3" NA NA NA ...
$ Id : num 1 2 3 4 5 6 7 8 9 10 ...
$ Date : Date, format: "2017-08-29" "2017-08-30" ...
$ Time : chr "鏈" "鏈" "鏈" "鏈" ...
$ Duration: num NA NA NA NA NA NA NA NA NA NA ...
$ Note : chr NA NA NA NA ...
此次计算主要目标是Duration学习时间,所以废话不多说,调用dplyr包对数据做一些简单的处理(因为Duration目前是character类型,所以要记得转换为numeric类型),顺便复习了之前学过的数据预处理。
library(dplyr)
data <- select(Study,Date,Duration)
data
Newdata <- filter(data,!is.na(Duration))
is.na(Newdata)
Newdata
Newdata$Duration <- as.numeric(Newdata$Duration)
#处理后的Newdata
> Newdata
Date Duration
1 2017-09-11 3.00
2 2017-09-12 3.00
3 2017-09-13 2.10
4 2017-09-14 0.00
5 2017-09-15 3.30
6 2017-09-16 0.00
7 2017-09-17 3.25
8 2017-09-18 0.00
9 2017-09-19 1.30
10 2017-09-20 0.00
....
下面进入正题
- 平均值:最简单的描述数据集的指标,也是最容易使人们产生错觉的一个数据。计算方法是各个数据相加求和后除以频数。R中是mean()函数计算得出
> #平均值
> result.mean <- mean(Newdata$Duration)
> result.mean
[1] 1.967857
这么一看,我的平均学习时间才2个小时,也不多啊,看来下班回来后时间利用的也不是很充分嘛。
- 四分位数:起到将整批数据一分为四作用的几个数值就是所谓的四分位数。四分位数共有3个,升序排列依次为 下四分位数(Q1)、中位数(Q2)、上四分位数(Q3)。R中用quantile()函数计算
> #四分位数
> quantile(Newdata$Duration)
0% 25% 50% 75% 100%
0.00 0.00 2.45 3.00 5.00
这就有点尴尬了,下四分位数为0,也就是说我有四分之一的天数里学习时间为0,得好好反省反省了。好在平时上班的时候在空闲时间也在学习,这个数据记录的学习时间不全面。
- 标准差:用来描述数据的波动性,标准差越大,说明数据的波动性越大;反之,则越小。R中用sd()函数计算
> #标准差
> sd(Newdata$Duration)
[1] 1.417899
标准差为1.4小时,还好,波动不是很大,说明每天的学习时间浮动不会很大。
- 标准分:是对不同数据集中的数值进行比较的一种方法。标准分=距离均值的标准差个数
R中用scale()函数计算
> #标准分
> scale(Newdata$Duration)
[,1]
[1,] 0.72793824
[2,] 0.72793824
[3,] 0.09319625
[4,] -1.38786842
[5,] 0.93951891
[6,] -1.38786842
[7,] 0.90425547
....
从上面的结果可以看出数值有正有负,正值说明当天学习时间超过了平均时间,负值说明当天学习时间低于平均时间。
以上为我的统计概率知识初次的练习,以后还要多多努力。