R语言之违背基本假设的几种情况xt4.13

2023-12-26 11:40

本文主要是介绍R语言之违背基本假设的几种情况xt4.13,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第4章 违背基本假设的几种情况

4.13 某软件公司的月销售额数据见表4-12,其中,x为总公司的月销售额(万元);y为某分公司的月销售额(万元)。
(1)用普通最小二乘法建立y与x的回归方程;
(2)用残差图及DW检验诊断序列的相关性;
(3)用迭代法处理序列相关,并建立回归方程。
(4)用一阶差分的方法处理数据,建立回归方程;
(5)比较普通最小二乘法所得的回归方程和迭代法、一阶差分法所建立回归方程的优良性。
tips:(3)使用R语言进行二次迭代处理序列相关

rm(list=ls())序号=c(1:20)
x=c(127.3,130.0,132.7,129.4,135.0,137.1,141.1,142.8,145.5,145.3,148.3,146.4,150.2,153.1,157.3,160.7,164.2,165.6,168.7,172.0)
y=c(20.96,21.40,21.96,21.52,22.39,22.76,23.48,23.66,24.10,24.01,24.54,24.28,25.00,25.64,26.46,26.98,27.52,27.78,28.24,28.78)
data4.13<-data.frame(序号,x,y)
data4.13# ----x为总公司的月销售额(万元),y为某分公司的月销售额(万元)----
#(1)用普通最小二乘法建立y与x的回归方程----
data4.13 <- read.csv('D:/rwork/应用回归/习题数据/表4-12.csv',head=TRUE)
attach(data4.13) #把数据框添加到R的搜索路径中,以便于下面直接调用x和y
lm4.13 <- lm(y~x,data=data4.13) #以y为因变量,x为自变量建立回归方程,并将结果赋给lm4.13
summary(lm4.13) #回归分析,得到普通最小二乘法的随机误差项标准差σ为0.09744
# 得到回归方程y^=-1.435+0.176x#(2)用残差图及DW检验诊断序列的自相关性----
##图示检验法
# (2.1)以自变量x为横轴,绘制回归残差项e(i)的图形----
e <- resid(lm4.13) #计算残差
plot(x,e,xlab='x',ylab='e',main='残差散点图')
abline(h=c(0),lty=5) #添加虚直线e=0
# 从图中可以看到,残差有规律的变化,呈现大致反W形状,说明随机误差项存在自相关性。#(2.2)绘制e(i-1),e(i)的散点图----
# 以e(i-1)为横坐标,e(i)为纵坐标(i=2,3,...,n),绘制散点图
n <- length(e)
e_i <- e[c(2:n)]
e_i_1 <- e[c(1:n-1)]
plot(e_i_1,e_i,main='e(i-1),e(i)的散点图')
abline(h=c(0),v=c(0),lty=5)
# 由残差图可见大部分的点落在第一、三象限内,表明随机扰动项存在着正的序列相关。#(2.3)DW检验诊断----
# 法一:使用lmtest包
library(lmtest)
dwtest(lm4.13,alternative='two.sided') #DW检验
# 法二:使用car包
library(car)
durbinWatsonTest(lm4.13) #统计量诊断自相关性
# 可知DW值为0.663,P值=0.0001257,查DW表,n=20,k=2,显著性水平α=0.05,
#  得dL=1.20,dU=1.41,由于DW=0.663<dL=1.20,知DW值落入正相关区域,即残差序列存在正的自相关。#(3)用迭代法处理序列相关,并建立方程----
#(3.1)第一次迭代y(t)'=y(t)-ρ*y(t-1),x(t)'=x(t)-ρ*x(t-1)=----
# 自相关系数ρ^=1-DW/2=1-0.66325/2=0.668375,计算的y',x'
rho_hat <- 1-0.66325/2
n <- length(x)
yy <- y[2:n]-rho_hat*y[1:n-1]
xx <- x[2:n]-rho_hat*x[1:n-1]
lm4.13_3 <- lm(yy~xx)
summary(lm4.13_3) #回归分析,得到一步迭代误差项的标准差σ为0.07296
anova(lm4.13_3) #方差分析表
# 得到新的回归方程y^'=-0.303+0.173x',把y(t)'=y(t)-0.6685y(t-1),x(t)'=x(t)-0.6685x(t-1)代入上式,
# 还原为原始变量的方程y(t)^=-0.303+0.6685y(t-1)+0.173*(x(t)-0.6685x(t-1)) #这里(t)、(t-1)为下标
#  即y(t)^=-0.3+0.6685y(t-1)+0.173x(t)-0.1157x(t-1)dwtest(lm4.13_3,alternative='two.sided') #DW检验
# 或durbinWatsonTest(lm4.13_3) 
# 得到DW=1.3597,P值=0.0862>0.05,查DW表,n=19,k=2,显著性水平α=0.05,
# 得dL=1.18,dU=1.40,可看到新的回归方程的DW=1.36,且1.18<1.36<1.40,
#  因而DW检验落入不确定区域此时,一步迭代误差项的标准差σ为0.07296,小于ε的标准差0.097
# 由于一步迭代的DW检验落入不确定区域,因而可以考虑对数据进行二步迭代,也就是对和重复以上迭代过程.#(3.2)第二次迭代y(t)''=y(t)'-ρ*y(t-1)',x(t)''=x(t)'-ρ*x(t-1)'=----
# 自相关系数ρ^=1-DW/2=1-1.3597/2=0.32015,计算的y'',x''
rho_hat2 <- 1-1.3597/2
nn <- length(xx)
yyy <- yy[2:nn]-rho_hat2*yy[1:nn-1]
xxx <- xx[2:nn]-rho_hat2*xx[1:nn-1]
lm4.13_32 <- lm(yyy~xxx)
summary(lm4.13_32) #回归分析,得到一步迭代误差项的标准差σ为0.06849
anova(lm4.13_32) #方差分析表
# 得到新的回归方程y^''=-0.073+0.169x'',y(t)''=y(t)'-0.32015*y(t-1)',x(t)''=x(t)'-0.32015*x(t-1)'代入上式,
# 还原为原始变量的方程y(t)^'=-0.073+0.32015y(t-1)'+0.169x(t)'-0.05410535x(t-1)' #这里(t)、(t-1)为下标dwtest(lm4.13_32,alternative='two.sided') #DW检验
# 或durbinWatsonTest(lm4.13_32) 
# 得到DW=1.696,P值=0.4011<0.05,查DW表,n=18,k=2,显著性水平α=0.05,
# 得dL=1.16,dU=1.39,可看到新的回归方程的DW=1.696,且dU<1.696<(4-dU),
#  因而DW检验落入无自相关区域,误差标准项0.06849,略小于一步迭代的标准差0.7296。
# 但是在检验都通过的情况下,由于一步迭代的值和F值均大于两步迭代后的值,
#  且根据取模型简约的原则,最终选择一步迭代的结果,即y(t)^=-0.3+0.6685y(t-1)+0.173x(t)-0.1157x(t-1)#(4)用一阶差分法处理数据,并建立回归方程----
# 计算出△y(t)=y(t)-y(t-1),△x(t)=x(t)-x(t-1)
dy <- y[2:n]-y[1:n-1] #或dy <- diff(y)
dx <- x[2:n]-x[1:n-1] #或dx <- diff(x)
lm4.13_4 <- lm(dy~dx)
summary(lm4.13_4) #回归分析
anova(lm4.13_4) #方差分析表
# 得到新的回归方程△y(t)=0.033+0.161△x(t),把△y(t)=y(t)-y(t-1),△x(t)=x(t)-x(t-1)代入上式,
# 还原为原始变量的方程y(t)^=0.033+y(t-1)+0.161*((t)-x(t-1)) #这里(t)、(t-1)为下标dwtest(lm4.13_4,alternative='two.sided') #DW检验
# 或durbinWatsonTest(lm4.13_4) 
# 得到DW=1.4798,P值=0.2728>0.05,查DW表,n=19,k=2,显著性水平α=0.05,
# 得dL=1.18,dU=1.40,可看到新的回归方程的dU=1.40<DW=1.4798<4-dU,
#  因而DW检验落入无自相关区域,可知残差序列ε不存在自相关,一阶差分法成功地消除了序列自相关。
# 即回归方程y(t)^=0.033+y(t-1)+0.161*((t)-x(t-1))detach(data4.13) #与attach()相对应,将数据框从搜索路径中移除#(5)比较以上各方法所建回归方程的优良性----
# 差分法的DW为1.48,消除相关性最彻底,但是迭代法的sigma_hat值最小为0.07395,拟合的更好。

(5)比较普通最小二乘法所得的回归方程和迭代法、一阶差分法所建立回归方程的优良性。
答:本题中自相关系数ρ^=0.6685,不接近于1,不适宜用差分法,另外由迭代法的F值及R ^2 都大于差分法的值,故差分法的效果低于迭代法的效果;而普通最小二乘法的随机误差项标准差为0.09744,大于迭代的随机误差项标准差0.07296,所以迭代的效果要优于普通最小二乘法,所以本题中一次迭代法最好。

在这里插入图片描述




参考课本:应用回归分析(R语言版),何晓群编著

这篇关于R语言之违背基本假设的几种情况xt4.13的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539271

相关文章

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