初试用R进行数据统计

需要明了的基础概念:

概率:某个事件出现的可能性;
频率分布表:统计与某数值一致的数据的个数、着这属于某数值范围的数据的个数,然后将这些统计值制成一览表;
直方图:图形化的频率分布表;
平均值(期望值):用总和除以数量就是平均值。
总体:所有应当调查的对象;
样本:总体的一部分;
标准差:衡量数据离散程度的值,代表了数据相对于平均值的离散程度,先求所有差值的平方和,然后初一总数-1后的数值;
离散:也叫误差,数据的离散是有规律的,又被称为数据的分布;
正态分布:数据的离散程度称为分布,其中左右对称且只有少数结果极其偏离期望值的分布则称为正态分布。
95%的数据所在范围:距离平均值2个标准差以内;
显著水平:在实施分析或展开调查钱就确定好的一个量,用作判断基准的概率,1%、5%、10%;
零假设:认为样本均值和总体均值之间的差异只是误差,即认为二者之间不存在差异的假设;
备择假设:认为样本均值和总体均值之间差异超出了误差的范围;
概率不足5%:否定零假设
概率大于5%:保留零假设
均值差异检验:把平均值和总体均值与应当值作对比,判断二者是否在误差范围内。

将excel表格breads.csv导入RStudio

> breads <- read.csv("breads.csv")

计算面包重量的平均值

> mean(breads$weight)
[1] 397.1267

计算面包的标准差

> sd (breads$weight)
[1] 10.92062

输出面包的重量分布的直方图

> hist(breads$weight)


调用t.test函数求得概率值(p-value)
mu=400表示总体均值定义为400(克)
t表示离差统计量,df表示自由度

> t.test (breads$weight,mu=400)

    One Sample t-test

data:  breads$weight
t = -1.4411, df = 29, p-value = 0.1603
alternative hypothesis: true mean is not equal to 400
95 percent confidence interval:
 393.0488 401.2045
sample estimates:
mean of x 
 397.1267 

搭建R语言环境

R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
RStudio是一款跨平台的R语言IDE,把常用的窗口都整合在让开发者,不用在命令行和绘图窗口跳来跳去,RStudio全部都在一个窗口,让你更方便的来控制。R语言,一直来都没有一个很好的IDE,RStudio算是给R补充了这一块。

软件安装

  • ubuntu下安装r语言以及rstudio
sudo apt install -y r-base r-base-dev
sudo apt install -y rstudio
  • Windows下安装r语言以及rstudio

使用国内的R程序镜像源:R base
使用官方的rstudio下载页面:RStudio

使用初步

模拟百分之一中奖率的一次抽奖活动

> choujiang <- c("未中奖","中奖") 
> sample(choujiang, 100, prob=c(99,1), replace = TRUE)
  [1] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
  [7] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [13] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [19] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [25] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [31] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [37] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [43] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [49] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [55] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [61] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [67] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [73] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [79] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [85] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [91] "未中奖" "未中奖" "未中奖" "未中奖" "未中奖" "未中奖"
 [97] "未中奖" "未中奖" "未中奖" "未中奖"

查看投掷100次骰子各个面出现的几率

> table(sample(1:6,100,replace = TRUE))

 1  2  3  4  5  6 
13 24 14 18 15 16 

绘制直方图

> hist(sample(1:6,100,replace = TRUE), breaks=0:6)

安装插件

要使用ggplot2插件,需要在联网情况下,在rstudio的命令窗口执行

install.packages("ggplot2")

tips:注意"C:\Program Files\R\R-3.4.1\library"目录要有写权限。

> res <- replicate(10000, mean(sample(1:6,100,replace = TRUE)))
> hist(res)
> library(ggplot2)
> dice <- data.frame(骰子 = res)
> ggplot(dice, aes(x=骰子))+geom_histogram(bindwith = .1,fill="steelblue",color="black",alpha=0.5)+xlab("期望值")+ylab("次数")+ggtitle("掷100次骰子后的期望值")