R练习-常用统计分析模型

1. 今测得汽车的行驶速度speed和刹车距离dist数据如下。

speed: 4,4,7,7,8,9

dist: 2,10,4,22,16,10

(1)做speed与dist的散点图,并以此判断speed与dist之间是否大致呈线性关系。

(2)计算speed与dist的相关系数并做假设检验。

s = c(4,4,7,7,8,9)
d = c(2,10,4,22,16,10)
n = length(s)
# cars = mtcars
# (1)做speed与dist的散点图
par(cex = 1)
plot(s,d)

# (2)计算speed与dist的相关系数并做假设检验
r = cor(s,d)  # 相关系数
r  # 0.414409509425982
# 假设检验:
# 原假设 x与y没有显著线性关系
tr = r / sqrt((1-r^2)/(n-2)) #计算tr相关系数检验统计量
tr # 0.910699538875469
cor.test(s,d, method='pearson')
# p-value = 0.414 > 0.05, 接受原假设,认为x与y没有显著线性关系

2. 由专业知识可知,合金的强度 y(107Pa)与合金中的碳的含量x(%)有关。为了生产出强度满足顾客需要的合金,在冶炼时应该如何控制碳的含量?如果在冶炼过程中通过化验得知了碳的含量,能否预测这炉合金的强度?

  x: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:42,43.5,45,45.5,45,47.5,49,53,50,55,55,60

(1)做x与y的散点图,并以此判断x与y之间是否大致呈线性关系。

(2)计算x与y的相关系数并做假设检验。

(3)做y对x的最小二乘回归,并给出常用统计量。

(4)预测当x=0.22时,y等于多少? 预测当x=0.25时,y等于多少?

# (1)做x与y的散点图
plot(x,y)
# x与y之间大致呈正相关的线性关系
# (2)计算x与y的相关系数并做假设检验。
r = cor(x,y); r  #0.973687162423445
# 假设检验:原假设 没有线性关系
fm = lm(y~x)
summary(fm)
# Pr(>|t|)  < 0.05
# F-statistic: 182.6 on 1 and 10 DF,  p-value: 9.505e-08 < 0
# 拒绝原假设,认为x与y具有明显的线性关系
# (3)做y对x的最小二乘回归,并给出常用统计量。
lsfit(x,y)
# Intercept         X 
# 28.49282 130.83483 
# 求解的拟合直线为:yhat = 28.49282 + 130.83483 x
# (4)预测当x=0.22时,y等于多少? 预测当x=0.25时,y等于多少?
predict(fm, data.frame(x=c(0.22,0.25)), interval='confidence')
# 57.27648 61.20153

3. 多项式回归:1609年,伽利略证明了一个物体在一个水平力的作用下,其下落轨道为一抛物线。为了验证这一事实,他做了一项实验并度量了两个变量:高度和距离,数据如下:

高度(x) 100 200 300 450 600 800 1000

距离(y) 253 337 395 451 495 534 574

通过数据描点,伽利略显然看到数据分布呈抛物线,且在数学上证明了它。在现代的眼光看来,如果确信为抛物线,我们可用二次回归模型得到哪些系数。

x = c(100, 200, 300, 450, 600, 800, 1000)
y = c(253, 337, 395, 451, 495, 534, 574)
plot(x,y)
fm3 = lm(y~I(x^2))
summary(fm3)
# Pr(>|t|) = 0.000109 < 0.05
# F-statistic:  17.3 on 1 and 5 DF,  p-value: 0.008829 < 0.05
# 拒绝原假设,认为y与x^2的线性关系显著,即y与x的二次回归显著

lsfit(x^2,y)
#   Intercept          X 
# 3.428679e+02   2.727533e-04 
# 拟合的曲线为:y = 3.428679e+02 + 2.727533e-04 x^2

6. 作为产品经理,你想知道3部填充机器是否有相等的平均填充时间。你分配了15个都是经过训练、富有经验的工人,去记录机器填充的时间。其中,每台机器均分配5个人。在0.05 的显著性水平下,平均填充时间是否相等?

机器1 机器2 机器3
25.4 23.4 20
26.31 21.8 22.2
24.1 23.5 19.75
23.74 22.75 20.6
25.1 21.6 20.4
d1 = c(25.4,26.31, 24.1,23.74,25.1)
d2 = c(23.4,21.8,23.5,22.75,21.6)
d3 = c(20,22.2,19.75,20.6,20.4)
data.frame(mean(d1),mean(d2),mean(d3))
# 原假设:平均填充时间相等 
# 备择假设:平均填充时间不相等
# K-W秩和检验
kruskal.test(list(d1, d2, d3))
# p-value = 0.003058 < 0.05
# 拒绝原假设,认为平均填充时间显著不相等
Y = c(25.4,26.31, 24.1,23.74,25.1, 
        23.4,21.8,23.5,22.75,21.6,
        20,22.2,19.75,20.6,20.4)
A = c(1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3)
data6 = data.frame(cbind(num,code))
data6
anova(lm(Y~factor(A),data=data6))
# 	Pr(>F) =  4.684037e-05 < 0.05
# 拒绝原假设,认为平均填充时间显著不相等

7. 使用4种燃料A,3种推进器B作火箭射程试验,每一种组合情况做一次试验,则得火箭射程如下,试分析各种燃料A与各种推进器B对火箭射程有无显著影响?

A1 A2 A3 A4
B1 582 491 601 758
B2 562 541 709 582
B3 653 516 392 487

Y = c(582,491,601,758,
      562,541,709,582,
      653,516,392,487)
A = c(1,2,3,4, 1,2,3,4, 1,2,3,4)
B = c(1,1,1,1, 2,2,2,2, 3,3,3,3)
data7 = data.frame(cbind(Y,A,B))
anova(lm(Y~factor(A)+factor(B),data=data7))
# Pr(>F)  	0.7387472  0.4491177  > 0.05
# 接受原假设,认为各种燃料A与各种推进器B对火箭射程有显著影响

你可能感兴趣的:(R语言,r语言,线性回归)