概率论与R语言

标签: R语言 概率论
22人阅读 评论(0) 收藏 举报

随机试验

定义

在概率论中,把具有以下三个特征的试验称为随机试验.

  1. 可以在相同的条件下重复的进行
  2. 每次试验的可能结果不止一个,并且能事先明确试验的所有可能结果
  3. 进行一次试验之前不能确定那一个结果会出现

R语言编程模拟随机试验

模拟投硬币10000次

> result = sample(0:1,10000,replace = TRUE)
> length(which(result==0))/length(result)
[1] 0.5029
> length(which(result==1))/length(result)
[1] 0.4971

模拟抛骰子10000次


> result=sample(1:6,10000,replace=TRUE)
> length(which(result==1))/length(result)
[1] 0.1658
> length(which(result==2))/length(result)
[1] 0.1654
> length(which(result==3))/length(result)
[1] 0.1707
> length(which(result==4))/length(result)
[1] 0.1714
> length(which(result==5))/length(result)
[1] 0.1609
> length(which(result==6))/length(result)
[1] 0.1658

几何概率(连续)

定义

当随机试验的样本空间是某个区域,并且任意一点落在度量 (长度、 面积、体积) 相同的子区域是等可能的,则事件 A 的概率可定义为
P(A) = S(A)/S
其中S是样本空间的度量,S(A)是构成事件A的子区域的度量,这样借助于几何上的度量来合理规定的概率成为几何概型

说明:当古典概型的实验结果为连续无穷多个时候就归结为几何概型

蒲丰投针实验

1777年,法国科学家蒲丰(Buffon)提出了投针
试验问题.平面上画有等距离为a(a > 0)的一些平行直
线,现向此平面任意投掷一根长为b( b < a )的针,试求
针与某一平行直线相交的概率.

历史上一些学者的计算结果(直线距离a=1)
蒲丰投针实验历史结果

R语言实现蒲丰投针实验

> n=50000
> a=1.0
> b=0.85
> m=0
> for(i in 1:n)
+ {
+ x= runif(1, min = 0, max = a/2)
+ fai= runif(1, min = 0, max = pi)
+ if(x<=b/2*sin(fai)) m=m+1
+ }
> print(m)
[1] 27266
> print((2*b*n)/(a*m))
[1] 3.117436

两点分布

设随机变量X只可能取0与1两个值,它的分布律

X 0 1
P(k) 1-p p

R生成两点分布的随机数:

rbinom(生成次数, 1, p)

模拟抛硬币100次:

> sample(c(0,1), 100, replace = TRUE, prob = c(1/2,1/2))
  [1] 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0
 [27] 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1
 [53] 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1
 [79] 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1
> 

模拟抛骰子10次

> sample(1:6, 10, replace = TRUE, prob = c(1/6,1/6,1/6,1/6,1/6,1/6))
 [1] 3 6 3 6 1 1 4 4 2 3

二项分布

定义

若X表示n重伯努利试验中事件A发生的次数,X属于{0,1,2,3,…,n},X的分布律为

X 0 1 k n
P(k) qⁿ (n 1)pq(ⁿ﹣¹) (n k)pkq(ⁿ﹣k) pⁿ

称这样的分布为二项分布,记为X ~ b(n,p)

R语言实现二项分布

例1

在相同条件下相互独立地进行 5 次射击,每次射击时击中目标的概率为 0.6 ,则击中目标的次数 X 服从 b (5,0.6) 的二项分布

> x=dbinom(0:5,5,0.6)
> x
[1] 0.01024 0.07680 0.23040 0.34560 0.25920 0.07776

例2

一大批产品中一级品率为0.2,随机抽查20只,问20只产品中恰好有k(k=0,1,2,…,20)只一级品的概率

> x=dbinom(0:20,20,0.2)
> x
 [1] 1.152922e-02 5.764608e-02 1.369094e-01
 [4] 2.053641e-01 2.181994e-01 1.745595e-01
 [7] 1.090997e-01 5.454985e-02 2.216088e-02
[10] 7.386959e-03 2.031414e-03 4.616849e-04
[13] 8.656592e-05 1.331783e-05 1.664729e-06
[16] 1.664729e-07 1.300570e-08 7.650410e-10
[19] 3.187671e-11 8.388608e-13 1.048576e-14

图示概率分布

> plot(x,type="h")

这里写图片描述

例3

某人射击命中率为0.2,独立射击200次,至少击中两次的概率

> sum(dbinom(2:200,200,0.02))
[1] 0.9106245
> dbinom(2:200,200,0.02)
  [1]  1.457727e-01  1.963468e-01  1.973486e-01  1.578789e-01  1.047156e-01
  [6]  5.922689e-02  2.916018e-02  1.269559e-02  4.948688e-03  1.744436e-03
 [11]  5.607115e-04  1.654847e-04  4.511026e-05  1.141566e-05  2.693746e-06
