【零基础Eviews实例】01异方差的检验与修正

article/2025/11/5 7:43:50

使用说明

本文档主要介绍有关线性回归模型关于异方差常见的判断方法(包括图像法、辅助回归、怀特检验三种)以及修正方式(加权最小二乘法)。使用软件为Eviews,和上一篇文章相同,此处也仅仅关注操作性的东西,即知道怎么判断是否存在异方差,以及如果存在异方差应该怎么做出修正进行说明,对于相关理论部分则并不涉及。


0. 前期准备

以“农村居民恩格尔系数的影响因素”为例,选择农村居民恩格尔系数(Y)为被解释变量,解释变量有农村居民家庭人均纯收入(Income)、商品零售价格指数(Price)、第一产业增加值(Agriculture)。其中数据为1990年-2012年数据(因为2012年之后统计口径发生变化),所有数据均可在国家数据找到。

有可能被认为不安全网址,若无法打开国家数据可能需要点击高级然后选择继续访问即可进入

而关于如何导入数据这样的基础操作,已经在上一篇中进行过介绍,在此不做赘述,默认数据导入完成。当一切完成过后,应该能看到的是如下图所示的结果。接下来重点介绍如何进行异方差检验和对存在的异方差进行修正。
在这里插入图片描述
但是在这之前,我们需要讲此回归模型所对应的残差(一个回归模型会对应一组残差,使用该残差数据讨论该模型是否存在异方差)定义为变量,便于后续的处理。下边介绍两种操作方法,达到上述目的:

0.1 残差数据的保存

在回归方程界面中:选择Proc --> Make Residual Series
在这里插入图片描述
如果顺利将会看到如下界面,给模型残差进行命名即可
在这里插入图片描述

0.2 新变量的定义【此方法可以用于定义其他变量】

在工作文件界面下:选择Object –> Generate Series
在这里插入图片描述
一切顺利将出现如下界面,即可将现有模型的残差项定义为e
在这里插入图片描述

1. 异方差检验

在得到残差项过后,我们可以通过对残差项的处理,检验是否存在异方差

1.1 图像法

所谓的图像法,即观察残差的波动程度(即方差)是否随被解释变量出现改变,粗浅的判断是否存在异方差。在此次为做出被解释变量与残差的图像。且为便于表示将Income/Price按照章节0.2的方法定义为K,即在界面中输入K = Income/Price即可,其中K表示实际收入水平。
在这里插入图片描述
在此我们需要做出k-eAgriculture-e的图像,有两种作图方式:

  1. 在主界面:选择Quick –> Graph–>界面框中输入k e–>确定选择scatter –> 点击OK,即可得到如下图像

在这里插入图片描述
需要说明的是:点击Graph后的Scatter选项在这里,如下列出。(至于其他的部分截图太多,且不难就不列出)
在这里插入图片描述
2. 在工作文件中:先选中Agriculture再选中e –> 右键选择Open –> 点击as group

此时在新出现的Group界面:选择View –> 点击Graph –> 选择Scatter –> 点击Ok得到最终图像

先选中为横坐标,后选中为纵坐标

在这里插入图片描述
从最终的结果可以看出,残差项e随着自变量的变动而变动,可以认为大概率存在异方差

1.2 辅助回归

所谓辅助回归,即看解释变量是否能对残差平方(e^2)进行解释,若可以则认为存在异方差。操作其实就是简单的进行回归分析,具体方式可看上一篇,在此直接在命令行输入ls e^2 c Income/Price Agriculture进行回归分析,观察回归的结果。

其实就是将原本的被解释变量由Y变成了e^2,看结果是否显著(这里不对e做回归是因为意义不大)

在这里插入图片描述
由于被解释变量所对应的P值比较小(正常应该小于0.05,但是接近0.05已经可以认为需要进行修正)

1.3 怀特(White)检验【最常用,最简便】

