
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 中心極限定理:
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)解決這類問題的
只需要編寫一個(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
}
例:
先編寫一個(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)
>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
DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實(shí)踐的落地者與價(jià)值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價(jià)值,最終要在 “實(shí)踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場(chǎng)景的分 ...
2025-09-10機(jī)器學(xué)習(xí)解決實(shí)際問題的核心關(guān)鍵:從業(yè)務(wù)到落地的全流程解析 在人工智能技術(shù)落地的浪潮中,機(jī)器學(xué)習(xí)作為核心工具,已廣泛應(yīng)用于 ...
2025-09-09SPSS 編碼狀態(tài)區(qū)域中 Unicode 的功能與價(jià)值解析 在 SPSS(Statistical Product and Service Solutions,統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案 ...
2025-09-09