R语言的各种分布函数

R语言的各种分布函数:

至于具体的用法了,大家可以使用help命令,根据实际情况来进行使用


R提供工具来计算累计分布函数p(cummulative distribution function CDF),概率密度函数d和分位数函数q,另外在各种概率分布前加r表示产生随机序列

(R这种直接在分布前面加前缀的语法太难读了,pt() 误以为还是一个函数,实际上的含义是p(t()),为什么不写成这个格式呢? 不过t()返回什么好...)


常见概率分布

 

离散型


 

1.二项分布Binomial distribution:binom

二项分布指的是N重伯努利实验,记为X ~ b(n,p),E(x)=np,Var(x)=np(1-p)

pbinom(q,size,prob), q是特定取值,比如pbinom(8,20,0.2)指第8次伯努利实验的累计概率。size指总的实验次数,prob指每次实验成功发生的概率

dbinom(x,size,prob), x同上面的q同含义。dfunction()对于离散分布来说结果是特定值的概率,对连续变量来说是密度(Density)

rbinom(n, size, prob),产生n个b(size,prob)的二项分布随机数

qbinom(p, size, prob),quantile function 分位数函数。

分位数:

若概率0<p<1,随机变量X或它的概率分布的分位数Za。是指满足条件p(X>Za)=α的实数。如t分布的分位数表,自由度f=20和α=0.05时的分位数为1.7247。 --这个定义指的是上侧α分位数

α分位数:

实数α满足0 <α<1 时,α分位数是使P{X< xα}=F(xα)=α的数xα

双侧α分位数是使P{X<λ1}=F(λ1)=0.5α的数λ1、使 P{X>λ2}=1-F(λ2)=0.5α的数λ2。

qbinom是上侧分位数,如qbinom(0.95,100,0.2)=27,指27之后P(x>=27)>=0.95。即对于b(100,0.2)为了达到0.95的概率至少需要27次重复实验。


 


2.负二项分布negative binomial distribution (帕斯卡分布)nbinom

掷骰子,掷到一即视为成功。则每次掷骰的成功率是1/6。要掷出三次一,所需的掷骰次数属于集合 { 3, 4, 5, 6, ... } 。掷到三次一的掷骰次数是负二项分布的随机变量。

dnbinom(4,3,1/6)=0.0334898,四次连续三次1的概率为这个数。

概率函数为f(k;r,p)=choose(k+r-1,r-1)*p^r*(1-p)^k, 当r=1时这个特例分布是几何分布

rnbinom(n,size,prob,mu) 其中n是需要产生的随机数个数,size是概率函数中的r,即连续成功的次数,prob是单词成功的概率,mu未知..(mu是希腊字母υ的读音)


3.几何分布Geometric Distribution,geom

n次伯努利试验,前n-1次皆失败,第n次才成功的机率

dgeom(x,prob),注意这里的x取值是0:n,即dgeom(0,0.2)=0.2,以上的二项分布和负二项分布也是如此。

ngeom(n,prob)


4.超几何分布Hypergeometric Distribution,hyper

它描述了由有限个(m+n)物件中抽出k个物件,成功抽出指定种类的物件的次数(不归还)。

概率:p(x) = choose(m, x) choose(n, k-x) / choose(m+n, k) for x = 0, ..., k. 

 

当n=1时,这是一个0-1分布即伯努利分布,当n接近无穷大∞时,超几何分布可视为二项分布

rhyper(nn,m,n,k),nn是需要产生的随机数个数,m是白球数(计算目标是取到x个白球的概率),n是黑球数,k是抽取出的球个数

dhyper(x, m, n, k)



5.泊松分布 Poisson Distribution,pois

 

p(x) = lambda^x exp(-lambda)/x!

for x = 0, 1, 2, .... The mean and variance are E(X) = Var(X) = λ.  x ~ π(λ)

泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生率.泊松分布适合于描述单位时间内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数,机器出现的故障数,自然灾害发生的次数等等.

rpois(n, lambda)

dpois(x,lambda)


连续型

 

6.均匀分布 Uniform Distribution,unif

f(x) = 1/(max-min) for min <= x <= max. 

 

runif(n,min,max).

生成16位数的随机数:as.character(runif(1,1000000000000000,9999999999999999))

dunif(x,min,max)=1,恒定等于1/(max-min).

对于连续变量,dfunction的值是x去特定值代入概率密度函数得到的函数值。


7.正态分布Normal Distribution,norm

f(x) = 1/(sqrt(2 pi) sigma) e^-((x - mu)^2/(2 sigma^2)) 

其中mu是均值,sigma是standard deviation标准差

理论上可以证明如果把许多小作用加起来看做一个变量,那么这个变量服从正态分布

rnorm(n,mean=0,sd=1)后两个参数如果不填则默认为0,1。

dnorm(x,mean,sd),sd是标准差。

画出正态分布概率密度函数的大致图形:

x<-seq(-3,3,0.1)

plot(x,dnorm(x)) plot中的x,y要有相关关系才会形成函数图。

qnorm(p,mean,sd),这个还是上侧分位数,如qnorm(0.05)=-1.644854,即x<=这个数的累计概率小于0.05

 

3sigma法则:对于正态分布的x,x取值在(mean-3sd,mean+3sd)几乎是在肯定的。

因为pnorm(3)-pnorm(-3)=0.9973002

 

用正太分布产生一个16位长的随机数字:

as.character(10^16*rnorm(1))



8.伽玛分布Gamma Distribution,gamma

