R语言总和性试验

R语言总和性试验
R语言总和性试验

中北大学理学院

实验报告

实验课程名称:R语言与统计分析实验类别:验证型

专业:应用统计学

班级: 13080441

学号: 1308044142

姓名:吴庚雷

中北大学理学院

R语言与统计分析综合实验

【实验类型】验证性

【实验目的】

(1)掌握利用R语言实现数据处理并进行严格的统计分析;

(2)学会运用R语言进行程序的编写;

(3)熟练掌握R语言绘图功能;

(4)掌握R语言统计分析中的“参数估计”,“假设检验”,“方差分析”,“回归分析”,等基本分析函数。

【实验要求】

(1)实验过程要求用R软件完成;

(2)实验结果逐个导入Word文档,并按问题作出解释;

(3)实验报告按照既定格式书写。

【实验仪器与软件平台】

计算机 R软件

【实验前的预备知识】

1、实验室电脑要求安装有R软件;

2、上实验课程的学生要对涉及到的统计概念有所了解;

3、要求学生事先查阅并熟悉R的相关命令。

【实验内容】

第二章:

1、

用rep()构造一个向量x,它由3个3,4个2,5个1构成。

x<-rep(c(3,2,1),c(3,4,5))

2、

由1.2...16构成两个方阵,其中矩阵A按列输入,矩阵B按行输入,并计算以下:

A<-matrix(1:16,4,4)

B<-matrix(1:16,4,4,byrow=TRUE)

1、

C=A+B

2、

>D=A*B

3、

>E=A%*%B

4、

F<-A[-3,]

[,1] [,2] [,3] [,4]

[1,] 1 5 9 13 [2,] 2 6 10 14 [3,] 4 8 12 16

>G<-B[,-3]

[,1] [,2] [,3]

[1,] 1 2 4

[2,] 5 6 8

[3,] 9 10 12

[4,] 13 14 16

>H=F%*%G

3、

函数solve()有两个作用;solve(A,b)可用于求解线性方程组Ax=b,solve(A)可用于求解矩阵A的逆,用两种方法编程求解方程组Ax=b的解。

A<-matrix(1:9,3,3,byrow=TRUE)

>A[3,3]=10

>b=matrix(1:1,3,1)

>solve(A,b)

[,1]

[1,] -1.000000e+00

[2,] 1.000000e+00

[3,] 3.806634e-16

4、

用三种方法求解它们的內积与外积。

1、

>x=c(1,2,3,4,5)

>y=c(2,4,6,8,10)

>a=t(x)%*%y

e=x%*%t(y)

2、

>b=crossprod(x,y)

>>f=outer(x,y)

3、

>c=x%*%y

>d=x%o%y

5、

编写一个用二分法求解非线性方程的根的函数,并求方程x^3-x-1=0在区间[1,2]内的根,精度要求e=10^-5.

程序:

fzero<-function(f,a,b,eps=1e-5)

