• 微信

数学期望和方差的关系公式 D(X)=np(1-p)

时间:21:14:48作者:admin分类:娱乐浏览:19评论:0

  简介:最近在研究一个R语言的资料,是斯坦福大学老师写的。可以直接学习,里面有配套的R代码,小编在这里写一些读书笔记。本章介绍常见的离散分布及其应用。

  1.伯努利检验与二项分布

  1.1 定义

  如果检验E只有A和ā两个结果,概率分别为p和1-p,E称为伯努利实验,且当独立重复 n 次时,E 称为 n 次伯努利实验。典型的伯努利实验是抛硬币的例子。例如,抛硬币3次,观察到2次正面朝上的概率为:(下)。

  在n次伯努利实验中用X表示A出现的次数,则称随机变量X服从二项分布,记为X~b(n,p),其分布规律为:

  p>

  二项分布的期望和方差为E(X)=np。

  1.2 R语言实例

  R中常用的分布通常有对应的四个函数,分别是p(概率,概率),d(分布,分布),r(随机数,随机数),q (quantile, quantile) 这四个字母开头。以二项分布为例,有如下四个函数:

  pbinom(q, size, prob):计算累积概率

  dbinom(x, size, prob) : Calculate the Specific probability of a certain value x

  rbinom(n, size, prob): 从b(size, prob)的二项分布中生成n个随机数

  qbinom( p, size , prob): Quantile function

  两个参数size和prob分别表示伯努利试验的次数和每次试验成功的概率,分别对应二项分布中的两个参数n和p.假设碱基突变的概率为5×10-4,我们模拟10000个位点发生突变的碱基数并画条。

  > simulations=rbinom(n=300000, prob=5e-4, size=10000)> barplot(table(simulations), col=”lender”)

  对于例如,生成10000个服从b(100, 0.2)的随机数,绘制概率密度直方图,加上正态分布拟合曲线。

  > library(dplyr)> library(ggplot2)> tibble(x=rbinom(10000, size=100, prob=0.2))%>% ggplot(aes(x=x)) geom_histogram(aes (y=..density..)) stat_function( fun=dnorm, args=list(mean=20, sd=4), color=”red” )

  一个特殊的数据框tibble,这是R语言大师Hadley Wickham在tidyverse包中定义的一种新的数据类型。它是一个弱类型的data.frame,语法与data.frame相同,但使用起来更灵活。如果想了解更多可以参考R for Data Science这本书

  (

  The expectation and variance的模拟数据分别为 20 和 0.4。根据中心极限定理,当n取较大值时,二项分布趋于正态分布。因此我们的模拟数据可以符合上面的正态分布 N(20, 0.4)。

  2.泊松分布

  2.1 定义

  泊松分布适用于描述单位时间内随机事件发生的次数。例如,在一定时间内到达某个服务设施的人数,在公交车站等候的乘客人数,机器故障的次数,自然灾害的次数,DNA突变的碱基数,等等。泊松分布只有一个参数λ,记为X~π(λ),其分布规律为:

  泊松分布的期望和方差都等于λ,即E( X)=D(X)=λ。当二项分布的n很大时,可以用泊松分布来近似二项分布,其中λ=np。

  2.2 R语言例子

  我们生成1000个二项随机数项目分布 b(10000, 0.01) 和泊松分布 π(100) 中的数字,并绘制它们。

  > library(tidyverse)> tibble(x=rbinom(1000, size=10000, prob=0.01), y=rpois(1000, 100)) %>% pivot_longer(cols=c(x, y)) %>% ggplot(aes(x=value)) geom_density(aes(col=name))

  这里先解释一下上面的代码,首先我们创建一个tibble类型的数据框,包括两列 x 和 y 分别服从 b(10000, 0.01) 和 π(100)。然后使用pivot_longer()函数将data frame转成long data,然后做直方图。

  由此可以看出,两条曲线可以很好的重合,这也说明我们上面的结论是正确的,即泊松分布可以看作是n大且n大的二项分布一个小p。

  3.蒙特卡洛法(Monte Carlo)

  蒙特卡洛法是指产生大量的随机数,进行数值统计计算,以获得问题的近似解。一个经典的例子就是用蒙特卡洛模拟计算pi,如下图,在正方形中生成足够多的随机点,这些点落在圆中的概率就是圆的面积与面积的比值正方形的,所以落入圆圈的点数与所有点数(正方形中的点)的比值等于落入圆圈的概率。据此可以计算出π=4*圆面积/正方形面积,下面代码会解释。

  > calpi <- function(n){ x abline(h=pi, col=2 )

  可以看到当随机数的个数n越来越大时,通过Monte Card罗计算的π逐渐接近真实值。

  再看一个例子,如果X~π(0.5),X个样本数为100,我们想知道X≥7的概率.当然我们可以用一个理论公式来计算,p=1- p(X≤6)=1-。但是这个计算显然很复杂,我们可以用蒙特卡洛模拟来生成大量符合泊松分布,然后计算概率,具体代码如下:

  > maxes=replicate(100000, { max(rpois(100, 0.5)) })> table(maxes)maxes 1 2 3 4 5 6 78 23430 60446 14469 1530 110 7> mean( maxes >=7 )[1] 0.00011

  计算出的p值为0.00011,即几乎不可能o在这些样本中保持大于 7 的值。蒙特卡洛模拟的局限性在于其精度≤ 1/n,其中 n 表示生成的随机数。这意味着为了获得足够准确的结果,必须产生足够数量的随机数,这对计算机的性能也提出了很高的要求。

  R语言学习笔记系列

  R语言学习笔记(二)

  R语言学习笔记(三)——实用的内置函数

  R语言学习笔记(四)—pheatmap

  R语言学习笔记(五)——曼哈顿

  这些网站拿在手里,分分钟学会R语言

  p>关注【投志】阅读论文精华】获取日常科研/论文写作干货!

  获取SCI写作神器海量收藏!科研笔记神器:开书神器,一分钟构建知识谱,进入科研深度海,如果你有带谷歌翻译功能的PDF阅读器,这些科研利器将助你一臂之力,效率值满分学术写作-StyleWriter,可定制的编辑工具

  关于数学期望和方差公式(D(X)和E(X)公式的介绍到此结束)。