R语言 CHAR 09

一元线性回归

  1. 确定因变量与自变量的关系
  2. 建立线性关系模型,并对模型进行估计和检验
  3. 利用回归方程进行预测
  4. 对回归模型进行诊断

绘制散点图

library(car)
scatterplot(销售收入~广告支出,data=table,pch=19,xlab='add out',ylab='in',cex.lab=0.8)

计算相关系数

cor(table[,2],table[,3])

检验相关系数

cor.test(table[,2],table[,3])

回归模型的拟合

model1<-lm(销售收入~广告支出,data=table)
summary(model1)

计算回归系数的置信区间

confint(model1,level=0.95)

输出方差分析表

anova(model1)

点预测值、置信区间、预测区间

x0<-table$广告支出
pre_model<-predict(model1)
con_int<-predict(model1,data.frame(广告支出=x0),interval = "confidence",level=0.95)
pre_int<-predict(model1,data.frame(广告支出=x0),interval = "prediction",level=0.95)
data.frame(销售收入=table$销售收入,点预测值=pre_model,置信下限=con_int[,2],置信上限=con_int[,3],预测下限=pre_int[,2],预测上限=pre_int[,3])

x0为具体值时 点预测值、置信区间、预测区间

x0<-data.frame(广告支出=500)
predict(model1,newdata=x0)
predict(model1,data.frame(广告支出=500),interval = "confidence",level=0.95)
predict(model1,data.frame(广告支出=500),interval = "prediction",level=0.95)

回归预测值(pre)残差(res)标准化残差(zre)

pre<-fitted(model1)
res<-residuals(model1)
zre<-model1$residuals/(sqrt(deviance(model1)/df.residual(model1)))
data.frame(销售收入=table$销售收入,点预测值=pre,残差=res,标准化残差=zre)

绘制成分残差图

library(car)
crPlots(model1)

残差的模型诊断图

par(mfrow=c(2,2),cex=0.8,cex.main=0.7)
plot(model1)

检验方差齐性ncvTest

library(car)
ncvTest(model1)

绘制散布-水平图

spreadLevelPlot(model1)

