R语言实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验目的

1. 用R生成服从某些具体已知分布的随机变量

二、实验内容

在R中各种概率函数都有统一的形式,即一套统一的前缀+分布函名: d表示密度函数(density );

p 表示分布函数(生成相应分布的累积概率密度函数);

q表示分位数函数,能够返回特定分布的分位( quantile );

r表示随机函数,生成特定分布的随机数( random)。

R中的各种概率统计分布

汉文名称英文名称R対应的乳字附加参数

B分布beta beta shapely shape2, nep

二项式分布binomial binom size, prob

柯阿分布Cauchy cauchy location, scale

忖方分布匚hi-squared chisq elf# nep

指数分布exponential exp rate

F分布F f dfl f dfl, nep

Gamma(¥)分布gamma gamma shape, scale

几何分布geometric geom prob

超几何分布hypergeometric hyper m, n, k

对数币态分布log-normml Inorm meanlog, sdlog

Logistic 分布logistic logis Io匚ation, scale

血二项式分布negative binomial rib inom size, prob

正态分布normal norm mean, sd

泊松分布Poisson pois lambda

Wilcoxon signed rank signrank n

t分布Student's t t df# nep

|均匀分布

uniform unif min f max

韦伯分布Weibull weibull shape, scale

怯和分布

Wilcoxon wilcox m# n

1、通过均匀分布随机数生成概率分布随机数的方法称为逆变换法。对于任意随机变量

X,其分布函数为F,定义其广义逆为:F-(u)=inf{x;F(x) > u}若u~u (0,1),贝U F-(u)和X

的分布一样

Example 1如果X~Exp (1)(服从参数为 u~u(0,1),则 X=-logU~Exp(1) 则可以解出x=-

log(1-u)

Exp from Uniform

通过随机数生成产生的分布与本身的指数分布结果相一致

R

代码如下:

nsim = 10A 4

U = runif(nsim) X = -log(U)

Y = rexp(nsim) X11(h=3.5)X

par(mfrow=c(1,2),mar=c(2,2,2,2))

hist(X,freq=F,main="Exp from Uniform",ylab="",xlab="",ncl=150,col="grey",xlim=c(0,8)) curve(dexp(x),add=T,col="sienna",lwd=2)

hist(Y,freq=F,main="Exp from R",ylab="",xlab="",ncl=150,col="grey",xlim=c(0,8)) curve(dexp(x),add=T,col="sienna",lwd=2)

2、某些随机变量可由指数分布生成。若

X i ~ Exp(1)独立同分布的随机变量,那么从 X i 出

发可以得到以下三个标准分布

Example 2 生成自由度为 6的X 分布。

1的指数分布),F (x )=1-e -x 。若u=1-e -x 并且

Exp from R

R 代码如下: nsim = 10A 4

U=matrix(data=U,nrow=3) X=-log(U)

X=2* apply(X,2,sum) Y =rchisq(nsim,df = 6)

par(mfrow=c(1,2),mar=c(2,2,2,2)) hist(X,freq=F,main="chisq from

Exp",ylab="",xlab="",ncl=150,col="grey",xlim=c(0,8)) d = density(Y) plot(d)

3、一种正态分布随机变量模拟使用

Box-Muller 算法得到 N(0,1)随机变量。这种方法与基于 中心极限定理的近似算法相比较,

Box-Muller

算法是精确的,它由两个均匀分布产生两 个独立的正态分布,其仅有的缺点是必须计算

log ,cos ,sin 。具体解释如下:如果两个

随机变量U 1, U 2独立同分布于u(0,1),那么由此可以产生两个独立的正态分布

X 1, X 2。

Example 3两次产生相同的 10000个服从正态分布的随机数,作其中一个的概率直方

图,并添加正态分布的密度函数线。

chisqifrom Exp

dens»ty.default(x s YJ

蛊i = J —珈(S) cos(27rt ;2).

兀2 = J —21隅©[)血1(加[切

4 ^2 (? 2 4

x!

nsim = 10A4

set.seed(22)

x1 <- rnorm(n sim,mea n = 0,

sd = 1) set.seed(22)

x2 <- rnorm( nsim,mea n = 0, sd = 1)

这里的x1 , x2数值完全相同。

4、设随机变量X 的分布列P{X=X i}=p i,记p(0)=P{X< 0}=0,…,p(i)=P{X< X i}=l:设r

是[0,1]区间上的均匀分布的随机数。当且仅当pl

1)

Example 4生成二项分布的随机数

-50

e

l

r

d

J

n o -

$ -

*

-

3 -

o

s_

g -

首先生成二点分布

> size = 1;p = 0.5

P{p(i-

相关文档
最新文档