{

if(f(a)*f(b)>0)list(fail="finding root is fail!")

else{repeat{if(abs(b-a)

break

x<-(a+b)/2

if(f(a)*f(x)<0)

b<-x

else a<-x}

list(root=(a+b)/2,fun=f(x))}}

>f<-function(x) x^3-x-1

>fzero(f,1,2,1e-5)

$root

[1] 1.324718

$fun

[1] -1.405875e-05

第三章:

1、

从1到100个自然数中随机不放回的抽取5个数,并求它们的和。

>sum(sample(1:100,5))

[1] 205

2、

从一副扑克牌(52张)中随机抽取5张求以下概率

抽到的是10,J,Q,K,A;

(1)>4/choose(52,5)

[1] 1.539077e-06

抽到的是同花顺

(2)9*choose(4,1)/choose(52,5)

[1] 1.385169e-05

3、

从正态分布N(100,100)中随机产生1000个随机数,

(1)rnorm(1000,mean=100,sd=10)

结果随机执行//产生1000个随机数

作出这1000个正态随机数的直方图;

hist( rnorm(1000,mean=100,sd=10))

结果随机执行//产生对应直方图

从这1000个随机数中随机有放回的抽取500个作出直方图(2)>A<- rnorm(1000,mean=100,sd=10)

>sample(A,500,replace=TRUE)

或者sample(rnorm(1000,mean=100,sd=10),500)

结果随机执行//产生500个对应随机数

>hist(sample(A,500,replace=TRUE))

结果随机执行//产生对应直方图

比较它们的样本均值和样本方差

(3)>mean(rnorm(1000,mean=100,sd=10))

[1] 100.0266

>var(rnorm(1000,mean=100,sd=10))

[1] 98.5499

>mean( sample(rnorm(1000,mean=100,sd=10),500)) [1] 99.9142

>var( sample(rnorm(1000,mean=100,sd=10),500)) [1] 106.2611

4、

模拟随机游动:从标准正态分布中产生1000个随机数,并用函数cumsum()作出累积和,最后使用命令plot()作出随机游动示意图

>rnorm(1000,mean=0,sd=1)

//产生1000个标准正态分布随机数

cumsum(rnorm(1000,mean=0,sd=1))

//累积和

plot(cumsum(rnorm(1000,mean=0,sd=1)))

//随机执行产生随机游动图

5、

从标准正态分布中随机产生100个随机数,由此数据求总体均值的95%的置信区间

t.test(rnorm(100,mean=0,sd=1))

//t.test(c(数据))专用于求出95%的置信区间

结果如下:

One Sample t-test

data: rnorm(100, mean = 0, sd = 1)

t = 0.31167, df = 99, p-value = 0.7559

alternative hypothesis: true mean is not equal to 0

95 percent confidence interval:

-0.1638460 0.2249099

sample estimates:

mean of x

0.03053192

第四章:

1、模拟得到1000个参数为0.3的伯努利分布随机数,并用图示表示出来

> plot(rbinom(1000,1,0.3))

2、

用命令rnorm()命令产生1000个均值为10,方差为4的正态分布随机数,用直方图呈现数据分布并添加核密度曲线;

>x=rnorm(1000,mean=10,sd=2)%生成正态分布随机数

> hist(x,xlim=c(min(x),max(x)),probability=T,nclass=max(x)-min(x)+1, col='lightblue',main='Normal distribution,mean=10,sd=2')%绘制直方图

>lines(density(x,bw=1),col='red',lwd=3)%添加核密度曲线

7、

假定某校100名女生的血清总蛋白含量服从均值为75,标准差为3的分布,并假定数据由下面命令产生:

>options(digits=4)

>x=rnorm(100,75,3)%生成随机数

计算样本均值,标准差,以及五数概括;

> summary(x)%计算均值和五数

Min. 1st Qu. Median Mean 3rd Qu. Max.

65.7 72.4 74.2 74.7 76.7 82.3

> sd(x)%标准差

[1] 3.338

绘制出直方图,核密度估计曲线,和QQ图;

>hist(x,xlim=c(min(x),max(x)),probability=T,nclass=max(x)-min(x)+1,c ol='lightgreen',main='Normal distrubution,mean=75,sd=3')%绘制直方图

> lines(density(x,bw=1),col='red',lwd=3)%添加核密度曲线

>qqnorm(x,main="Normality Check via QQ Plot")

> qqline(x,col='red')%绘制QQ图

> qqline(x,col='red')%绘制QQ图

根据数据绘制出茎叶图和框须图;

> stem(x)%绘制茎叶图

The decimal point is at the |

68 | 344

70 | 16889937

72 | 0112233667902334556777789

74 | 0012244556688990023588

76 | 001223667779011234459

78 | 000255790158

80 | 2378906

82 | 20

> boxplot(x)%绘制框须图

8、

某校测得20名学生的4项指标:性别,年龄,身高,体重,具体数据如课本表4.1所示:

(1)、绘制体重对身高的散点图;

>mydata<-read.delim("clipboard")

>plot(mydata$height~mydata$weight,xlab="Weight",ylab="height")

> lines(lowess(mydata$height,mydata$weight),lwd=2)

(2)、绘制不同性别下体重对身高的散点图;

>mydata<-read.delim("clipboard")

> coplot(mydata$height~mydata$weight|mydata$性别,xlab="weight",ylab= " height")

(3)、绘制不同年龄段体重对身高的散点图;

>mydata<-read.delim("clipboard")

> coplot(mydata$height~mydata$weight|mydata$年龄,xlab="weight",ylab= "height")

(4)、绘制不同性别下不同年龄段体重对身高的散点图;

>mydata<-read.delim("clipboard")

> coplot(mydata$height~mydata$weight|mydata$性别*mydata$年龄,xlab="w eight",ylab="height")

第五章:

1、

设总体X是用无线电测距仪测量距离的误差,它服从(A,B)上的均匀分布在200次测量中,误差Xi的次数有ni次:求A,B的矩法估计值;

>x<-rep(c(3,5,7,9,11,13,15,17,19,21),c(21,16,15,26,22,14,21,22,18,2 5))%读入数据

> a<-2*mean(x)

> b<-12*var(x)

> z=b/a

> A<-(a-z)/2%A的矩估计值

A=4.035345

> B<-(a-A)%B的矩估计值

B=20.58466

2、为检验某自来水消毒设备的效果,从消毒后的水中随机抽取50L,化验每L 水中大肠杆菌的个数(假设其服从泊松分布),化验结果如表中所示,试问平均每升水中大肠杆菌的个数为多少时,才能使上述情况概率达到最大;

> x<-rep(c(0,1,2,3,4,5,6),c(17,20,10,2,1,0,0))%读取数据

> lambda<-mean(x)%定义泊松分布的矩估计

> lambda%输出矩估计值

[1]1

3、

已知某种木材的横纹抗压力服从N(mu,sigma^2),现在对十个试件作横纹抗压力实验数据如下:

(1)、求mu的置信水平为0.95的置信区间

> x<-c(482,493,457,471,510,446,435,418,394,469)%读取数据

> t.test(x)%方差未知时求均值的置信区间,调用t.test函数

One Sample t-test

data: x

t = 41.08, df = 9, p-value = 1.495e-11

alternative hypothesis: true mean is not equal to 0

95 percent confidence interval:

432.3069 482.6931

sample estimates:

mean of x

457.5

置信区间为(432.3069, 482.6931)

4、

某卷烟厂生产两种卷烟A和B,现在分别对两种香烟的尼古丁含量进行六次测试,结果如下:

> A<-c(25,28,23,26,29,22)

> B<-c(28,23,30,35,21,27)

(1)、试问两种卷烟中的尼古丁含量的方差是否相等?

> var.test(A,B)

F test to compare two variances

data: A and B

F = 0.3, num df = 5, denom df = 5, p-value = 0.2

alternative hypothesis: true ratio of variances is not equal to 1

95 percent confidence interval:

0.04187 2.13821

sample estimates:

ratio of variances

0.2992

(2)、试求两种卷烟的尼古丁平均含量差的95%的置信区间;

two.sample.ci<-function(x,y,conf.level=0.95,sigma1,sigma2){

options(digits=4)

m=length(x);n=length(y)

xbar=mean(x)-mean(y)

alpha=1-conf.level

zstar=qnorm(1-alpha/2)*(sigma1/m+sigma2/n)^(1/2)

xbar+c(-zstar,+zstar)

}

x<-c(25,28,23,26,29,22)

y<-c(28,23,30,35,21,27)

sigma1=sqrt(var(x))

sigma2=sqrt(var(y))

two.sample.ci(x,y,conf.level=0.95,sigma1,sigma2)

[1] -4.0602 0.3935

5、

为比较俩个小麦品种的产量,选择22块条件相似的试验田,采用相同的耕作方法做试验,结果播种甲品种的12块试验田的单位面积产量和播种乙的12块试验田的单位面积产量如表所示,假定每个品种的单位面积产量均服从正太分布,甲品种产量方差为2140,乙品种产量方差为3250.试求这俩个品种平均面积产量差的置信水平为0.95的置信上限和置信水平为0.90的置信下限;

程序如下:编写函数求产量差的直线区间

two.sample.ci<-function(x,y,conf.level=0.95,sigma1,sigma2){

options(digits=4)

m=length(x);n=length(y)

xbar=mean(x)-mean(y)

alpha=1-conf.level

zstar=qnorm(1-alpha/2)*(sigma1/m+sigma2/n)^(1/2)

xbar+c(-zstar,+zstar)

}

x<-c(628,583,510,554,612,523,530,615,573,603,334,564)

y<-c(535,433,398,470,567,480,498,560,503,426,338,547)

sigma1<-2140

sigma2<-3250

two.sample.ci(x,y,conf.level=0.95,sigma1,sigma2)

[1] 31.29 114.37

two.sample.ci<-function(x,y,conf.level=0.90,sigma1,sigma2){

options(digits=4)

m=length(x);n=length(y)

xbar=mean(x)-mean(y)

alpha=1-conf.level

zstar=qnorm(1-alpha/2)*(sigma1/m+sigma2/n)^(1/2)

xbar+c(-zstar,+zstar)

}

x<-c(628,583,510,554,612,523,530,615,573,603,334,564)

y<-c(535,433,398,470,567,480,498,560,503,426,338,547)

sigma1<-2140

sigma2<-3250

two.sample.ci(x,y,conf.level=0.90,sigma1,sigma2)%调用函数进行双样本

已知方差估计均值

[1] 37.97 107.69

因此置信水平为0.95的置信上限为:114.37;置信水平为0.90的置信下限为:37.97

(6)、

有两台机床生产同一型号的滚珠根据以往经验得知,滚珠的直径都服从正态分布,现在从这两台机床生产的滚珠中随机抽取7个和9个,测得其直径的数据如下:试问机床乙生产的滚珠的方差是否比甲的方差小?

x<-c(15.2,14.5,15.5,14.8,15.1,15.6,14.7)

y<-c(15.2,15.0,14.8,15.2,15.0,14.9,15.1,14.8,15.3)

var.test(x,y)%调用函数进行双样本方差比估计

F test to compare two variances

data: x and y

F = 5.2, num df = 6, denom df = 8, p-value = 0.04

alternative hypothesis: true ratio of variances is not equal to 1

95 percent confidence interval:

1.121 29.208

sample estimates:

ratio of variances

5.216

(7)、

某公司对本公司生产的两种自行车型号A,B的销售情况进行调查,随机选取400人询问他们对A,B的选择,其中有224人喜欢A,试求顾客中喜欢A的人数比例p的置信水平为99%的区间估计;

prop.test(224,400,correct=TRUE)%调用函数进行单总体比率p的区间估计

1-sample proportions test with continuity correction

data: 224 out of 400, null probability 0.5

X-squared = 5.5, df = 1, p-value = 0.02

alternative hypothesis: true p is not equal to 0.5

95 percent confidence interval:

0.5098 0.6091

sample estimates:

p

0.56

所以我们以0.95的置信水平认为比例p落在(0.5098,0.6091)中,点估计为0.56

(8)、

某公司生产一批新产品,产品总体服从正态分布,现要估计这批产品的平均重量,最大允许误差为1,样本标准差s=10,试问在95%的置信水平下至少要抽取多少个产品?

%定义函数

size.norm1<-function(d,var,conf.level){

alpha=1-conf.level

((qnorm(1-alpha/2)*var^(1/2))/d)^2

}

size.norm1(1,100,conf.level=0.95)%调用函数

[1] 384.1

所以应该抽取384个产品

(9)、

%定义函数

size.bin<-function(d,p,conf.level=0.95){

alpha=1-conf.level

((qnorm(1-alpha/2))/d)^2*p*(1-p)

}

size.bin(0.01,0.05,0.90)%调用函数

[1] 1285

需要抽取1285个样本

第六章:

(1)、

v<-c(914,920,910,934,953,940,912,924,930)

t.test(v,mu=950)

One Sample t-test

data: v

t = -5, df = 8, p-value = 0.001

alternative hypothesis: true mean is not equal to 950

95 percent confidence interval:

915.3 937.3

sample estimates:

mean of x

926.3

由结果可知:p值为0.001显著小于0.01,所以应该拒绝原假设,即:认为这批枪弹的初速显著降低。

(3)、

下面给出了俩种的计算器充电以后所能使用的时间的观测值:

设俩样本独立且数据所属的俩个总体的密度函数至多差一个平移量,试问能否认为型号A的计算器平均使用时间比B长(0.01)?

x<-c(5.5,5.6,6.3,4.6,5.3,5.0,6.2,5.8,5.1,5.2,5.9)

y<-c(3.8,4.3,4.2,4.9,4.5,5.2,4.8,4.5,3.9,3.7,3.6,2.9)

t.test(x,y,var.equal=TRUE)

Two Sample t-test

data: x and y

t = 5.3, df = 21, p-value = 3e-05

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

0.7955 1.8212

sample estimates:

mean of x mean of y

5.500 4.192

由结果可知:因为p值显著小于0.01,因此拒绝原假设,即:

(4)、

测得俩批电子器件的样本电阻

设这俩批器材的电阻值分别服从正态分布N和M,样本独立。

(1)试样本俩个总体的方差是否相等(0.01)?

(2)试样本俩个总体的均值是否相等(0.05)?

x<-c(0.140,0.138,0.143,0.142,0.144,0.137)

y<-c(0.135,0.140,0.142,0.136,0.138,0.130)

t.test(x,y,var.equal=TRUE)

Two Sample t-test

data: x and y

t = 1.9, df = 10, p-value = 0.09

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-0.0007721 0.0084388

sample estimates:

mean of x mean of y

0.1407 0.1368

由结果可知:p值为0.09,大于显著性水平0.05,说明应该接受原假设,即:均值显著相等

var.test(x,y)

F test to compare two variances

data: x and y

F = 0.44, num df = 5, denom df = 5, p-value = 0.4

alternative hypothesis: true ratio of variances is not equal to 1

95 percent confidence interval:

0.06196 3.16425

sample estimates:

ratio of variances

0.4428

由结果可知:p值为0.4,大于显著性水平0.01,说明应该接受原假设,即:方差显著相等

(5)、

有人称某地成年人中大学毕业生比例不低于30%,为检验之,随机调查该地15名成年人,发现有3名大学毕业生,有0.95的置信度,问该人的看法是否成立?binom.test(c(12,3),p=0.3)%单样本比率p的近似检验

Exact binomial test

data: c(12, 3)

number of successes = 12, number of trials = 15, p-value = 9e-05 alternative hypothesis: true probability of success is not equal to 0.3 95 percent confidence interval:

0.5191 0.9567

sample estimates:

probability of success

0.8

由结果可知:p值显著小于显著性水平0.05,所以应该拒绝原假设,即:此人看法不成立

第八章

单因素方差分析:

例题8.1.1

以淀粉为原料生产葡萄糖的过程中,残留许多糖蜜,可作为生产酱色的原料,在生产酱色的过程之前应该尽可能的除去杂质,以保证酱色质量。为此对于除杂方法进行选择,在实验中用五种不同除杂方式,每种作4次试验,数据如下:

代码段:

> X<-c(25.6,22.2,28.0,29.8,24.4,30.0,29.0,27.5,25.0,27.7,23.0,32.2,2 8.8,28.0,31.5,25.9,20.6,21.2,22.0,21.2)

> A<-factor(rep(1:5,each=4))#定义各因子变量的数据读入分段。

> miscellany<-data.frame(X,A)#将定义完成各因子变量的分段混合后赋给“miscellany”混合变量。

> aov.mis<-aov(X~A,data=miscellany)#进行方差分析。

> summary(aov.mis)#调用summary函数提取分析结果。

以上结果中:Df表示自由度;sum sq表示平方和;mean sq表示均方和;F va lue表示F检验统计量的值,即为:F比;Pr(>F)表示检验的p值;A就是因素A;Residuals为残差。

可以看出P=0.0162<0.05,说明有理由拒绝原假设,即,有显著性差异。

> plot(miscellany$X~miscellany$A)#绘制以上数据的箱线图。

均值的多重比较:

代码段:

P.adjust.methods#调用处调整p值得方法列表。

Pairwise.t.test(X,A,p.adjust.method=”none”)//应当注意“none”的符号问题。

>pairwise.t.test(X,A,p.adjust.method='none')

#得到多重比较p值,“none”指的是不作任何调整,默认值按照holm调整。

Pairwise.t.test(X,A,p.adjust.method=’holm’)//应当注意首字母不能大写> pairwise.t.test(X,A,p.adjust.method='holm')

#按照缺省的“holm”对p值进行调整。

>pairwise.t.test(X,A,p.adjust.method='bonferroni')#按照缺省的“bonfer roni”对p值进行调整。

同时置信区间发:Tukey法

>TukeyHSD(aov(X~A,miscellany))

共有10个两两比较结果,在0.05的显著性水平下A5-A1,A5-A2,A5-A3,A5-A4的差异是显著的。其他结果均不显著。

方差齐性检验:

代码段:

>bartlett.test(X,A,data=miscellany)#方差齐性检验之“bartlett”检验。

由p值0.1309>0.05,故:接受原假设,认为各处理组数据等方差。

无交互作用双因子方差分析:

例题8.2.1

原来检验果汁中铅含量有三种方法,A1,A2,A3,现在研究出另一种检验方法A4,能否用A4代替前三种方法,要进行实验考察。实验数据如下:

代码段:

>juice<-data.frame(X=c(0.05,0.46,0.12,0.16,0.84,1.30,0.08,0.38,0.4,0. 10,0.92,1.57,0.11,0.43,0.05,0.10,0.94,1.10,0.11,0.44,0.08,0.03,0.93, 1.15),A=gl(4,6),B=gl(6,1,24))#数据输入与整理。

> juice.aov<-aov(X~A+B,juice)#无交互双因素方差分析。

> summary(juice.aov)#提取结果。

p值说明了因素B对含铅量有显著影响,而因素A对含铅量影响不显著。

> bartlett.test(X~A,data=juice)

由于p=0.9659>0.05,所以接受原假设认为各处理组数据等方差。

> bartlett.test(X~B,data=juice)

由于p=0.003766<0.05所以拒绝原假设,认为各处理组数居方差不等。

有交互作用的方差分析:

代码段:

> rats<-data.frame(Time=c(0.31,0.45,0.46,0.43,0.82,1.10,0.88,0.72,0. 43,0.45,0.63,0.76,0.45,0.71,0.66,0.62,0.38,0.29,0.40,0.23,0.92,0.61, 0.49,1.24,0.44,0.35,0.31,0.40,0.56,1.02,0.71,0.38,0.22,0.21,0.18,0.2 3,0.30,0.37,0.38,0.29,0.23,0.25,0.24,0.22,0.30,0.36,0.31,0.33),Toxic ant=gl(3,16,48,labels=c("M","N","K")),Cure=gl(4,4,48,labels=c("Q","W ","R","T")))#定义数据。

> op<-par(mfrow=c(1,2))

> plot(Time~Toxicant+Cure,data=rats)

Hit to see next plot:

相关文档
最新文档