
R語言之隨機數(shù)與抽樣模擬篇
R語言生成均勻分布隨機數(shù)的函數(shù)是runif()
句法是:runif(n,min=0,max=1) n表示生成的隨機數(shù)數(shù)量,min表示均勻分布的下限,max表示均勻分布的上限;若省略參數(shù)min、max,則默認生成[0,1]上的均勻分布隨機數(shù)。
例1:
> runif(5,0,1) # 生成5個[0,1]的均勻分布的隨機數(shù)
[1] 0.5993 0.7391 0.2617 0.5077 0.7199
> runif(5) # 默認生成5個[0,1]上的均勻分布隨機數(shù)
[1] 0.2784 0.7755 0.4107 0.8392 0.7455
例2
隨機產(chǎn)生100個均勻分布隨機數(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)分布隨機數(shù)
正態(tài)分布隨機數(shù)的生成函數(shù)是 rnorm()
句法是:rnorm(n,mean=0,sd=1) 其中n表示生成的隨機數(shù)數(shù)量,mean是正態(tài)分布的均值,默認為0,sd是正態(tài)分布的標準差,默認時為1;
例:
隨機產(chǎn)生100個正態(tài)分布隨機數(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 二項分布隨機數(shù)
二項分布是指n次獨立重復(fù)貝努力試驗成功的次數(shù)的分布,每次貝努力試驗的結(jié)果只有兩個,成功和失敗,記成功的概率為p
生成二項分布隨機數(shù)的函數(shù)是:rbinom()
句法是:rbinom(n,size,prob) n表示生成的隨機數(shù)數(shù)量,size表示進行貝努力試驗的次數(shù),prob表示一次貝努力試驗成功的概率
例:
產(chǎn)生100個n為10,15,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.1.4 指數(shù)分布隨機數(shù)
R生成指數(shù)分布隨機數(shù)的函數(shù)是:rexp()
其句法是:rexp(n,lamda=1) n表示生成的隨機數(shù)個數(shù),lamda=1/mean
例:
>x=rexp(100,1/10) # 生成100個均值為10的指數(shù)分布隨機數(shù)
>hist(x,prob=T,col=gray(0.9),main=“均值為10的指數(shù)分布隨機數(shù)”)
>curve(dexp(x,1/10),add=T) #添加指數(shù)分布密度線
3.1.5 常見的分布函數(shù)
產(chǎn)生分布的隨機數(shù),只需要在相應(yīng)的分布前加r就行
表 3-1 常見分布函數(shù)表
分布 中文名稱 R中的表達 參數(shù)
Beta 貝塔分布 beta(a,b) shape1, shape2
Binomial 二項分布 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 負二項分布 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ù)及代號
函數(shù)代號 函數(shù)作用
r- 生成相應(yīng)分布的隨機數(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 隨機抽樣
3.2.1 放回與無放回抽樣
R可以進行有放回、無放回抽樣
sample()函數(shù)即可以實現(xiàn)
句法為:sample(x,n,replace=F,prob=NULL)
3.3 統(tǒng)計模擬
3.3.1 幾種常見的模擬方法
1 中心極限定理:
2 二項分布模擬中心極限定理
3 用函數(shù)進行模擬
指定模擬次數(shù)m=100,樣本量n=10,概率=0.25,如果要改變這些參數(shù)來重新進行模擬將會很麻煩,下面將展示如何將上面的程序形成一個模擬函數(shù)再進行模擬。
> 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() # 默認 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)概率模擬
能比直方圖更好判定隨機數(shù)是否近似服從正態(tài)分布的是正態(tài)概率圖。
其基本思想是:作實際數(shù)據(jù)的分位數(shù)與正態(tài)分布數(shù)據(jù)的分位數(shù)的散點圖,也就是作樣本分位數(shù)與理論分位數(shù)的散點圖。
3.3.2 模擬函數(shù)的建立方法
若每次模擬都要編寫一個循環(huán),非常麻煩.
sim.fun()就是專門用來解決這類問題的
只需要編寫一個用來生成隨機數(shù)的函數(shù),剩下的工作就交給sim.fun來完成
sim.fun <-function (m,f,...) # m 模擬樣本次數(shù),f需模擬的函數(shù)
{
sample <-1:m
for (i in 1:m) {
sample[i] <-f(...)
}
sample
}
例:
二項分布:
先編寫一個函數(shù)用來生成一個二項分布隨機的標準化值
>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個二項隨機數(shù)
> hist(x,prob=T)
均勻分布來模擬中心極限定理:
> f = function(n=10) (mean(runif(n)-1/2)/(1/sqrt(12*n))
> x=sim.fun(1000,f) # 模擬1000個均勻隨機數(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個樣本量為10的N(0,1)隨機數(shù)
> hist(x,breaks=10,prob=T)
> x = sim.fun(1000,f,30,5,2) # 模擬1000個樣本量為30的N(5,4)隨機數(shù)
> hist(x,breaks=10,prob=T)
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10