登录
首页精彩阅读用R语言求概率分布_r语言 概率分布图
用R语言求概率分布_r语言 概率分布图
2016-12-11
收藏

R语言求概率分布_r语言 概率分布图

R语言一个很方便的用处是提供了一套完整的统计表集合。函数可以对累积分布函数P(X≤x),概率密度函数,分位函数(对给定的q,求满足P(X≤x) > q的最小x)求值,并根据分布进行模拟。

在R中,根据某种分布生成随机序列的函数如下:

在统计学中,产生随机数据是很有用的,R可以产生多种不同分布下的随机数序列。这些分布函数的形式为rfunc(n,p1,p2,…),其中func指概率分布函数,n为生成数据的个数,p1, p2, . . .是分布的参数数值。上面的表给出了每个分布的详情和可能的缺省值(如果没有给出缺省值,则意味着用户必须指定参数)。数据分析培训

例:用0~1之间的均匀分布产生10个随机点

> runif(10)

[1] 0.961465376 0.007521925 0.193619234 0.137027246 0.739370654 0.072907082

[7] 0.674551635 0.650777811 0.984664183 0.796723066

大多数这种统计函数都有相似的形式,只需用d、p或者q去替代r,比如密度函数(dfunc(x, …)),累计概率密度函数(也即分布函数)(pfunc(x,…))和分位数函数(qfunc(p, …),0<p<1)。最后两个函数序列可以用来求统计假设检验中P值或临界值。例如,显著性水平为5%的正态分布的双侧临界值是:

> qnorm(0.025)

[1] -1.959964

> qnorm(0.975)

[1] 1.959964

对于同一个检验的单侧临界值,根据备择假设的形式使用qnorm(0.05)或1 – qnorm(0.95)。

下面是一些用R语言求解概率问题的例子:

1.       某人进行射击,每次击中目标的命中率为0.02,独立射击400次,求至少击中两次的概率。

解:400重伯努利试验,用二项分布求解。

P{X = k} = C400k * (0.02)^k * (0.0=98)^(400-k)

P{X≥2} = 1 – P{X = 0} – P{X = 1}

> 1 – sum(pbinom(0:1, 400, 0.02))

[1] 0.9968561

结论:决不能轻视小概率事情,在多次重复试验的情况下,这一事件的发生几乎是肯定的。


2.       设X服从平均值为1,标准差为2的正态分布(高斯分布),即X ~ N(1, 4),求P{0<X≤1.6}

解:这里X是一个连续型随机变量。求X在某段区间上的概率,用X的分布函数在区间两端的值的差。

方法一:P{0<X≤1.6} = P{X≤1.6} – P{X≤0} = F(1.6) – F(0)

> pnorm(1.6, 1, 2) – pnorm(0, 1, 2)

[1] 0.3093739

方法二:转化为标准正态分布。P{x1 < X ≤x2}=P{(x1-μ)/σ < (X-μ)/σ≤(x1-μ)/σ}=φ((x2-μ)/σ) –φ((x1-μ)/σ)

即P{0<X≤1.6}=φ((1.6-1)/2) –φ((0-1)/2)

> pnorm((1.6-1)/2) – pnorm((0-1)/2)   #pnorm函数的缺省参数mean=0,sd=1,即默认标准正态分布

[1] 0.3093739

知识点:设X是一个随机变量,x是任意实数,函数F(x)=P{X≤x}称为X的分布函数。

对于任意实数x1,x2(x1<x2),有P{x1<X≤x2}=P{X≤x2}-P{X≤x1}=F(x2)-F(x1),

因此,若已知X的分布函数,就可以知道X落在任一区间(x1,x2]上的概率,在这个意义上说,分布函数完整地描述了随机变量的统计规律性。

分布函数是一个普遍的函数,正是通过它,我们将能用数学分析的方法来研究随机变量。

如果将X看成是数轴上的随机点的坐标,那么,分布函数F(x)在x处的函数值就表示X落在区间(-∞,x]上的概率。

3.       求标准正态分布的上α分位点。

知识点:设X~N(0,1),若Zα满足条件 P(X>Zα)=α,0<α<1,则称Zα为标准正态分布的上α分位点.

注意上α分位点和R语言中分位函数(对给定的q,求满足P(X≤x) > q的最小x)之间的关系。

解:下面给出α=0.001、α=0.005、α=0.01、α=0.025时的上α分位点Zα的值。

> exp <- expression_r(qnorm(1 – alpha))

> alpha = 0.001

> eval_r(exp)

[1] 3.090232

> alpha = 0.005

> eval_r(exp)

[1] 2.575829

> alpha = 0.01

> eval_r(exp)

[1] 2.326348

> alpha = 0.025

> eval_r(exp)

[1] 1.959964


数据分析咨询请扫描二维码

客服在线
立即咨询