这也是我在上一篇中提到的方法(无数次提到的上一篇,后边几种检验可能还会经常提到),需要在现有模型(方程)界面中选择异方差分析,具体操作如下。
在这里插入图片描述
选择White,勾选Include White Creoos terms,然后确认
在这里插入图片描述
0.05为界,大于时认为未通过检验,保留原假设(同方差假设),即不存在异方差;反之则认为存在异方差。这里虽然为0.06但是也可以对其进行异方差修正(因为正常不通过应该远大于0.05
在这里插入图片描述

2. 异方差修正

通过上述三种检验方式,我们发现可能存在异方差(因为图示法比较主观,其余两种只是特别勉强的通过),因此在此对异方差进行修正,采用加权最小二乘法(WLS)。通过观察图像,我们选择以1/K为权重进行修正。

在原有方程界面:点击Estimate–>选择Option –> 在Wights中选择一种类型,并设置权重为1/k,得到修正后的方程。

这里的权重并不一定非得为1/k只要修正过后能通过异方差检验即可

在这里插入图片描述
按照同样的方法对修正后的模型进行异方差检验【此处只进行White检验】,得到如下结果

在这里插入图片描述
说明修正后不存在异方差,即修正效果良好,修正完成!


注:数据文件以上传资源(免积分下载),目前正在审核,随缘通过。若有需要可在国家数据中自行查找,或通过在评论区留下邮箱或私聊作者的方式获得(但是个人并不是经常看CSDN的消息,着急的建议自己查找)


http://chatgpt.dhexx.cn/article/Bu9ReuSX.shtml

相关文章

计量经济学笔记5-Eviews操作-异方差的检验与消除(White检验与加权最小二乘)

完成期末作业的同时来更一下博客 问题背景: 对中国储蓄存款总额(Y,亿元)与GDP(亿元)两个变量进行一元线性回归,检验并消除异方差。 White检验是通过一个辅助回归式进行异方差检验。用残差平方对…

stata学习笔记|异方差问题

异方差无法用OLS进行估计的根源问题:方差较大的数据包含的信息量较小,但OLS是对所有数据进行相同的处理。异方差的问题并不会影响估计量的无偏性、一致性、渐近正态性,只是效率较低使得t检验和F检验失效。 说白了就是回归出来的系数不会改变…

计量经济学及Stata应用 陈强 第七章异方差习题7.3

7.3恩格尔曲线是否存在异方差?数据集food.dta包含有关每周食物开支(food_exp)与每周收入(income)的40个观测值。 (1)将food_exp与income的散点图与线性拟合图画在一起。根据此图,是…

R费希尔精确检验(Fisher‘s exact test)

R费希尔精确检验(Fishers exact test) Fisher精确检验是一种显著性检验(significance想),当样本量较小时,用它来代替22表的卡方检验。 # 如何在R中进行Fisher精确测试。 # 为了在R中进行Fisher检验,我们只需要一个22的数据集。使用下面的代码,我生成一个仿真的22数据…

超几何分布检验(hypergeometric test)与费歇尔精确检验(fisher‘s exact test)

1,超几何分布检验常用来对venn图两个圈overlap的显著性进行检验,费歇尔精确检验常用来对2x2的列联表进行检验。 2,假设有如下的统计数据: smokenon-smokelung cancer106normal112 现在对其进行费歇尔精确检验,有两种…

【Python计量】异方差性的检验

目录 一、画残差图 二、BP检验 (一)手动编制函数进行BP检验 (二)调用statsmodels的函数进行BP检验 三、怀特检验 (一)手动编制函数进行White检验 (二)调用statsmodels的函数进…

stata 异方差专题【计量经济系列(四)】

stata 异方差专题【计量经济系列(四)】 文章目录 1. 异方差检验方法2. 散点图法3. BP检验4. 怀特检验5. FWLS 可行权的最小二乘法6. 小练习 ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯…

Python的strip()函数

在python API中这样解释strip()函数: 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符 s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符 …

.strip().split('t')和.strip().split()

.strip().split(t) line nihao, zhenhao,dajiahao print(line).strip().split(t) .strip().split() line nihao, zhenhao,dajiahao print(line.strip().split())

Python Strip()使用详解

一、函数定义 可使用快捷键ctrlb,查看函数的定义。 函数功能:默认删除字符前后的空格,如果有指定字符删除自定字符前后指定字符。 注意,该函数只能删除字符前后的字符,不能删除字符中间的字符。 二、默认情况下删除…

python中的strip()和split()

一.strip() strip()简单来说就是: 返回删除前导和尾随空格的字符串副本。如果给定了chars而不是None,则删除chars中的字符。 下面来举几个例子: 1.strip()括号内无任何字符 2.strip()括号内存在字符 二.split() split()函数通常是对字符…

python中strip的使用

今天聊聊python去除字符串空格的函数:strip()和replace() 1.strip(): 函数功能描述:Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意&#…

Python 中strip()方法怎么用?

Python strip() 方法用于去除字符串开头和结尾处指定的字符(默认为空格或换行符)或字符序列,不会去除字符串中间对应的字符。 相关函数有lstrip()和rstrip() 。用法与strip()相同。 lstrip()方法用于去除左边(开始)的空白字符; rstrip()方法用于去除右边(末尾)的…

Linux中source filename .(点)filename ./filename sh filename的区别

在shell中source filename 和 . filename是一样的,但source和 ./filename.sh的执行结果有很大区别,借用一张网上的图。如下 可以看到通过./filename.sh执行shell脚本,脚本内执行的命令和设置的环境变量不影响执行shell脚本的shell环境变量…

is not valid as filename in directory

svn在checkout/update动作时报错:is not valid as filename in directory 进入版本库浏览器查看发现有文件或文件夹名称带空格导致的。 解决方案: 在svn服务器中将文件名按要求命名规范,再本地执行update

git报错Filename too long

描述 碰见一个小小问题,Git在拉代码的时候提示Filename too long,具体如图 刚开始,一开始我是使用git自带的那个工具有问题了,然后我就下载了一个tortoisegit,结果还是有问题,这可是22G文件,我…

__dirname与__filename

(1) __filename变量 node.js中,在任何模块文件内部,可以使用__filename变量获取当前模块文件的带有完整绝对路径的文件名。 在应用程序根目录下新建app.js文件,其中代码如下所示。 var testModule1require(‘./tes…

with open()as filename

使用文件用with的好处 1.会在运行完后自动关闭文件 2.很简单 打开文件并读取 with open(c.xls,r) as t1:content t1.read()print(content) with open(c.xls,r) as t1:content t1.read()con t1.readlines()print(content)print(con) open参数的解释: &#…

__dirname和__filename

1. 概念 __dirname 可以用来动态获取当前文件所属目录的绝对路径__filename 可以用来动态获取当前文件的绝对路径,包含当前文件__dirname 和 __filename 是不受执行node命令所属路径影响的 2. 代码演示 目录结构 app.js文件,使用node app.js 命令执行…

Linux利用filename=${fileuser:-filename}设置文档名

该语句的意思是:如果输入fileuser的有值的话,将该值付给filename 如果在读入变量fileuser的时候直接回车,意思是fileuser里面没有值,那么将”filename”赋予给filename。 以《鸟哥的linux私房菜》chap13中为例,创建的…