http://zh.wikipedia.org/w/index.php?title=伽玛分布&variant=zh-cn

 

假设随机变量X为 等到第α件事发生所需之等候时间。

 

f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s) for x >= 0, a > 0 and s > 0.

 

Gamma分布中的参数α,称为形状参数(shape parameter),即上式中的s,β称为尺度参数(scale parameter)上式中的a

E(x)=s*a, Var(x)=s*a^2. 当shape=1/2,scale=2时,这样的gamma分布是自由度为1的开方分布

 

http://zh.wikipedia.org/wiki/File:Gamma_distribution_pdf.png

 

dgamma(x,shape,rate=1,scale=1/rate), 请注意R在这里提供的rate是scale尺度参数的倒数,如果dgamma(0,1,2)则表示dgamma(0,shape=1,rate=2),而非dgamma(0,shape=1,scale=2)

pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

       log.p = FALSE)

qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

       log.p = FALSE)

rgamma(n, shape, rate = 1, scale = 1/rate)


9.指数分布Exponential Distribution,exp

指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进机场的时间间隔、中文维基百科新条目出现的时间间隔等等。

 

记作X ~ Exponential(λ)。

 

f(x) = lambda e^(- lambda x) for x >= 0. 

 

其中lambda λ > 0是分布的一个参数,常被称为率参数(rate parameter). E(x)=1/λ,Var(x)=1/λ^2

 

dexp(x, rate = 1, log = FALSE)

pexp(q, rate = 1, lower.tail = TRUE, log.p = FALSE)

qexp(p, rate = 1, lower.tail = TRUE, log.p = FALSE)

rexp(n, rate = 1)

假设在公交站台等公交车平均10分钟有一趟车,那么每小时候有6趟车,即每小时出现车的次数~ Exponential(1/6)

我们可以产生10个这些随机数看看rexp(10,1/6)

60/(rexp10,1/6)即为我们在站台等车的随机时间,如下:

 [1]  6.443148 24.337131  6.477096  2.824638 15.184945 14.594903

 [7]  7.133842  8.222400 42.609784 15.182827

可以看见竟然有一个42.6分钟的随机数出现,据说这种情况下你可以投诉上海的公交公司。

不过x符合指数分布,1/x还符合指数分布吗?

pexp(6,1/6)=0.6321206, 也就是说这种情况下只有37%的可能公交车会10分钟以内来。

按照以上分析一个小时出现的公交车次数应该不符合指数分布。


10.卡方分布(non-central)Chi-Squared Distribution,chisq

它广泛的运用于检测数学模型是否适合所得的数据,以及数据间的相关性。数据并不需要呈正态分布

k个标准正态变量的平方和即为自由度为k的卡方分布。

E(x)=k,Var(x)=2k.

 

dchisq(x, df, ncp=0, log = FALSE)

pchisq(q, df, ncp=0, lower.tail = TRUE, log.p = FALSE)

qchisq(p, df, ncp=0, lower.tail = TRUE, log.p = FALSE)

rchisq(n, df, ncp=0)

其中df为degrees of freedom。ncp是non-centrality parameter (non-negative).ncp=0时是central卡方分布,ncp不为0时,表示这个卡方分布是由非标准正态分布组合而成,ncp=这些正态分布的均值的平方和。



11.β分布Beta Distribution,beta

变量x仅能出现于0到1之间。

空气中含有的气体状态的水分。表示这种水分的一种办法就是相对湿度。即现在的含水量与空气的最大含水量(饱和含水量)的比值。我们听到的天气预告用语中就经常使用相对湿度这个名词。

相对湿度的值显然仅能出现于0到1之间(经常用百分比表示)。冬季塔里木盆地的日最大相对湿度和夏季日最小相对湿度。证实它们都符合贝塔分布

dbeta(x, shape1, shape2, ncp = 0, log = FALSE)

pbeta(q, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE)

qbeta(p, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE)

rbeta(n, shape1, shape2, ncp = 0)

shape1,shape2是beta分布的两个参数。E(x)=s1/(s1+s2),var(x)=s1*s2/(s1+s2)^2 * (s1+s2+1)


12.t分布Student t Distribution,t

应用在当对呈正态分布的母群体的均值进行估计。当母群体的标准差是未知的但却又需要估计时,我们可以运用学生t 分布。

学生t 分布可简称为t 分布。其推导由威廉·戈塞于1908年首先发表,当时他还在都柏林的健力士酿酒厂工作。因为不能以他本人的名义发表,所以论文使用了学生(Student)这一笔名。之后t 检验以及相关理论经由罗纳德·费雪的工作发扬光大,而正是他将此分布称为学生分布。

dt(x, df, ncp, log = FALSE)

pt(q, df, ncp, lower.tail = TRUE, log.p = FALSE)

qt(p, df, ncp, lower.tail = TRUE, log.p = FALSE)

rt(n, df, ncp)

其中df是自由度,ncp是non-centrality parameter delta,If omitted, use the central t distribution。ncp出现时表示分布由非标准的卡方分布构成。


13.F分布

一个F-分布的随机变量是两个卡方分布变量的比率。F-分布被广泛应用于似然比率检验,特别是方差分析中

df(x, df1, df2, ncp, log = FALSE)

pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)

qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)

rf(n, df1, df2, ncp)

df1,df2是两个自由度,ncp同t分布中的ncp。

转载自:https://blog.csdn.net/u012429555/article/details/78071728

  • 13
    点赞
  • 156
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值