最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R語言生成隨機數(shù)實例講解

 更新時間:2021年03月15日 16:35:20   作者:REAY  
這篇文章主要介紹了R語言生成隨機數(shù)實例講解,文中圖文講解的很清晰,有需要的同學可以參考下

1.概述

作為一種語言進行統(tǒng)計分析,R有一個隨機數(shù)生成各種統(tǒng)計分布功能的綜合性圖書館。R語言可以針對不同的分布,生成該分布下的隨機數(shù)。其中,有許多常用的個分布可以直接調(diào)用。本文簡單介紹生成常用分布隨機數(shù)的方法,并介紹如何生成給定概率密度分布下的隨機數(shù)。

2.常用分布的隨機數(shù)

在R中各種概率函數(shù)都有統(tǒng)一的形式,即一套統(tǒng)一的 前綴+分布函數(shù)名:

   d 表示密度函數(shù)(density);

   p 表示分布函數(shù)(生成相應(yīng)分布的累積概率密度函數(shù));

   q 表示分位數(shù)函數(shù),能夠返回特定分布的分位數(shù)(quantile);

   r 表示隨機函數(shù),生成特定分布的隨機數(shù)(random)。

2.1各種分布的隨機數(shù)生存函數(shù):

rnorm(n, mean=0, sd=1)  #正態(tài)分布
rexp(n, rate=1)  #指數(shù)
rgamma(n, shape, rate=1, scale=1/rate)  #r 分布
rpois(n, lambda)  #泊松
rt(n, df, ncp)  #t 分布
rf(n, df1, df2, ncp)  #f 分布
rchisq(n, df, ncp=0)  #卡方分布
rbinom(n, size, prob)  #二項分布
rweibull(n, shape, scale=1)  #weibull 分布
rbata(n, shape1, shape2)  #bata 分布runif(n,min=0,max=1) #均勻分布

2.2以二項分布為例,實現(xiàn)上述各類函數(shù):

dbinom(x, size, prob, log = FALSE)# 可用于計算二項分布的概率。
pbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE)#二項分布的分布函數(shù)值
qbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE)#生成二項分布的特定分位數(shù)
rbinom(n, size, prob)#生成二項分布的隨機數(shù)

二項分布隨機數(shù)

二項分布是指n次獨立重復伯努利試驗成功的次數(shù)的分布,每次伯努利試驗的結(jié)果只有兩個,成功和失敗,記成功的概率為p。生成二項分布隨機數(shù)的函數(shù)是:rbinom() 。句法是:rbinom(n,size,prob)。n表示生成的隨機數(shù)數(shù)量,size表示進行伯努利試驗的次數(shù),prob表示一次貝努力試驗成功的概率。

#例:產(chǎn)生100個n為10,20,50,概率p為0.25的二項分布隨機數(shù):
  
 par(mfrow=c(1,3))
 p=0.25
 for( n in c(10,20,50)) { 
   x=rbinom(100,n,p)
   hist(x,prob=T,main=paste("n =",n))
   xvals=0:n
   points(xvals,dbinom(xvals,n,p),type="h",lwd=3)
  }
 par(mfrow=c(1,1))

3.離散隨機變量的生成3.1逆變換法

假設(shè)我們希望生成一個離散型隨機變量X,它有密度

我們首先可以生成一個均勻分布的隨機數(shù),使得:

 

#代碼實現(xiàn)如下:<br>p1<-0.15
p2<-0.2
p3<-0.3
p4<-0.35
disRand<-function(i){
 u<-runif(1,0,1)
 if(u<p1) x<-4 else
  if(u<p2+p2) x<-2 else
   if(u<p3+p2+p1) x<-1 else
    x<-3
   return(x)
   }

3.2二項隨機變量的生成

Example:假設(shè)要生成1000個服從b(100,0.6)的隨機數(shù)

p<-0.6
n<-100
c<-p/(1-p)
i<-0
pp<-(1-p)^n
f<-pp
binomialRandomeV<-function(o){
 u<-runif(1,0,1)
 f<-
 while(u>=f){
  pp<-c*(n-i)*pp/(i+1)
  f<-f+pp
  i<-i+1
 }
 return(i)
}
sapply(c(1:1000),binomialRandomeV)

到此這篇關(guān)于R語言生成隨機數(shù)實例講解的文章就介紹到這了,更多相關(guān)R語言生成隨機數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

呼图壁县| 玉树县| 桦南县| 罗甸县| 江陵县| 阿拉善左旗| 曲阜市| 天台县| 崇阳县| 乌恰县| 土默特左旗| 同仁县| 和田县| 抚顺市| 岳阳县| 南召县| 云安县| 吉首市| 漳浦县| 杨浦区| 闻喜县| 渭源县| 延安市| 县级市| 赫章县| 湖南省| 滕州市| 宜春市| 仁布县| 德化县| 若尔盖县| 广元市| 青岛市| 怀宁县| 兴海县| 湘乡市| 类乌齐县| 利辛县| 云阳县| 临夏县| 桐柏县|