R语言程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言程序相关的知识,希望对你有一定的参考价值。

相信很多都对前面我说的R语言感兴趣吧,分享一下我的资料吧。这是关于验证中心极限定理的R程序!




######验证:无论随机变量原来服从哪种分布,只要样本容量足够大,

#########其均数都会服从正态分布


###1.正态分布####


a<-rnorm(10000,0,1)   #生成一个数据量很大的正态分布的数据

x<-1:100              #生成一个向量用来存放样本均数的向量

a<-data.frame(a)      #将这两个向量存放在数据框中

x<-data.frame(x)


windows(1280,720);par(mfrow=c(2,2))

plot(density(a$a),main = "这是原来的分布")

hist(a$a,main = "这是原来的分布")


for(i in 1:100){      #设置循环,循环抽取100个样本,并将计算出来的均值赋值给数据框中的x变量

    c<-a[sample(nrow(a),1000),] 

    m=mean(c)

    # print(m)           #验证该循环可以正常工作

    x$x[i]<-m

}

plot(density(x$x),main = "这是抽取的样本的均数的分布")    #绘制抽取样本的均值的分布概率密度图

hist(a$a,main = "这是抽取的样本的均数的分布")



##将上面的程序加以改造,以验证其它形式的分布

### 2.0 指数分布####

a<-rexp(100000,1)   #生成一个数据量很大的指数分布的数据

x<-1:100              #生成一个用来存放样本均数的数据框

a<-data.frame(a)      #将这两个向量存放在数据框中

x<-data.frame(x)


windows(1280,720);par(mfrow=c(1,2))

plot(density(a$a),main = "这是原来的分布")


for(i in 1:10000){      #设置循环,循环抽取100个样本,并将计算出来的均值赋值给数据框中的x变量

  c<-a[sample(nrow(a),1000),] 

  m=mean(c)

  # print(m)           #验证该循环可以正常工作

  x$x[i]<-m

}

plot(density(x$x),main = "这是抽取的样本的均数的分布")     #绘制抽取样本的均值的分布概率密度图


### 3.0 t分布####


a<-rt(100,2)  #生成一个数据量很大的t分布的数据

x<-1:1000              #生成一个用来存放样本均数的数据框

a<-data.frame(a)      #将这两个向量存放在数据框中

x<-data.frame(x)


windows(1280,720);par(mfrow=c(1,2))


plot(density(a$a),main = "这是原来的分布")   #查看原始数据的分布状态

for(i in 1:1000){      #设置循环,循环抽取1000个样本,并将计算出来的均值赋值给数据框中的x变量

  c<-a[sample(nrow(a),10),] 

  m=mean(c)

  # print(m)           #验证该循环可以正常工作

  x$x[i]<-m

}

plot(density(x$x),main = "这是抽取的样本的均数的分布")    #绘制抽取样本的均值的分布概率密度图



###4.0 F分布####


a<-rf(10000,1,5)  #生成一个数据量很大的F分布的数据

x<-1:1000             #生成一个用来存放样本均数的数据框

a<-data.frame(a)      #将这两个向量存放在数据框中

x<-data.frame(x)


windows(1280,720);par(mfrow=c(1,2))


plot(density(a$a),main = "这是原来的分布")

for(i in 1:1000){      #设置循环,循环抽取1000个样本,并将计算出来的均值赋值给数据框中的x变量

  c<-a[sample(nrow(a),1000),] 

  m=mean(c)

  # print(m)           #验证该循环可以正常工作

  x$x[i]<-m

}

plot(density(x$x),main = "这是抽取的样本的均数的分布")    #绘制抽取样本的均值的分布概率密度图



###5.0卡方分布 ####


a<-rchisq(100000,1)  #生成一个数据量很大的卡方分布的数据

x<-1:1000              #生成一个用来存放样本均数的数据框

a<-data.frame(a)      #将这两个向量存放在数据框中

x<-data.frame(x)


windows(400,400);par(mfrow=c(1,2))


plot(density(a$a),main = "这是一组呈卡方分布的数据")

for(i in 1:1000){      #设置循环,循环抽取100个样本,并将计算出来的均值赋值给数据框中的x变量

  c<-a[sample(nrow(a),1000),] 

  m=mean(c)

  # print(m)           #验证该循环可以正常工作

  x$x[i]<-m

}

plot(density(x$x),main = "这是从上述卡方分布的数据中抽取的1000个样本的均值分布")

#绘制抽取样本的均值的分布概率密度图


### 6.0 函数解决方案####

myfun<-function(a){

  x<-1:100             #先生成一个1到100的序列,后面可以更改这些值,相当于覆盖掉原来的值

  x<-data.frame(x)

  a<-data.frame(a)

  

  for(i in 1:100){        #设置循环,循环抽取100个样本,并将计算出来的均值赋值给数据框中的x变量

    c<-a[sample(nrow(a),1000),] 

    m=mean(c)

    x$x[i]<-m

  }

  

  windows(1280,720);par(mfrow=c(2,2))

  plot(density(a$a),main = "这是原来的分布")

  hist(a$a,main = "这是原来的分布",col=‘skyblue‘)

  plot(density(x$x),main = "这是抽取的样本的均数的分布")

  hist(a$a,main = "这是抽取的样本的均数的分布",col=‘skyblue‘)

}


###6.1正态分布####

a<-rnorm(10000,0,1)

myfun(a)

###6.2指数分布####

b<-rexp(100000,1) 

myfun(b)

###6.3 t分布####

c<-rt(1000,3) 

myfun(c)

###6.4 F分布####

d<-rchisq(100000,1) 

myfun(d)





以上是关于R语言程序的主要内容,如果未能解决你的问题,请参考以下文章

r语言中r-studio怎么调用

r语言curve函数安装啥包

chatGPT对话R语言

r语言删除不相关属性

r语言赋值变量怎么输入?

R语言实战英文书籍,配套源代码,帮助你学习R语言!(可下载)