日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python依照概率抽样_R语言之随机数与抽样模拟篇

發布時間:2024/1/23 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python依照概率抽样_R语言之随机数与抽样模拟篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

R語言生成均勻分布隨機數的函數是runif()

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

例1:

> runif(5,0,1) ?# 生成5個[0,1]的均勻分布的隨機數

[1] 0.5993 0.7391 0.2617 0.5077 0.7199

> runif(5) ?# 默認生成5個[0,1]上的均勻分布隨機數

[1] 0.2784 0.7755 0.4107 0.8392 0.7455

例2

隨機產生100個均勻分布隨機數,作其概率直方圖,再添加均勻分布的密度函數線,程序如下:

> x=runif(100)?> hist(x,prob=T,col=gray(.9),main="uniform on

[0,1]")?> curve(dunif(x,0,1),add=T) ?#添加均勻分布的密度函數線

3.1.2 正態分布隨機數

正態分布隨機數的生成函數是 rnorm()

句法是:rnorm(n,mean=0,sd=1)

其中n表示生成的隨機數數量,mean是正態分布的均值,默認為0,sd是正態分布的標準差,默認時為1;

例:

隨機產生100個正態分布隨機數,作其概率直方圖,再添加正態分布的密度函數線

> x=rnorm(100)?> hist(x,prob=T,main="normal

mu=0,sigma=1")?> curve(dnorm(x),add=T)

3.1.3 二項分布隨機數

二項分布是指n次獨立重復貝努力試驗成功的次數的分布,每次貝努力試驗的結果只有兩個,成功和失敗,記成功的概率為p

生成二項分布隨機數的函數是:rbinom()

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

例:

產生100個n為10,15,50,概率p為0.25的二項分布隨機數:

> 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 ?指數分布隨機數

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

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

例:

>x=rexp(100,1/10) ?# 生成100個均值為10的指數分布隨機數

>hist(x,prob=T,col=gray(0.9),main=“均值為10的指數分布隨機數”)?>curve(dexp(x,1/10),add=T) #添加指數分布密度線

3.1.5 常見的分布函數

產生分布的隨機數,只需要在相應的分布前加r就行

表 3-1 常見分布函數表?分布 ?中文名稱 R中的表達 ?參數

Beta ?貝塔分布 beta(a,b) ?shape1,

shape2?Binomial ?二項分布 binom(n,p) ?size,

prob

Cauchy ?柯西分布 cauchy( ) ?location,

scale ?Chi-square

卡方分布 chisq(df) ?df

Exponential ?指數分布 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 ?負二項分布 nbinom()

size ?prob

Normal ?正態分布 norm() ?mean, sd

Multivariate normal ?多元正態分布

mvnorm() ?mean,cov?Poisson ?泊松分布 pois() ?lambda

T ?t 分布 t()

df?Uniform ?均勻分布 unif() ?min,

max

Weibull ?威布兒分布 weibull()

shape, ?scale?Wilcoxon ?威爾考可森分布 ?wilcox()

m, ?n

表 3-2 與分布相關的函數及代號

函數代號 ?函數作用

r- ?生成相應分布的隨機數

d- ?生成相應分布的密度函數

p- ?生成相應分布的累積概率密度函數

q- ?生成相應分布的分位數函數

例:

dnorm表示正態分布密度函數

pnorm表示正態分布累積概率密度函數

qnorm表示正態分布分位數函數(即正態累積概率密度函數的逆函數)

3.2 ?隨機抽樣

3.2.1 放回與無放回抽樣

R可以進行有放回、無放回抽樣

sample()函數即可以實現

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

3.3 統計模擬

3.3.1 幾種常見的模擬方法

1 中心極限定理:

2 二項分布模擬中心極限定理

3 用函數進行模擬

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

> sim.clt

(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() ?# 默認 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 正態概率模擬

能比直方圖更好判定隨機數是否近似服從正態分布的是正態概率圖。

其基本思想是:作實際數據的分位數與正態分布數據的分位數的散點圖,也就是作樣本分位數與理論分位數的散點圖。

3.3.2 模擬函數的建立方法

若每次模擬都要編寫一個循環,非常麻煩.

sim.fun()就是專門用來解決這類問題的

只需要編寫一個用來生成隨機數的函數,剩下的工作就交給sim.fun來完成

sim.fun

模擬樣本次數,f需模擬的函數

{?sample

{?sample[i]

sample?}

例:

二項分布:

先編寫一個函數用來生成一個二項分布隨機的標準化值

>f

}

> x=sim.fun(1000,f) ?# 模擬1000個二項隨機數

> hist(x,prob=T)

均勻分布來模擬中心極限定理:

> f = function(n=10)

(mean(runif(n)-1/2)/(1/sqrt(12*n))?> x=sim.fun(1000,f) ?# 模擬1000個均勻隨機數

> hist(x,prob=T)

正態分布:

>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個樣本量為10的N(0,1)隨機數

> hist(x,breaks=10,prob=T)

> x = sim.fun(1000,f,30,5,2) ?#

模擬1000個樣本量為30的N(5,4)隨機數

> hist(x,breaks=10,prob=T)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python依照概率抽样_R语言之随机数与抽样模拟篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。