......

泊松分布

二项分布 — (np->入(n->+8) —> 泊松分布

R语言:

dpois(x, lambda)
plot(dpois(0:10 , 2))
这里写图片描述

例1

在一天的某段时间内出事故的概率
为0.0001,在每天的该段时间内有1000 辆汽车通
过,问出事故的次数不小于2的概率是多少?

> sum(dbinom(2:1000,1000,0.0001))
[1] 0.004674768
> sum(dpois(2:1000,0.1))
[1] 0.00467884
> plot(dpois(0:10 ,  2))

例2

R语言 二项分布 泊松分布 循环语句 对比

> qbinom(0.99, 300, 0.01)
[1] 8
> qpois(0.99, 300*0.01)
[1] 8
> for(i in 0:300) { if(sum(dpois(0:i,3))<0.99) next else {print(i);break}}
[1] 8

例3

例6 设有80台同类型设备,各台工作是相互独立的发生故障的概率都是 0.01,且一台设备的故障能由一个人处理. 考虑两种配备维修工人的方法 , 其一是由四人维护,每人负责20台; 其二是由3人共同维护台80.试比较这两种方法在设备发生故障时不能及时维修的概率的大小.

> ppois(3, 0.8, lower.tail = FALSE)
[1] 0.009079858
> 1-ppois(3, 0.8)
[1] 0.009079858
> 1-sum(dpois(c(0,1,2,3), 0.8)) 
[1] 0.009079858

几何分布

若随机变量X的分布律为

X 1 2 k
P(k) p qp pq(k﹣¹)

,p + q = 1
则称X服从几何分布

R语言:dgeom(x,p)

待更。。。

查看评论

.NET的精华二(开拓者必看)

导读       .NET代表着Microsoft野心勃勃的宏伟战略。作为开发者,不了解.NET就意味着落伍的危险。本文为你展示.NET体系结构的全景图。请务必记住,唯有全局在握,才能踌躇满志…… 作...
  • e_lion
  • e_lion
  • 2001-03-20 20:02:00
  • 739

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

前言 1.大部分参考张丹(Conan)的R的极客理想系列文章《概率基础和R语言》,对此表示感谢。 (http://blog.fens.me/r-probability/) 2.补...
  • hsdcc217
  • hsdcc217
  • 2017-10-13 16:52:30
  • 1132

R语言实现常用算法

# 选择排序 @ auther: wangcaixia selectSort
  • wangcaixia0826
  • wangcaixia0826
  • 2016-03-05 21:59:13
  • 117

R语言笔记-sample()函数

在医学统计学或者流行病学里的现场调查、样本选择经常会提到一个词:随机抽样。随机抽样是为了保证各比较组之间均衡性的一个很重要的方法。那么今天介绍的第一个函数就是用于抽样的函数sample:> x=1:1...
  • Heidlyn
  • Heidlyn
  • 2017-02-20 15:17:17
  • 1200

范数(norm)

范数,在机器学习中通常用于衡量一个向量的大小,形式上, 范数的定义如下:      其中 p>=1 从宏观上来讲,范数是将向量映射到非负值的函数,从直观上来说,范数是向量x到原点的距离。 但是范数...
  • u014529295
  • u014529295
  • 2017-12-17 19:29:17
  • 243

Bayesian Computation with R (2nd)

  • 2009年08月06日 22:42
  • 2.74MB
  • 下载

概率论里的相关系数,协方差

协方差:
  • liuxingwan
  • liuxingwan
  • 2016-06-28 23:58:57
  • 793

65 张 AI 速查表(机器学习、Python、R语言、SQL、概率论......)

  • 2018年04月08日 14:51
  • 31.32MB
  • 下载

概率论与数理统计学习笔记一:事件的概率

参考文献:《概率论与数理统计》-陈希孺 1. 概率是什么     1)主观概率         (1)主观概率含义:为根据其经验和知识及利害关系的一种心态或倾向性         (2...
  • zhang22huan
  • zhang22huan
  • 2013-01-01 12:59:29
  • 2017

【R语言或PYTHON语言入门必读】大数据分析师到底需要懂什么(二)

在统计分析和数据挖掘,我们经常用的算法有二元分类器、数值预测器、回归、贝叶斯网络、Logistics回归、判别式、两步、序列、时间序列、QUEST、C&R树、CHAID、GRI、Apriori、异常、...
  • BETTINA26
  • BETTINA26
  • 2016-09-20 20:03:27
  • 2073
    个人资料
    持之以恒
    等级:
    访问量: 9117
    积分: 502
    排名: 9万+
    最新评论