发布时间:2024-10-15 13:01
1)等可能的不放回随机抽样
sample(x,n) 其中x为要抽取的向量,n为样本容量。
> sample(1:6,1)
[1] 2
2)等可能的有放回随机抽样
sample(x,n,replace=TRUE) 其中replace=TRUE表示抽样有放回。
> sample(c(\'正\',\'反\'),10,replace=T)
[1] \"正\" \"反\" \"反\" \"反\" \"正\" \"反\" \"反\" \"反\" \"反\" \"反\"
3)不等可能的随机抽样
sample(x,n,replace=TRUE,prob=y) 其中prob=y用于指定x中元素出现的概率,向量y与x等长度。
> sample(c(\'成功\',\'失败\'),10,replace=T,prob = c(0.9,0.1))
[1] \"成功\" \"成功\" \"成功\" \"失败\" \"失败\" \"成功\" \"成功\" \"成功\" \"成功\" \"成功\"
例:从一副完全打乱的52张扑克中取4张,求以下事件的概率:
1)抽取的4张依次为红心A,方块A,黑桃A和梅花A的概率;
抽取的4张是有次序的
1/prod(52:49)
[1] 1.539077e-07
2)抽取的4张为红心A,方块A,黑桃A和梅花A的概率。
抽取的4张是无次序的
1/choose(52,4)
[1] 3.693785e-06
1)伯努利分布 binom(1,p)
2)二项分布 binom(n,p)
3)多项分布 multinom(n,p1,…,pk)
4)负二项分布 nbinom(k,p)
5)几何分布 geom(p)
6)超几何分布 hyper(N,M,n)
7)泊松分布 pois(λ)
1)贝塔分布 beta(a,b)
2)均匀分布 unif(a,b)
3)柯西分布 cauchy(a,b)
4)威布尔分布 weibull(a,b)
5)指数分布 exp(λ)
6)瑞利分布 rayl(b)
7)正态分布 norm(μ,σ2)=N(μ,σ2)
8)对数正态分布 lnorm(μ,σ2)
9)逆正态分布 inorm(μ,λ)
10)伽马分布 gamma(a,b)
11)逆伽马分布 igamma(a,b)
12)卡方分布 chisq(n)=Х2(n)
13)逆卡方分布 ichisq(n)
14)t分布 t(n)
15)F分布 f(n,m)=F(n,m)
16)logistic分布 logis(a,b)
17)Dirichlet分布 dirichlet(α1,…,αk)
18)Pareto分布 pareto(a,b)
19)非中心分布
若R中分布的函数名为func,则
用于计算假设检验中分布的临界值或置信区间的置信限。
其中p1,p2,…是分布的参数值。
当独立观察(试验)样本容量n足够大时,所观察的随机变量X1,X2,…,Xn的和近似服从正态分布
自定义函数 limite.central( )
从图形上考察一个由已知分布产生的容量为n的样本经标准变换后趋于标准正态分布的近似程度
# 默认参数
# r -- 分布为[0,1]上的均匀分布
# m -- 分布的均值为0.5
# s -- 分布的标准差为1/sqrt(12)
# n -- 样本容量有4个:1,3,10,30
# N -- 重复次数为1000
limite.central <-function(r=runif,distpar=c(0,1),m=.5,s=1/sqrt(12),n=c(1,3,10,30),N=1000){
#生成矩阵,分别讨论参数有两个,一个的情况
for (i in n) {
if(length(distpar)==2){
x<- matrix(r(i*N,distpar[1],distpar[2]),nc=i)
}
else{
x<- matrix(r(i*N,distpar),nc=i)
}
#标准化
x <- (apply(x,1,sum)-i*m)/(sqrt(i)*s)
#做出x直方图【亮蓝色;直方图表示结果的频率、计数分量;主标题;y轴上下限】
hist(x,col=\"light blue\",probability = T,main=paste(\'n=\',i),
ylim=c(0,max(.4,density(x)$y)))
#计算x的核密度估计值(窗宽为bw=1),并连接成线【红色,连线宽度=3】
lines(density(x),col=\"red\",lwd=3)
#计算x处标准正态分布的密度函数值,并连接成线【蓝色,连线宽度=3,线型=点线,叠加到前一个图上 】
curve(dnorm(x),col=\"blue\",lwd=3,lty=3,add=T)
#在横坐标处用小的竖线画出x出现的位置
if(N>100){
rug(sample(x,100))
}
else{
rug(x)
}
}
}