R与统计

来源:互联网 发布:it资讯 编辑:程序博客网 时间:2024/06/06 00:26

1.在R中控制概率分布

#引入统计的包>library(stats)#调用dnorm函数来生成正态分布数据集,返回正态分布在零点的高度> dnorm(0)[1] 0.3989423#可以调整平均数与标准差> dnorm(0,mean = 3,sd = 5)[1] 0.06664492#调用curve函数绘制正态分布曲线> curve(dnorm,-3,3)

标准正态分布曲线

#pnorm函数返回给定数据下曲线的面积> pnorm(1.5)[1] 0.9331928#可以将pnorm的参数设定成给定曲线之上曲线的面积> pnorm(1.5,lower.tail = FALSE)[1] 0.0668072#可以调用curve函数,绘制pnorm图> curve(pnorm(x),-3,3)

"累积密度函数"

#可以用qnorm函数来计算给定分布的分位数。我们可以将qnorm函数看成pnorm函数的逆操作,它将返回给定概率的Z分数> qnorm(0.5)[1] 0> qnorm(pnorm(0))[1] 0#可以调用rnorm函数生成服从正态分布的随机数,并指定随机数的数量。同样,也可以选择性的指定一些参数,如均值和标准差:> set.seed(50)> x = rnorm(100,mean=3,sd=5)> hist(x)

正态分布直方图

#也可以用runif函数生成符合均匀分布的随机数,通过指定最大最小值确定参数范围> set.seed(50)> y = runif(100,0,5)> hist(y)

均匀分布直方图

#可以采用最通用的Shapiro-Wilks检验> shapiro.test(x)    Shapiro-Wilk normality testdata:  xW = 0.99381, p-value = 0.9318
> shapiro.test(y)    Shapiro-Wilk normality testdata:  yW = 0.95633, p-value = 0.002221

2.在R中进行一元描述统计

#...>data("mtcars")#确定向量范围> range(mtcars$mpg)[1] 10.4 33.9#计算变量长度> length(mtcars$mpg)[1] 32#计算均值> mean(mtcars$mpg)[1] 20.09062#计算四位差> IQR(mtcars$mpg)[1] 7.375#计算分位数> quantile(mtcars$mpg,0.5) 50% 19.2#获得一个元素逐项增大的向量(从第一个开始,只找比它大的,找到之后重复这个过程)> cummax(mtcars$mpg) [1] 21.0 21.0 22.8 22.8 22.8 22.8 22.8 [8] 24.4 24.4 24.4 24.4 24.4 24.4 24.4[15] 24.4 24.4 24.4 32.4 32.4 33.9 33.9[22] 33.9 33.9 33.9 33.9 33.9 33.9 33.9[29] 33.9 33.9 33.9 33.9#获得一个元素逐项减小的向量(从第一个开始,只找比它小的,找到之后重复这个过程)> cummin(mtcars$mpg) [1] 21.0 21.0 21.0 21.0 18.7 18.1 14.3 [8] 14.3 14.3 14.3 14.3 14.3 14.3 14.3[15] 10.4 10.4 10.4 10.4 10.4 10.4 10.4[22] 10.4 10.4 10.4 10.4 10.4 10.4 10.4[29] 10.4 10.4 10.4 10.4#将mtcars包的cyl作为样例来展示类别频数计算方法(只有4,6,8三种类别)> table(mtcars$cyl) 4  6  8 11  7 14 #调用stem绘制数据形状,以获取数值数据的频数信息,stem将输出给定数据的茎叶图(最小两个数是10.4,10.4.两个10对应茎叶左侧,4对应茎叶右侧)> stem(mtcars$mpg)  The decimal point is at the |  10 | 44  12 | 3  14 | 3702258  16 | 438  18 | 17227  20 | 00445  22 | 88  24 | 4  26 | 03  28 |   30 | 44  32 | 49#调用ggplot2绘出对应直方图> library(ggplot2)> qplot(mtcars$mpg,binwidth=1)

mtcars中mpg的直方图

原创粉丝点击