统计模拟与R

编程入门 行业动态 更新时间:2024-10-23 20:15:37

统计模拟与R

统计模拟与R

统计模拟初步

基本概念

  • 又称蒙特卡洛方法,所为模拟就是把某一显示的或抽象的系统的部分状态或特征,用另一个系统(称为模型)来代替或模仿。
  • 在传统的方法难以解决的问题中,有很大一部分可以用概率统计模型进行描述。

基本思想

  将各种随机事件的概率特征(概率分布,数学期望)与随机事件的模拟联系起来用试验的方法确定事件的相应概率与数学期望。突出特点是概率模型的解是由试验得到的。

例子——布丰投针试验

利用随机模拟试验估计pi的值。具体过程点击该链接
代码如下:

buffon<-function(n,a,l){k<-0for(i in 1:n){x<-runif(1)*atheta<-runif(1)*piif(l*sin(theta)>=x) {k=k+1}}p=k/npie=2*l/(a*p)result<-c(p,pie);result
}
buffon(10000,1,0.8)

伪随机数的产生方法

随机数是指(0,1)上均匀分布随机变量的值,最早是手工或通过机械方式产生,现可由计算机相机产生伪随机数
  • 乘同余法
    从初值或者称为种子 x 0 x_0 x0​出发,利用公式 x n x_n xn​= mod m,其中a和m是给定的正整数,每个 x n x_n xn​均为0,1,2,…,m-1中的一个, x n x_n xn​/m称为一个伪随机数
  • 混合同余法
    利用如下递推公式
    x n x_n xn​=(a x n − 1 x_{n-1} xn−1​+c) mod m

随机数计算积分

一重积分

比如计算积分 θ \theta θ= ∫ a b g ( x ) d x \int_a^bg(x){\rm d}x ∫ab​g(x)dx

f1=function(n,a,b,g){
X=runif(n)
sum((b-a)*g(a+(b-a)*X))/length(X)
}

或者用R的内置函数来计算积分:

integrate(g,a,b)

计算 ∫ 1 2 x 2 d x \int_1^2x^2{\rm d}x ∫12​x2dx的积分

g<-function(x){x^2
}
int<-integrate(g,1,2)
二重积分

计算 ∬ D e ( z − y ) 2 d x \iint _D{e^{{(z-y)}^2}}{\rm d}x ∬D​e(z−y)2dx D=[0,1] × \times ×[0,1]

#内置函数法
library(cubature)
double<-function(x){exp((x[1]+x[2])^2)}
adaptIntegrate(double,c(0,0),c(1,1))$interal

π \pi π估计方法

模拟案例

  • 追逐问题
  • 赶火车问题

随机变量的模拟方法

离散型随机变量生成方法

二项分布,几何分布,poison分布,超几何分布等

逆变换法

例子:产生分布律如下的随机变量100个

X1234
P0.20.150.30.35
方法1
X=rep(0,100)for(i in 1:100)
{u=runif(1);if(u<0.2){X[i]=1}
else 
if(u<0.35){X[i]=2}
else if(u<0.65)
{X[i]=3}
else X[i]=4
} 

方法2

X=sample(c(1,2,3,4),100,
c(0.2,0.15,0.3,0.35),replace=TRUE)
均匀分布

n<-100
U=runif(n,0,1)
X=floor(n*U)+1
向上取整数:   ceiling(x)
几何分布
ge.f=function(n,p){U=runif(n)
X=floor(log(U)/log(1-p))+1
X
}
poison分布
rp=function(n,lambda){Y=rep(0,n)for(j in 1:n){i=0;p=exp(-lambda);F=pu=runif(1)while(F<=u){p=lambda*p/(i+1);F=F+pi=i+1}Y[j]=i
}
Y
}
二项分布
rb=function(m,n,p){Y=rep(0,m)
for(j in 1:m){
c=p/(1-p);i=0;pr=(1-p)^n;F=pru=runif(1)while(u>=F){pr=(c*(n-i)/(i+1))*pr;F=F+pri=i+1}Y[j]=i}Y}

连续性随机变量

Poisson随机过程生成方法

模拟案例:Markov链

模拟数据的统计方法

更多推荐

统计模拟与R

本文发布于:2024-02-13 04:37:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690714.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!