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语言之随机数与抽样模拟篇相关推荐

  1. R语言之随机数与抽样模拟篇

    转载自:http://blog.csdn.net/lilanfeng1991/article/details/18505723 3.1 随机数的产生 3.1.1 均匀分布随机数 R语言生成均匀分布随机 ...

  2. R语言——(三)、随机数与抽样模拟

    文章目录 前序r d p q 一.一元随机数的产生 1.均匀分布随机数runif 2.正态分布随机数的产生rnorm 3.指数分布随机数产生rexp 4.二项分布随机数的产生rbinom 二.多元随机 ...

  3. python r语言培训_R语言学习第一课

    最早2010年6月17日建立的这个博客, 开始学习R语言也是在4年前,读过Robert I. Kabacoff著的<R语言实战>,从中学到了不少R语言的实践技能. 最近开始关注统计学,运筹 ...

  4. python基因差异分析_R语言之生信②差异基因分析2

    目录 R语言之生信②差异基因分析2 样品的无监督聚类 检查基因表达分析最重要的探索性策略之一是多维定标(MDS)图或类似的图.该图以无监督的方式显示了样本之间的相似性和不相似性,以便人们可以了解在进行 ...

  5. 利用python构建马科维茨_R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现...

    动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案.通过建议并测试: 增加最大权重限制 增加目标波动率约束 下面,我将查看8个资产的结果: 首先,让我们加载所有历史数据 #****** ...

  6. python求几何平均_R语言的几何平均数,调和平均数,平方平均数

    平方平均数最容易实现a root.mean.square 几何平均数实现算法,要考虑到NA或负值geometry.mean geo_mean log_data gm return(gm) } 也可以用 ...

  7. r语言 python 金融 论文_R语言实现金融数据的时间序列分析及建模

    一 移动平均 移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动规律. R可用filter()函数做移动平均. ...

  8. bootstrap 时间线_R语言——通过bootstrap自抽样量化统计估计量的不确定性

    开始今天的内容之前,需要大吼一声放假啦!感恩节假期正式开始,并且为防止节假日人流带来的更严重的新冠传染,感恩节之后本学期所有的课程也都将转为线上,也就是说,直到春季学期开学,我都会蜗居在自己的公寓里. ...

  9. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同

    C语言 将产生的随机数存入数组,数据不能相同 1.定义一个一维数,数组大小为24. 2.产生0~23的随机数. 3.将产生的随机数存入i数组,要求数组中的每个数据不能相同. 4.补充说明,这个子程序要 ...

最新文章

  1. 最强通道注意力来啦!金字塔分割注意力模块,即插即用,效果显著,已开源!...
  2. Prism V2之旅(1)
  3. jQuery ready(fn) 页面载入函数
  4. bash-高级编程--位置变量
  5. todo文件说明已停止工作_番茄ToDo,一款颜值功能兼备的番茄钟。
  6. 通过设计国际象棋游戏来了解策略模式
  7. html中高与行高的区别,CSS中line-height与height有什么区别
  8. Kotlin协程的迷惑
  9. QDomNode读取xml
  10. 计算机组成原理 第一章 计算机系统概述
  11. python类和对象详解_python面向对象编程:类和对象详解介绍 – Python高级开发教程...
  12. Tableau9——计算字段
  13. 新猿木子李:0基础学python培训教程 Python操作Redis之集合类型2
  14. 天威dns服务器无响应,天威DNS服务器地址设置
  15. MySQL 事务隔离级别,读现象,MVCC
  16. 【备忘】 modbusTcp4个寄存器电力遥信遥控对应
  17. 前端基础知识学习 XML JSON RESTFUL SOAP WEBSERVICE
  18. h5故障代码_格力变频空调显示故障代码“H5”维修方法与流程
  19. 【读书笔记】十年涨薪30倍:财务职场透视.html.pdf
  20. Attempt to invoke virtual method ‘boolean android.graphics.Bitmap.isRecycled()‘

热门文章

  1. mybatis集成JNDI【注部署项目后测试代码在jsp或servlet中】
  2. 线性代数:二次型为什么可以用矩阵表示?——分组因式分解推导
  3. 使用screen -r时提示“There is no screen to be resumed matching xxx”的解决办法
  4. 【Java语法】关于使用new和不使用new的数组值传递还是引用传递的问题
  5. gradle中的build script详解
  6. 使用V8和node轻松profile分析nodejs应用程序
  7. Spring Boot注解
  8. Spring5参考指南:容器扩展
  9. HDFS High Availability体系介绍(Using the Quorum Journal Manager)
  10. CSS盒子模型的使用及其注意事项——响应式Web系列学习笔记