99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀R語(yǔ)言之隨機(jī)數(shù)與抽樣模擬篇
R語(yǔ)言之隨機(jī)數(shù)與抽樣模擬篇
2018-03-12
收藏

R語(yǔ)言之隨機(jī)數(shù)與抽樣模擬篇

R語(yǔ)言生成均勻分布隨機(jī)數(shù)的函數(shù)是runif()

句法是:runif(n,min=0,max=1)    n表示生成的隨機(jī)數(shù)數(shù)量,min表示均勻分布的下限,max表示均勻分布的上限;若省略參數(shù)min、max,則默認(rèn)生成[0,1]上的均勻分布隨機(jī)數(shù)。

例1:

> runif(5,0,1)     # 生成5個(gè)[0,1]的均勻分布的隨機(jī)數(shù)
[1] 0.5993 0.7391 0.2617 0.5077 0.7199 

> runif(5)         # 默認(rèn)生成5個(gè)[0,1]上的均勻分布隨機(jī)數(shù)
[1] 0.2784 0.7755 0.4107 0.8392 0.7455 

例2

隨機(jī)產(chǎn)生100個(gè)均勻分布隨機(jī)數(shù),作其概率直方圖,再添加均勻分布的密度函數(shù)線,程序如下:

> x=runif(100) 
> hist(x,prob=T,col=gray(.9),main="uniform on [0,1]") 
> curve(dunif(x,0,1),add=T)         #添加均勻分布的密度函數(shù)線

3.1.2 正態(tài)分布隨機(jī)數(shù)

正態(tài)分布隨機(jī)數(shù)的生成函數(shù)是 rnorm()

句法是:rnorm(n,mean=0,sd=1)  其中n表示生成的隨機(jī)數(shù)數(shù)量,mean是正態(tài)分布的均值,默認(rèn)為0,sd是正態(tài)分布的標(biāo)準(zhǔn)差,默認(rèn)時(shí)為1;

例:

隨機(jī)產(chǎn)生100個(gè)正態(tài)分布隨機(jī)數(shù),作其概率直方圖,再添加正態(tài)分布的密度函數(shù)線

> x=rnorm(100) 
> hist(x,prob=T,main="normal mu=0,sigma=1") 
> curve(dnorm(x),add=T)

3.1.3 二項(xiàng)分布隨機(jī)數(shù)

二項(xiàng)分布是指n次獨(dú)立重復(fù)貝努力試驗(yàn)成功的次數(shù)的分布,每次貝努力試驗(yàn)的結(jié)果只有兩個(gè),成功和失敗,記成功的概率為p

生成二項(xiàng)分布隨機(jī)數(shù)的函數(shù)是:rbinom()

句法是:rbinom(n,size,prob)   n表示生成的隨機(jī)數(shù)數(shù)量,size表示進(jìn)行貝努力試驗(yàn)的次數(shù),prob表示一次貝努力試驗(yàn)成功的概率

例:

產(chǎn)生100個(gè)n為10,15,50,概率p為0.25的二項(xiàng)分布隨機(jī)數(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.1.4  指數(shù)分布隨機(jī)數(shù)

R生成指數(shù)分布隨機(jī)數(shù)的函數(shù)是:rexp()  

其句法是:rexp(n,lamda=1) n表示生成的隨機(jī)數(shù)個(gè)數(shù),lamda=1/mean

例:

>x=rexp(100,1/10)     # 生成100個(gè)均值為10的指數(shù)分布隨機(jī)數(shù)
>hist(x,prob=T,col=gray(0.9),main=“均值為10的指數(shù)分布隨機(jī)數(shù)”) 
>curve(dexp(x,1/10),add=T) #添加指數(shù)分布密度線

3.1.5 常見的分布函數(shù)

產(chǎn)生分布的隨機(jī)數(shù),只需要在相應(yīng)的分布前加r就行

表 3-1 常見分布函數(shù)表 
分布  中文名稱 R中的表達(dá)  參數(shù)
Beta  貝塔分布 beta(a,b)  shape1,   shape2 
Binomial  二項(xiàng)分布 binom(n,p)  size,       prob
Cauchy  柯西分布 cauchy( )  location,   scale  Chi-square  卡方分布 chisq(df)  df  Exponential  指數(shù)分布 exp(lamda)  rate  F  F分布 f(df1,df2)  df1         df2
Gamma  伽瑪分布 gamma()  shape       rate
Geometric  幾何分布 geom()  prob  Hypergeometric  超幾何分布 hyper()  m,n,k 
Logistic  邏輯分布 logis()  location    scale
Negative binomial  負(fù)二項(xiàng)分布 nbinom()  size        prob
Normal  正態(tài)分布 norm()  mean, sd  Multivariate normal  多元正態(tài)分布 mvnorm()  mean,cov 
Poisson  泊松分布 pois()  lambda  T  t 分布 t()  df 
Uniform  均勻分布 unif()  min,       max  Weibull  威布兒分布 weibull()  shape,     scale 
Wilcoxon  威爾考可森分布  wilcox()  m,           n

表 3-2 與分布相關(guān)的函數(shù)及代號(hào)

函數(shù)代號(hào)  函數(shù)作用
r-  生成相應(yīng)分布的隨機(jī)數(shù)
d-  生成相應(yīng)分布的密度函數(shù)
p-  生成相應(yīng)分布的累積概率密度函數(shù)
q-  生成相應(yīng)分布的分位數(shù)函數(shù)

例:

dnorm表示正態(tài)分布密度函數(shù)
pnorm表示正態(tài)分布累積概率密度函數(shù)
qnorm表示正態(tài)分布分位數(shù)函數(shù)(即正態(tài)累積概率密度函數(shù)的逆函數(shù))

3.2  隨機(jī)抽樣

3.2.1 放回與無(wú)放回抽樣

R可以進(jìn)行有放回、無(wú)放回抽樣

sample()函數(shù)即可以實(shí)現(xiàn) 

句法為:sample(x,n,replace=F,prob=NULL)

3.3 統(tǒng)計(jì)模擬

3.3.1 幾種常見的模擬方法

1 中心極限定理:

2 二項(xiàng)分布模擬中心極限定理

3 用函數(shù)進(jìn)行模擬

指定模擬次數(shù)m=100,樣本量n=10,概率=0.25,如果要改變這些參數(shù)來(lái)重新進(jìn)行模擬將會(huì)很麻煩,下面將展示如何將上面的程序形成一個(gè)模擬函數(shù)再進(jìn)行模擬。

> sim.clt <- function (m=100,n=10,p=0.25) 
 { z = rbinom(m,n,p)                
    x = (z-n*p)/sqrt(n*p*(1-p))         
    hist(x,prob=T,breaks=20,main=paste("n =",n,”p =”,p)) 
  curve(dnorm(x),add=T)              
 } 
> sim.clt()             # 默認(rèn) m=100,n=10,p=0.25 
> sim.clt(1000)         # 取 m=1000,n=10,p=0.25 
> sim.clt(1000,30)       # 取 m=1000,n=30,p=0.25 
> sim.clt(1000,30,0.5)       # 取 m=1000,n=30,p=0.5 


4 正態(tài)概率模擬

能比直方圖更好判定隨機(jī)數(shù)是否近似服從正態(tài)分布的是正態(tài)概率圖。

其基本思想是:作實(shí)際數(shù)據(jù)的分位數(shù)與正態(tài)分布數(shù)據(jù)的分位數(shù)的散點(diǎn)圖,也就是作樣本分位數(shù)與理論分位數(shù)的散點(diǎn)圖。

3.3.2 模擬函數(shù)的建立方法 

若每次模擬都要編寫一個(gè)循環(huán),非常麻煩.

sim.fun()就是專門用來(lái)解決這類問(wèn)題的

只需要編寫一個(gè)用來(lái)生成隨機(jī)數(shù)的函數(shù),剩下的工作就交給sim.fun來(lái)完成

sim.fun <-function (m,f,...)   # m 模擬樣本次數(shù),f需模擬的函數(shù)
  { 
    sample <-1:m 
    for (i in 1:m) { 
        sample[i] <-f(...) 
     } 

sample 
 } 

例:

二項(xiàng)分布:

先編寫一個(gè)函數(shù)用來(lái)生成一個(gè)二項(xiàng)分布隨機(jī)的標(biāo)準(zhǔn)化值

>f<-function(n=10,p=0.5){s=rbinom(1,n,p);(s-n*p)/sqrt(n*p*(1-p)) } 

> x=sim.fun(1000,f)                  # 模擬1000個(gè)二項(xiàng)隨機(jī)數(shù)
> hist(x,prob=T) 


均勻分布來(lái)模擬中心極限定理:

> f = function(n=10) (mean(runif(n)-1/2)/(1/sqrt(12*n)) 
> x=sim.fun(1000,f)                  # 模擬1000個(gè)均勻隨機(jī)數(shù)
> hist(x,prob=T)

正態(tài)分布

>f=function(n=10,mu=0,sigma=1){r=rnorm(n,mu,sigma);(mean(r)-m
u)/(sigma/sqrt(n)) } 
> x = sim.fun(1000,f)   #模擬1000個(gè)樣本量為10的N(0,1)隨機(jī)數(shù)
> hist(x,breaks=10,prob=T) 

> x = sim.fun(1000,f,30,5,2)   # 模擬1000個(gè)樣本量為30的N(5,4)隨機(jī)數(shù)
> hist(x,breaks=10,prob=T)

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }