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

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