R语言自主练习题.docx
《R语言自主练习题.docx》由会员分享,可在线阅读,更多相关《R语言自主练习题.docx(22页珍藏版)》请在冰豆网上搜索。
R语言自主练习题
1,某工厂生产一批滚珠,其直径服从正态分布N(μ,σ2),现从某天的产品中随机抽出六件,测得直径为:
15.1,14.8,15.2,14.9,14.6,15.1,。
若σ2=0.06,求μ的置信区间。
(置信度为0.95)
解:
x<-c(15.1,14.8,15.2,14.9,14.6,15.1)
sigema<-sqrt(0.06)
alpha<-0.05
xbar<-mean(x)
n<-length(x)
t1<-xbar-qnorm(1-alpha/2)*sigema/sqrt(n)
t2<-xbar+qnorm(1-alpha/2)*sigema/sqrt(n)
list(t1,t2),
2,某某自动包装机包装洗衣粉,其重量ζ~N(μ,σ2),其中μ,σ未知。
今随机抽取十二袋测得其重量,经计算得样本均值为xbar=1000.25,修正样本标准差s*=2.6329,试求总体标准差σ的置信水平为0.95的置信区间。
解:
alpha<-0.05
Xbar<-1000.25
Sdx<-2.6329
T1<-sqrt(11)*Sdx/sqrt(qchisq(1-alpha/2,11))
T2<-sqrt(11)*Sdx/sqrt(qchisq(alpha/2,11))
list(T1,T2)
使用t.text函数进行方差未知的均值假设检验
t检验t.test():
调用格式:
(数统P138,例6-3)
x<-c(11.6,11.5,11.3,11.2,11.4,11.7,11.5,11.6,11.4,11.3)
α<-0.05
solution<-t.test(x,mu=11.4,alternative="two.sided",conf.level=1-α)
#x是一个服从正态分布的总体,mu是均值μ
#alternative是指备择假设,“two.sided”(缺省)指双侧(H1:
μ≠μ0),less表示单边检验(H1:
μ<μ1),greater表示单边检验(H1:
μ>μ1)
#conf.level指置信度即1-α
solution
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
#如果p-value>α,则可以认为接受H0,否则拒绝H0,接受H1
例题:
水泥厂用自动包装机包装水泥,每袋额定重量是50kg,某日开工后随机抽查了9袋,称得重量如下:
49.6,49.3,50.1,50.0,49.2,49.9,49.8,51.0,50.2设每袋重量服从正态分布,问包装机工作是否正常(α=0.05)?
x<-c(49.6,49.3,50.1,50.0,49.2,49.9,49.8,51.0,50.2)
α<-0.05
solution<-t.test(x,mu=50,alternative="two.sided",conf.level=1-α)
solution
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
p-value>α,接受H0
认为包装机工作正常。
例题:
一公司称某种类型的电池平均寿命是21.5小时,有一个实验检测了该公司所制造的6套电池,得如下的寿命小时数:
19,18,22,20,16,25
这些结果是否表明这种类型的电池与该公司宣称的寿命不同?
(α=0.05)
x<-c(19,18,22,20,16,25)
α<-0.05
solution<-t.test(x,mu=21.5,alternative="two.sided",conf.level=1-α)
solution
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
p-value>α,接受H0
认为这种类型的电池与该公司宣称的寿命相同
例题:
据长期的经验和资料分析,某砖瓦厂所生产的砖的“抗断强度”X服从正态分布,方差σ^2=1.21,今从该厂所生产的一批砖中,随便抽取6块,测得抗断度如下:
32.56,29.66,31,64,30.00,31.87,31.03
现在问:
这一批砖的平均抗断强度可否认为是32.50?
install.packages("BSDA")
library("BSDA")
x<-c(32.56,29.66,31.64,30.00,31.87,31.03)
α<-0.05
solution<-z.test(x,alternative="two.sided",sigma.x=0.11conf.level=1-α)
solution
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
例2:
片剂车间生产的一种药片,片重服从N(μ,0.0004),今抽取8片,测得每片的重量如下:
0.59,0.57,0.63,0.62,0.60,0.58,0.64,0.62。
问:
如果药片的标准重为0.5,那么这批药片是否合格?
(α=0.05)
install.packages("BSDA")
library("BSDA")
x<-c(0.59,0.57,0.63,0.62,0.60,0.58,0.64,0.62)
α<-0.05
solution<-z.test(x,alternative="two.sided",sigma.x=0.02,conf.level=1-α)
solution
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
一、练习题(题目、数据、代码、结果及解释)
1.使用t.text函数完成下面的例题(P144例6-10)
用10只家兔试验某批注射液对体温的影响,测定每只兔子注射前后的体温,如下注射前:
(37.8,38.2,38.0,37.6,37.9,38.1,38.2,37.5,38.5,37.9)
注射后:
(37.9,39.0,38.9,38.4,37.9,39.0,39.5,38.6,38.8,39.0)
已知家兔体温服从正态分布,问注射前后体温有无显著差异?
(α=0.01)(配对)
2.使用t.text函数完成下面的例题
有甲、乙两台机床加工相同的产品,假定两台机床加工的产品均服从正态分布,且总体方差相等,从这两台机床加工的产品中随机地抽取若干件,测得产品直径(mm)为甲:
(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9);乙:
(19.7,20.8,20.5,19.8,19.4,20.6,19.2)试比较甲乙两台机床加工的产品直径有无显著应差异?
.(α=0.05)
1.答案代码
x<-c(37.8,38.2,38.0,37.6,37.9,38.1,38.2,37.5,38.5,37.9)
y<-c(37.9,39.0,38.9,38.4,37.9,39.0,39.5,38.6,38.8,39.0)
α<-0.01
solution<-t.test(x,y,mu=0,alternative="two.sided",paired=TRUE,var.equal=FALSE,conf.level=1-α)
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
输出结果:
拒绝H0,接受H1(即:
注射前后体温差异显著)
2答案代码
x<-c(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9)
y<-c(19.7,20.8,20.5,19.8,19.4,20.6,19.2)
α<-0.05
solution<-t.test(x,y,mu=0,alternative="two.sided",paired=FALSE,var.equal=FALSE,conf.level=1-α)
if(solution$p.value>α){
print("接受H0")
}else{
print("拒绝H0,接受H1")
}
输入结果:
接受H0(即:
甲乙两台机床加工的产品直径无显著性差异)”
1:
根据经验,在人的身高相等的情况下,血压的收缩Y与体重X1(千克)和年龄X2(岁数)有关,现收集了13个男子的数据,试建立Y关于X1、X2的线性回归方程。
第一步、录入数据,建立多元线性数据模型
X1<-c(76.0,91.5,85.5,82.5,79.0,80.5,74.5,79.0,85.0,76.5,82.0,95.0,92.5)
X2<-c(50,20,20,30,30,50,60,50,40,55,40,40,20)
Y<-c(120,141,124,126,117,125,123,125,132,123,132,155,147)
blood<-data.frame(X1,X2,Y)
lm.sol<-lm(Y~1+X1+X2,data=blood)
summary(lm.sol)
得出Call:
lm(formula=Y~X1+X2,data=blood)
Residuals:
Min1QMedian3QMax
-4.0404-1.01830.46400.69084.3274
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)-62.9633616.99976-3.7040.004083**
X12.136560.1753412.1852.53e-07***
X20.400220.083214.8100.000713***
---
Signif.codes:
0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1
Residualstandarderror:
2.854on10degreesoffreedom
MultipleR-squared:
0.9461,AdjustedR-squared:
0.9354
F-statistic:
87.84on2and10DF,p-value:
4.531e-07
在我们的输入中,关键是lm.sol<-lm(Y~X1+X2+1,data=blood)的调用,这里可以看到,lm使用了参数Y~1+X1+X2,,即表示我们使用的是模型y=d+cx2+bx+e
从计算结果可以得到,回归系数与回归方程检验都是显著的,因此,回归方程为:
Y=-62.96+2.13X1+0.40X2
2:
一元线性回归:
x<-c(0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.23)
y<-c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)
lm.sol<-lm(y~1+x)
lm()函数返回拟合结果的对象,可以用summary()函数查看其内容。
summary(lm.sol)
Residuals:
Min 1Q Median 3Q Max
-2.0431 -0.7056 0.1694 0.6633 2.2653
Coefficients:
EstimateStd.Error tvalue Pr(>|t|)
(Intercept) 28.493 1.580 18.04 5.88e-09***
x 130.835 9.683 13.519.50e-08***
y=-28.49+130.84x
1、删除异常点,重新拟定模型,数据如下(提示:
residuals()函数绘图观察)
x<-c(194.5,194.3,197.9,198.4,199.4,199.9,200.9,201.1,
201.4,201.3,203.6,204.6,209.5,208.6,210.7,211.9,212.2)
y<-c(131.79,131.79,135.02,135.55,136.46,136.83,137.82,138.00,
138.06,138.05,140.04,142.44,145.47,144.34,146.30,147.54,147.80)
答案
x<-c(194.5,194.3,197.9,198.4,199.4,199.9,200.9,201.1,
201.4,201.3,203.6,204.6,209.5,208.6,210.7,211.9,212.2)
y<-c(131.79,131.79,135.02,135.55,136.46,136.83,137.82,138.00,
138.06,138.05,140.04,142.44,145.47,144.34,146.30,147.54,147.80)
plot(x,y)#查看x和y之间的关系
lm.sol=lm(x~y)#拟合模型
summary(lm.sol)
lm.res<-residuals(lm.sol)#残差
plot(lm.res)#奇异点,可以看到第12位有明显问题
lm.up<-lm(x~y,subset=-12)
summary(lm.up)
一、玫瑰图的绘制,主要是先绘制一个直方图,接着将()坐标转化为()坐标
答案:
直角、极
2、以下哪列代码是将直方图转化为玫瑰图的关键()
A、theme(axis.text.y=element_blank())
B、coord_polar()+theme_bw()
C、theme(axis.ticks=element_blank())
D、theme(panel.border=element_blank())
答案:
B
前言
R语言定义:
R是用于统计分析、绘图的语言和操作环境。
R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
今天由我们组为大家讲解一下R语言的绘图方面。
发展历史:
R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。
可以认为R是S语言的一种实现。
而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。
最初S语言的实现版本主要是S-PLUS。
S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。
后来Auckland大学的RobertGentleman和RossIhaka及其他志愿人员开发了一个R系统。
由"R开发核心团队"负责开发。
R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。
R的语法是来自Scheme。
R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。
S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。
所以有人说:
R,是S-PLUS的一个"克隆"。
但是请不要忘了:
R是免费的。
(Risfree)R语言源代码托管在github,具体地址可以看参考资料。
R语言的下载可以通过cran的镜像来查找,具体地址可以看参考资料。
R语言有域名为.cn的下载地址,其中一个由Datagurn,另一个由中国科学技术大学提供的。
R语言Windows版,其中由两个下载地点是Datagurn和USTC提供的。
具体地址可以看参考资料。
目录
①崔迎---------------------------------------颜色
②成金---------------------------------------坐标轴
于志藩------------------------------------图例
③周义---------------------------------------玫瑰图
郑湘丽------------------------------------三维图
1R语言:
颜色
绘图是R语言的主要功能之一,而颜色是传递信息的重要图形要素。
将从区别使用条件函数定义颜色调法例题来向大家说明
1、R预设调色板
这一系列函数有5个,即:
rainbow
heat.colors
terrain.colors
topo.colors
cm.colors
定义rainbow(n,s=1,v=1,start=0,end=max(1,n-1)/n,alpha=1)
heat.colors(n,alpha=1)
terrain.colors(n,alpha=1)
topo.colors(n,alpha=1)
cm.colors(n,alpha=1)
使用条件
n
thenumberofcolors(≥1)tobeinthepalette.颜色数量
s,v
the‘saturation’and‘value’tobeusedtocompletetheHSVcolordescriptions.描述颜色的变量,在所有的情况下,H(Hue)代表色相,S(Saturation)代表饱和度。
v明度
start
the(corrected)huein[0,1]atwhichtherainbowbegins.
end
the(corrected)huein[0,1]atwhichtherainbowends.
alpha
thealphatransparency,anumberin[0,1],seeargumentalphainhsv.透明度
数值均在0或1
在R环境里面输入问号(?
)和上面任一函数名就可以获得这5个函数的用法说明。
这些函数最少需要一个参数,n,表示要得到颜色的数量。
n在系统允许范围内没有限制。
下面用彩虹色调色板函数rainbow产生的颜色绘一个色盘:
setwd("D:
/");n=1000
png("rainbow.disc.png",bg="transparent")
par(mar=c(0,0,0,0))
pie(rep(1,times=n),labels="",col=rainbow(n),border=rainbow(n))
dev.off()
运行后回在D盘根目录下得到一个rainbow.disc.png文件,图形如下:
之后再这个文件下进行的。
改变n值,改变颜色的个数
例题给出函数barplot(rep(1,times=n),col=,border=,axes=FALSE,main=);box()
rainbow
heat.colors
terrain.colors地带
topo.colors
cm.colors
毕竟颜色一般应用在画图。
来得到下图
n<-10
barplot(柱形图)(rep(菱纹分布)(1,times=n),col=rainbow(n),border(边界)=rainbow(n),axes(轴线)=FALSE,main(要点)="Rainbowcolors");box()框的意思
barplot(rep(1,times=n),col=rainbow(n),border=rainbow(n),axes=FALSE,main="Rainbowcolors");box()
barplot(rep(1,times=n),col=heat.colors(n),border=heat.colors(n),axes=FALSE,main="heat.colors");box()
barplot(rep(1,times=n),col=terrain.colors(n),border=terrain.colors(n),axes=FALSE,main="terrain.colors");box()
barplot(rep(1,times=n),col=topo.colors(n),border=topo.colors(n),axes=FALSE,main="topo.colors");box()
barplot(rep(1,times=n),col=cm.colors(n),border=cm.colors(n),axes=FALSE,main="cm.colors");box()
"Whatever","is","worth","doing","is","worth","doing","well"
1)将各元素第一个"t"或"r"替换为"k"
2)将所有"t"或"r"替换为"k"
1)>sub("[tr]","k",c("Whatever","is","worth","doing","is","worth","doing","well"))#将各元素第一个"t"或"r"替换为"k"
[1]"Whakever""is""wokth""doing""is""wokth""doing""well"
2)>gsub("[tr]","k",c("Whatever","is","worth","doing","is","worth","doing","well"))#将所有"t"或"r"替换为"k"
[1]"Whakevek""is""wokkh""doing""is""wokkh""doing""well"
1.将A到F的小写形式、大写形式、和字母表中的顺序(1~6),用-依次连接在一起。
x<-c("a","b","c","d","e","f")
y<-c("A","B","C","D","E","F")
z=1:
6
paste(x,y,z,sep="-")
[1]"a-A-1""b-B-2""c-C-3""d-D-4""e-E-5""f-F-6"
一、提取出0123456789中所有包含相连三位数的子字符串
代码
substring(0123456789,1:
8,3:
9)
结果
[1]"123""234""345""456""567""678""789"""
二、依次提取所有小于1500的四位数中,偶数的百、十、个位数,奇数的十、个位数字
代码
x=1000:
1499
substring(x,2:
3,4)
结果
[1]"000""01""002""03""004""05""006""07""008""09""010""11""012""13""014""15""016""17""018"
[20]"19""020""21"