D- W检验(时间序列可能出现的残差自相关

library(car)
durbinWatsonTest(model1)


9.1 确定变量间的关系

  1. 变量之间是否有关系
  2. 如果有,他们有什么关系
  3. 变量间关系强度如何
  4. 样本所反映的变量关系能否代表总体变量之间的关系

9.1.1 变量间的关系

  • 函数关系:存在准确函数;x与y一一对应
  • 相关关系:影响一个变量的因素有多个,之间存在不确定性;x对应多个y

9.1.2 相关关系的描述

常用工具:散点图
请添加图片描述
请添加图片描述
请添加图片描述

  • 绘制散点图
> table<-read.csv("/Users/zhourui/Documents/example9_1.csv")
> library(car)
> scatterplot(销售收入~广告支出,data=table,pch=19,xlab='add out',ylab='in',cex.lab=0.8)

请添加图片描述

请添加图片描述

9.1.3 关系强度的度量

散点图可以判断两个变量之间有没有相关关系,做出大致描述,但是准确度量变量间关系强度,需要计算相关系数

1. 相关系数

请添加图片描述
请添加图片描述

假定:

  • 两变量有线性关系
  • 两变量都是随机变量
  • 服从一个联合的双变量正态分布
  • 样本数据中无极端值

2.相关系数的检验

总体相关系数通过样本相关系数预测,样本抽样不同,样本相关系数不同,则需要考察样本相关系数的可靠性:显著性检验

  • 提出假设
    请添加图片描述
  • 计算检验统计量

请添加图片描述

  • 进行决策,求出P值,如果P小于a,拒绝H0,表示总体两个变量之间线性关系显著

  • 计算相关系数

> cor(table[,2],table[,3])
[1] 0.937114
  • 检验相关系数
> cor.test(table[,2],table[,3])

	Pearson's product-moment correlation

data:  table[, 2] and table[, 3]
t = 11.391, df = 18, p-value = 1.161e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.8450142 0.9752189
sample estimates:
     cor 
0.937114 

线性关系显著

9.2 模型估计和检验

请添加图片描述

9.2.1 回归模型和回归方程

  • 回归模型
    请添加图片描述
    请添加图片描述
    误差项假定:
    1、正态性
    2、方差齐性
    3、独立性
  • 估计回归方程
    请添加图片描述

9.2.2 参数的最小二乘估计

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 回归模型的拟合
> model1<-lm(销售收入~广告支出,data=table)
> summary(model1)

Call:
lm(formula = 销售收入 ~ 广告支出, data = table)

Residuals:
    Min      1Q  Median      3Q     Max 
-766.30 -273.85  -26.79  174.73  900.66 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 2343.8916   274.4825   8.539 9.56e-08 ***
广告支出       5.6735     0.4981  11.391 1.16e-09 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 394 on 18 degrees of freedom
Multiple R-squared:  0.8782,	Adjusted R-squared:  0.8714 
F-statistic: 129.8 on 1 and 18 DF,  p-value: 1.161e-09
  • 计算回归系数的置信空间
> confint(model1,level=0.95)
                  2.5 %      97.5 %
(Intercept) 1767.225152 2920.558006
广告支出       4.627092    6.719825
  • 输出方差分析表
> anova(model1)
Analysis of Variance Table

Response: 销售收入
          Df   Sum Sq  Mean Sq F value    Pr(>F)    
广告支出   1 20139304 20139304  129.76 1.161e-09 ***
Residuals 18  2793629   155202                      
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

请添加图片描述

  • 绘制拟合图
> attach(table)
> plot(销售收入 ~ 广告支出)
> text(销售收入 ~ 广告支出,lable=企业编号,cex=0.6,adj=c(-0.6,0.25),col=4)
> abline(model1,col=2,lwd=2)
> n=nrow(table)
> for(i in 1:n){segments(table[i,3],table[i,2],table[i,3],model1$fitted[i])
  mtext(expression(hat(y)==2343.8916+5.6735%*%广告支出),cex=0.7,side=1,line=-6,adj=0.75)
  arrows(600,4900,550,5350,code = 2,angle=15,length = 0.08)}

请添加图片描述

x轴:广告支出,y轴:销售收入
请添加图片描述

9.2.3 模型的拟合优度

通过估计方程可以使用x来预测y,但是预测的精确度取决于回归模型对观测数据的拟合程度

  • 拟合优度:回归直线与各观测点的接近程度
  • 决定系数:评价拟合优度的统计量

1. 决定系数

误差来源:

  • 自变量取值不同
  • x以外其他随机因素影响
    请添加图片描述
    请添加图片描述
    请添加图片描述
  • 回归平方和(SSR)

回归值与均值的误差平方和,由x变化引起的y变化,反映了y的总误差中由于x变化引起的y变化部分,可以由回归直线解释
请添加图片描述

  • 残差平方和(SSE)

实际值与回归值的误差平方和,由除了x之外其他因素引起的y变化,不能由回归直线解释
请添加图片描述

SST=SSR+SSE

请添加图片描述
请添加图片描述

Multiple R-squared:  0.8782,	Adjusted R-squared:  0.8714 

请添加图片描述

2.残差的标准误

请添加图片描述
Se度量各观测值在直线周围分散程度,反映了实际观测值与估计观测值差异程度,也是对误差项的标准差估计
在排除x对y的线性影响后,y随机波动大小的估计量
各点越靠近直线,Se越小

请添加图片描述

9.2.4 模型的显著性检验

建立回归模型前,已经假定x与y有线性关系,但假定是否成立需要检验后才能确定。(判断假定是否成立
显著性检验主要包含:线性关系检验回归系数检验

1. 线性关系检验

F检验
请添加图片描述
请添加图片描述

> anova(model1)
Analysis of Variance Table

Response: 销售收入
          Df   Sum Sq  Mean Sq F value    Pr(>F)    
广告支出   1 20139304 20139304  129.76 1.161e-09 ***
Residuals 18  2793629   155202         

请添加图片描述

请添加图片描述

2.回归系数的检验和推断

t检验
请添加图片描述
请添加图片描述

> confint(model1,level=0.95)
                  2.5 %      97.5 %
(Intercept) 1767.225152 2920.558006
广告支出       4.627092    6.719825

请添加图片描述

9.3 利用回归方程进行预测

回归分析目的:根据建立的回归方程用给定自变量预测因变量

  • 点估计:对于给定x值,求出一个预测值
  • 估计区间:在点估计基础上求的估计区间(均值的置信区间、个别值的预测区间)

9.3.1 均值的置信区间

对于给定x得到一个y均值的区间
请添加图片描述

请添加图片描述
请添加图片描述

9.3.2 个别值的预测区间

对于给定x得到一个y具体值的区间

请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

  • 点预测值、置信区间、预测区间
> x0<-table$广告支出
> pre_model<-predict(model1)
> con_int<-predict(model1,data.frame(广告支出=x0),interval = "confidence",level=0.95)
> pre_int<-predict(model1,data.frame(广告支出=x0),interval = "prediction",level=0.95)
> data.frame(销售收入=table$销售收入,点预测值=pre_model,置信下限=con_int[,2],置信上限=con_int[,3],预测下限=pre_int[,2],预测上限=pre_int[,3])
   销售收入 点预测值 置信下限 置信上限 预测下限 预测上限
1    4597.5 4264.925 3998.348 4531.501 3395.383 5134.467
2    6611.0 6945.066 6590.492 7299.641 6044.643 7845.490
3    7349.3 6448.639 6168.060 6729.217 5574.703 7322.575
4    5525.7 5260.049 5074.789 5445.310 4411.897 6108.201
5    4675.9 4763.054 4552.697 4973.412 3909.069 5617.039
6    4418.6 4762.487 4552.080 4972.894 3908.490 5616.484
7    5845.4 6196.170 5948.675 6443.664 5332.287 7060.053
8    7313.0 7151.013 6763.533 7538.493 6237.130 8064.896
9    5035.4 5015.523 4822.893 5208.154 4165.731 5865.315
10   4322.6 4578.100 4349.549 4806.650 3719.452 5436.747
11   6389.5 6320.986 6057.644 6584.328 5452.430 7189.542
12   4152.2 4011.888 3709.980 4313.796 3130.873 4892.904
13   5544.8 4854.964 4652.116 5057.813 4002.798 5707.131
14   6095.1 5946.538 5726.896 6166.179 5090.218 6802.857
15   3626.2 3821.828 3491.525 4152.130 2930.682 4712.973
16   3745.4 4074.296 3781.397 4367.196 3196.327 4952.266
17   5121.8 5888.101 5674.071 6102.132 5033.204 6742.998
18   5674.5 5747.967 5545.680 5950.254 4895.934 6600.000
19   4256.6 4043.660 3746.360 4340.960 3164.212 4923.107
20   5803.7 6008.946 5782.898 6234.994 5150.961 6866.931
  • 绘制置信区间预测区间图
    请添加图片描述

请添加图片描述

请添加图片描述

  • x0为具体值时 点预测值、置信区间、预测区间
> x0<-data.frame(广告支出=500)
> predict(model1,newdata=x0)
       1 
5180.621 
> predict(model1,data.frame(广告支出=500),interval = "confidence",level=0.95)
       fit      lwr      upr
1 5180.621 4994.127 5367.115
> predict(model1,data.frame(广告支出=500),interval = "prediction",level=0.95)
       fit      lwr      upr
1 5180.621 4332.199 6029.043

9.4 回归模型的诊断

请添加图片描述

9.4.1 残差与残差图

请添加图片描述

  • 回归预测值(pre)残差(res)标准化残差(zre)
> pre<-fitted(model1)
> res<-residuals(model1)
> zre<-model1$residuals/(sqrt(deviance(model1)/df.residual(model1)))
> data.frame(销售收入=table$销售收入,点预测值=pre,残差=res,标准化残差=zre)
   销售收入 点预测值       残差 标准化残差
1    4597.5 4264.925  332.57536  0.8441934
2    6611.0 6945.066 -334.06646 -0.8479784
3    7349.3 6448.639  900.66117  2.2861954
4    5525.7 5260.049  265.65073  0.6743151
5    4675.9 4763.054  -87.15430 -0.2212283
6    4418.6 4762.487 -343.88696 -0.8729063
7    5845.4 6196.170 -350.76993 -0.8903777
8    7313.0 7151.013  161.98700  0.4111801
9    5035.4 5015.523   19.87679  0.0504543
10   4322.6 4578.100 -255.49955 -0.6485479
11   6389.5 6320.986   68.51398  0.1739126
12   4152.2 4011.888  140.31161  0.3561603
13   5544.8 4854.964  689.83567  1.7510460
14   6095.1 5946.538  148.56225  0.3771033
15   3626.2 3821.828 -195.62753 -0.4965716
16   3745.4 4074.296 -328.89643 -0.8348550
17   5121.8 5888.101 -766.30113 -1.9451423
18   5674.5 5747.967  -73.46670 -0.1864844
19   4256.6 4043.660  212.94024  0.5405174
20   5803.7 6008.946 -205.24580 -0.5209861

请添加图片描述
请添加图片描述

  • a:合理(x越大,残差越小)
  • b:违背误差方差相等假设(异方差性)
  • c:回归模型不合理,应选择非线性回归模型

9.4.2 检验模型的假定

1. 检验线性关系

  • F检验
  • 绘制成分残差图
> library(car)
> crPlots(model1)

请添加图片描述

x轴:广告支出
y轴:销售收入(因变量与残差之和)
没有明显的非线性模式,二者之间线性关系假定成立

2. 检验正态性

  • SW检验
  • KS检验
  • 残差的QQ图
  • 模型诊断(下)
> par(mfrow=c(2,2),cex=0.8,cex.main=0.7)
> plot(model1)

请添加图片描述

  • Normal Q-Q:标准化残差的正态QQ图➡️检验残差的正态性假定

各点基本上在直线周围随机分布,没有固定模式,正态性假设成立

  • Residuals vs Fitted:残差值与拟合值图➡️因变量与自变量之间的线性关系假定是否成立

如果因变量与自变量之间为线性关系,那么残差值与拟合值之间没有任何系统关系,在0轴水平线附近随机波动

  • Scale-Location:位置尺寸图➡️判断残差的方差齐性假定是否成立

若成立,则各个点在水平线周围随机分布

  • Residuals vs Leverage:残差与杠杆图➡️是否有离群点、高杠杆值点、强影响点

3. 检验方差齐性

  • 检验方差齐性ncvTest

> library(car)
> ncvTest(model1)
Non-constant Variance Score Test 
Variance formula: ~ fitted.values 
Chisquare = 1.126441, Df = 1, p = 0.28854

p = 0.28854,不拒绝原假设,可认为回归模型满足方差齐性

  • 绘制散布-水平图
> spreadLevelPlot(model1)

Suggested power transformation:  0.8730215 

请添加图片描述

横坐标:拟合值
纵坐标:标准化残差绝对值
线:最佳拟合曲线
线接近水平直线,没有非线性特征,各点随机分布,满足方差齐性

4. 检验独立性

请添加图片描述
请添加图片描述

  • D- W检验(时间序列可能出现的残差自相关
> library(car)
> durbinWatsonTest(model1)
 lag Autocorrelation D-W Statistic p-value
   1       0.1330482      1.679232   0.464
 Alternative hypothesis: rho != 0

p=0.464,不拒绝原假设,显示残差无自相关

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值