R语言中的概率论和数理统计

来源:互联网 发布:安徽航天网络发票v2.0 编辑:程序博客网 时间:2024/06/05 15:55

前言
1.大部分参考张丹(Conan)的R的极客理想系列文章《概率基础和R语言》,对此表示感谢。
(http://blog.fens.me/r-probability/)
2.补充、解释和学习,记录并便于今后的查询。

目录

  1. 随机变量
  2. 随机变量的数字特征
  3. 极限定理

一、随机变量

(一)、什么是随机变量?

1.定义

随机变量(random variable)表示随机现象各种结果的实值函数。随机变量是定义在样本空间S上,取值在实数域上的函数,由于它的自变量是随机试验的结果,而随机实验结果的出现具有随机性,因此,随机变量的取值具有一定的随机性。

2.R程序:生成一个在(0,1,2,3,4,5)的随机变量

> S<-1:5> sample(S,1)[1] 2> sample(S,1)[1] 3> sample(S,4)[1] 3 5 4 1#sample(x=x,size=5,replace=T),其中size指定抽样的次数,“replace”就是重复的意思。即可以重复对元素进行抽样,也就是所谓的有放回抽样。

(二)、离散型随机变量

1.定义

如果随机变量X的全部可能的取值只有有限多个或可列无穷多个,则称X为离散型随机变量。

2.R程序:生成样本空间为(1,2,3)的随机变量X,X的取值是有限的

> S<-1:3> X<-sample(S,1);X[1] 2

(三)、连续型随机变量

1.定义

随机变量X,取值可以在某个区间内取任一实数,即变量的取值可以是连续的,这随机变量就称为连续型随机变量

2.定义R程序:生成样本在空间(0,1)的连续随机函数,取10个值

> runif(10,0,1) [1] 0.3819569 0.7609549 0.6692581 0.6314708 0.5552201 0.8225527 0.7633086 0.4667188 0.1883553[10] 0.3741653#1.runif(n,min=0,max=1)函数的规则:n表示生成的随机数数量,min表示均匀分布的下限,max表示均匀分布的上限;若省略参数minmax,则默认生成[0,1]上的均匀分布随机数。

二、随机变量的数字特征

(一)、数学期望(mathematical expectation)

1.离散型随机变量:一切可能的取值xi与对应的概率Pi(=xi)之积的和称为该离散型随机变量的数学期望,记为E(x)。数学期望是最基本的数学特征之一。它反映随机变量平均取值的大小。

R程序:计算样本(1,2,3,7,21)的数学期望

> S<-c(1,2,3,7,21)> mean(S)[1] 6.8

2.连续型随机变量:若随机变量X的分布函数F(x)可表示成一个非负可积函数f(x)的积分,则称X为连续性随机变量,f(x)称为X的概率密度函数,积分值为X的数学期望,记为E(X)。

(二)、方差(Variance)

方差是各个数据与平均数之差的平方的平均数。在概率论和数理统计中,方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。

设X为随机变量,如果E{[X-E(X)]^2}存在,则称E{[X-E(X)]^2}为X的方差,记为Var(X)。

R程序:计算样本(1,2,3,7,21)的方差

> S<-c(1,2,3,7,21)> var(S)[1] 68.2

(三)、标准差(Standard Deviation)

标准差是方差的算术平方根sqrt(var(X))。标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。

R程序:计算样本(1,2,3,7,21)标准差

> S<-c(1,2,3,7,21)> sd(S)[1] 8.258329

(四)、各种分布的期望和方差

离散型分布:两点分布,二项分布,泊松分布等
连续型分布:均匀分布,指数分布,正态分布,伽马分布等

对于某一特定场景,其所符合的分布规律一般先验给出

(五)、常用统计量

1.众数(Mode):

一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。

R程序:计算样本(1,2,3,3,3,7,7,7,7,9,10,21)的众数

> S<-c(1,2,3,3,3,7,7,7,7,9,10,21)> names(which.max(table(S)))[1] "7"#table()的输出可以看成是一个带名字的数字向量。可以用names()和as.numeric()分别得到名称和频数> x <- sample(c("a", "b", "c"), 100, replace=TRUE)> names(table(x))[1] "a" "b" "c"> as.numeric(table(x))[1] 42 25 33也可以直接把输出结果转化为数据框,as.data.frame()> as.data.frame(table(x))  x Freq1 a   422 b   253 c   33> table(S)S 1  2  3  7  9 10 21  1  1  3  4  1  1  1 

2.最小值(minimum):

在给定情形下可以达到的最小数量或最小数值

3.最大值(maximum):

在给定情形下可以达到的最大数量或最大数值

4.中位数(Medians):

是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数

5.四分位数(Quartile):

用于描述任何类型的数据,尤其是偏态数据的离散程度,即将全部数据从小到大排列,正好排列在上1/4位置叫上四分位数,下1/4位置上的数就叫做下四分位数

R程序:计算样本(1,2,3,4,5,6,7,8,9)的四分位数

> S<-c(1,2,3,4,5,6,7,8,9)> quantile(S)  0%  25%  50%  75% 100%    1    3    5    7    9 > fivenum(S)[1] 1 3 5 7 9

6.通用的计算统计函数:

R程序:计算样本(1,2,3,4,5,6,7,8,9)的统计函数

> S<-c(1,2,3,4,5,6,7,8,9)> summary(S)   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.       1       3       5       5       7       9 

(六)、协方差(Covariance)

协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。设X,Y为两个随机变量,称E{[X-E(X)][Y-E(Y)]}为X和Y的协方差,记录Cov(X,Y)。

R程序:计算X(1,2,3,4)和Y(5,6,7,8)的协方差

> X<-c(1,2,3,4)> Y<-c(5,6,7,8)> cov(X,Y)[1] 1.666667

(七)、相关系数(Correlation coefficient)

相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度。当Var(X)>0, Var(Y)>0时,称Cov(X,Y)/sqrt(Var(X)*Var(Y))为X与Y的相关系数。

R程序:计算X(1,2,3,4)和Y(5,7,8,9)的相关系数

> X<-c(1,2,3,4)> Y<-c(5,7,8,9)> cor(X,Y)[1] 0.9827076

(八)、矩

1.原点矩(moment about origin)

2.中心矩(moment about centre)

均值和方差分别就是一阶原点矩和二阶中心矩,具体定义和概念,可详见陈希孺《概率论与数理统计》P132-133

3.偏度(skewness):

是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。设分布函数F(x)有中心矩μ2=E(X −E(X))^2, μ3 = E(X −E(X))^3,则Cs=μ3/μ2^(3/2)为偏度系数。

当Cs>0时,概率分布偏向均值右则,Cs<0时,概率分布偏向均值左则。 R语言:计算10000个正态分布的样本的偏度

> library(PerformanceAnalytics)> S<-rnorm(10000)> skewness(S)[1] -0.00178084> hist(S,breaks=100)#hist() 函数:绘制直方图

4.峰度(kurtosis): 又称峰态系数。

表征概率密度分布曲线在平均值处峰值高低的特征数。峰度刻划不同类型的分布的集中和分散程序。设分布函数F(x)有中心矩μ2=E(X −E(X))^2, μ4=E(X −E(X))^4,则Ck=μ4/(u2^2-3)为峰度系数。


R语言:计算10000个正态分布的样本的峰度,(同偏度的样本数据)

> library(PerformanceAnalytics)> kurtosis(S)[1] -0.02443549> hist(S,breaks=100)

(九)、协方差矩阵(covariance matrix)

可以理解成不同维度上的协方差

> x=as.data.frame(matrix(rnorm(10),ncol=2))> x           V1          V21 -2.11315384 -2.551898402 -0.96631271 -1.361483553 -0.02835058 -0.823287744 -1.86669567 -0.072013535  0.27324957 -2.23835218> var(x)            V1          V2V1  1.13470650 -0.09292042V2 -0.09292042  1.03172261> cov(x)            V1          V2V1  1.13470650 -0.09292042V2 -0.09292042  1.03172261

三、极限定理

引言:
  我们知道,随机现象的统计性规律是在相同条件下进行大量重复试验时呈现出来的,常见的两种统计规律性为:
  频率的稳定性,即在大量重复试验中,事件发生的频率总是在它的概率附近摆动,且随着试验次数的增多,该频率总是越来越明显地稳定在其概率附近;
  平均值的稳定性,即在多次重复测量中,测量平均值总是在它的真实值附近摆动,且随着测量次数的增加,测量平均值总是越来越明显地稳定在其真实值附近。
  
  对以上两种规律,人们不仅研究观测值趋向于哪个稳定值,而且还分析了观测值在稳定值周围的摆动形式(分布情况)。
  
  针对观测值趋向于哪个稳定值,用数学语言及理论来分析研究,就引出了大数定律。其中关于频率稳定性的大数定律称为伯努利大数定律,关于均值稳定性的大数定律称为辛钦大数定律。
  
  针对观测值在稳定值周围的摆动形式,用数学理论进行研究,就得出了中心极限定理.所谓的中心极限定理,就是把和的分布收敛于正态分布的那些定理的一个统称。
  
  注 在概率论中,“定律”与“定理”是一样的意思.“定理”一般用于指那些能用数学工具严格证明的结论;而“定律”是指人们通过观察分析得出来一种经验结论,如牛顿三大定律,热力学定律等.因为概率论中的“大数定律”不仅是在实践中总结出来的经验结论,而且也可以用数学工具严格地去证明,所以叫“大数定律”或叫“大数定理”都可以。

(一)、大数定理

详见:
博客http://blog.csdn.net/weixin_35653315/article/details/73274245
维基百科https://zh.wikipedia.org/wiki/大数定律

R语言:假设投硬币,正面概率是0.5,投4次时,计算得到2次正面的概率?根据大数定律,如果投是10000次,计算5000次正面的概率?

#计算2次正面的的概率> choose(4,2)/2^4 #choose组合数的计算:从4中选择2个[1] 0.375#计算5000次正面的的概率> pbinom(5000, 10000, 0.5) [1] 0.5039893#pbinom二向分布,5000为分位数,产生10000个随机数,每个概率0.5

(二)、中心极限定理(central limit theorem)

中心极限定理是概率论中的一组定理。中心极限定理说明,大量相互独立的随机变量,其均值的分布以正态分布为极限。

1.林德伯格-列维(Lindburg-Levy)

是棣莫佛-拉普拉斯定理的扩展,讨论独立同分布随机变量序列的中央极限定理。它表明,独立同分布、且数学期望和方差有限的随机变量序列的标准化和以标准正态分布为极限:
这里写图片描述

2.棣莫佛-拉普拉斯(de Movire - Laplace)

棣莫佛-拉普拉斯(de Moivre - Laplace)定理是中央极限定理的最初版本,讨论了服从二项分布的随机变量序列。它指出,参数为n, p的二项分布以nρ为均值、nρ(1-ρ)为方差的正态分布为极限。
这里写图片描述

R语言:中心极限定理模拟,从指数分布到正态分布

if (!require(animation)) install.packages("animation")library(animation)ani.options(interval = 0.1, nmax = 100)par(mar = c(4, 4, 1, 0.5))clt.ani()#1.library和require都可以载入包,但二者存在区别。在一个函数中,如果一个包不存在,执行到library将会停止执行,require则会继续执行。require将会根据包的存在与否返回true或者false2.interval:a positive number to set the time interval of the animation (unit in seconds); default to be 1.3.nmax:maximum number of steps in a loop (e.g. iterations) to create animation frames. Note: the actual number of frames can be less than this number, depending on specific animations. Default to be 50.4.mar設置图形空白边界行数,mar = c(bottom, left, top, right)5.clt.ani:Demonstration of the Central Limit Theorem6.shapiro.test检验,P值大于0.05说明数据正态分布

原创粉丝点击