计量经济学(十)——正态性检验(Normality Test)

news/2024/10/17 22:32:00/文章来源:https://www.cnblogs.com/haohai9309/p/18473046

正态性检验(Normality Test)是一种用于判断数据是否服从正态分布的重要统计方法,广泛应用于时间序列分析、回归分析等模型的构建与诊断中。许多统计模型,如线性回归、VAR模型等,要求残差或误差项服从正态分布。这一假设是保证模型估计有效性和推断准确性的关键条件,误差项的正态性有助于确保参数估计无偏、方差最小以及检验结果的可靠性。在时间序列分析中,正态性假设的验证是确保模型预测准确性和稳定性的必要步骤。违反正态性假设可能导致参数估计不准确、显著性检验失效,因此,正态性检验是模型诊断中不可忽视的一环。

一、正态性检验的意义

在许多统计模型中,如线性回归模型、VAR(向量自回归)模型、ARIMA模型等,残差或误差项的正态性假设是非常关键的一部分。这一假设的主要目的是确保参数估计的有效性、渐近正态性以及最小方差无偏估计(BLUE)的实现。在这些模型中,误差项是否符合正态分布直接影响到参数估计、显著性检验以及推断统计的准确性。

正态性假设在统计模型中占据核心地位,尤其是在线性回归、VAR和ARIMA等时间序列模型中,正态性假设为模型的健全性提供了理论基础。具体来说,正态性假设有助于:
参数估计的有效性:假设残差服从正态分布,可以通过最小二乘法(OLS)或最大似然估计法(MLE)得到最优的参数估计值。当残差符合正态分布时,这些估计值不仅是无偏的,而且具有最小方差,从而确保了模型的可靠性。
渐近正态性:即便在样本量较小时,正态性假设也有助于参数估计在样本量增大的过程中逐渐呈现正态分布,这一性质称为渐近正态性。这使得在大样本条件下,参数的估计量可以更准确地接近其真实值。
推断统计的有效性:在许多经典的统计推断方法中,如t检验、F检验等,都依赖于正态分布的假设。正态性假设确保了这些检验方法的适用性,使得我们能够对回归系数的显著性、模型整体的显著性以及置信区间的构建进行合理的判断。

然而,正态性假设在实际应用中并非总是成立。当误差项不服从正态分布时,可能会带来以下问题:

参数估计不准确:当残差不服从正态分布时,最小二乘法或最大似然估计可能不再是最优的。这意味着所估计的模型参数可能会产生偏差,尤其是在样本量有限的情况下,这种偏差会更加明显。参数估计的误差不仅影响模型解释,还可能导致对未来数据的错误预测。
置信区间与显著性检验失效:正态性假设的违反会影响标准误差的估计。由于t检验和F检验的推导依赖于正态分布,误差项非正态分布时,这些检验的结果可能会不准确。具体来说,过度估计或低估了模型参数的显著性,导致假阳性或假阴性结果。这种情况下,研究者可能会错误地判断模型是否具有统计显著性,进而影响决策。

二、常见的正态性检验方法

正态性检验是统计分析中非常重要的一步,它可以帮助我们判断数据是否符合正态分布,从而决定是否使用基于正态分布假设的统计方法。以下是几种常见的正态性检验方法,包括它们的检验统计量、判断过程和适用情况。

2.1 图示法

图示法是一种直观的检验方法,主要通过绘制QQ图或残差直方图来判断数据的正态性。

QQ图(Quantile-Quantile Plot)
  • 检验统计量:QQ图没有特定的检验统计量,而是通过视觉判断数据点是否大致沿着一条直线分布。
  • 判断过程
    • 绘制QQ图,将实际数据的分位数与正态分布的理论分位数进行比较。
    • 如果数据点基本沿着一条直线分布,则表明数据符合正态分布。
    • QQ图特别适合用来检测数据在尾部是否偏离正态分布。
直方图
  • 检验统计量:直方图同样没有特定的检验统计量,而是通过视觉判断数据分布的形状。
  • 判断过程
    • 绘制残差的直方图,可以直观地判断数据分布的形状。
    • 如果直方图呈现钟形且对称,则数据大致服从正态分布。

2.2 Jarque-Bera检验

Jarque-Bera(简称JB)检验是一种基于偏度和峰度的正态性检验方法。

  • 检验统计量

    \[JB = \frac{n}{6} \left( S^2 + \frac{(K - 3)^2}{4} \right) \]

    其中,\(S\)为偏度(Skewness),\(K\)为峰度(Kurtosis),\(n\)为样本容量。

  • 判断过程

    • 对于正态分布,偏度应接近0,峰度应接近3。
    • 计算JB检验统计量,若JB检验的p值小于给定的显著性水平(如0.05),则拒绝原假设,表明数据不符合正态分布。

2.3. Shapiro-Wilk检验

Shapiro-Wilk检验是一种用于判断数据正态性的统计方法,特别适用于小样本数据。它通过将样本数据排序后,比较其与正态分布理论值的偏差来判断数据的正态性。

  • 检验统计量
    Shapiro-Wilk检验的检验统计量较为复杂,具体表达式如下:

\[W = \frac{\left( \sum_{i=1}^{n} a_i x_{(i)} \right)^2}{\sum_{i=1}^{n} (x_i - \bar{x})^2} \]

其中:\(x_{(i)}\)为排序后的样本数据;\(\bar{x}\)为样本均值;\(a_i\)是依赖于正态分布的常数。

  • 判断过程
    • Shapiro-Wilk检验的p值越大,越表明数据接近正态分布;
    • 若p值较小(如小于0.05),则拒绝原假设,认为数据不符合正态分布。

2.4 Kolmogorov-Smirnov检验

Kolmogorov-Smirnov(简称K-S)检验是一种非参数检验方法。

  • 检验统计量

    \[D = \max \left| F_n(x) - F(x) \right| \]

    其中,\(F_n(x)\)是样本数据的累积分布函数,\(F(x)\)是理论分布(如正态分布)的累积分布函数。

  • 判断过程

    • 通过比较样本数据的累积分布函数与理论分布的累积分布函数之间的差异,来判断样本是否服从正态分布。
    • 尽管K-S检验对数据规模较大的情况下较为敏感,但其主要问题在于对样本分布形状的微小偏差也非常敏感,可能导致过于保守的检验结果。

正态性检验是数据分析中的重要步骤,选择合适的检验方法可以帮助我们更准确地理解数据的特性。图示法提供了直观的视觉判断,而Jarque-Bera检验、Shapiro-Wilk检验和Kolmogorov-Smirnov检验则提供了基于统计量的定量判断。在实际应用中,可以根据数据的样本量和分布特性选择合适的检验方法。

三、VAR检验步骤

VAR模型有着较为复杂的分析流程步骤,具体可参考下图和表格所述。下述分析步骤和流程仅供参考使用,实际研究中可能仅需要其中一部分的分析即可。比如很多时候并不需要关注残差自相关检验和残差正态性检验,也或者有时对格兰杰因果检验关注度较少等,具体以研究者实际研究情况为准即可。

说明
单位根检验 模型要求研究变量保持平稳性,可使用单位根检验检验平稳性性,也或者使用时序图亦可。
协整关系 协整关系研究系统的长期稳定性情况,以避免出现伪回归问题,通常有两种方法,分别是Johansen法和Engle-Granger法研究协整关系。
定阶 进行VAR模型时,需要针对滞后阶数进行选择,SPSSAU可自动识别最佳滞后阶数。
AR特征根检验 AR特征根检验可用于分析VAR模型系数稳定有效性情况。
格兰杰因果 研究变量间的‘相互影响关系’情况。
脉冲响应 其用于研究变量间的动态影响关系情况。
方差分解 其用于研究变量间的影响比例情况。
残差自相关检验 研究模型残差的自相关性情况。
残差正态性检验 研究模型残差的正态性情况。
预测 得到模型的预测值,用于研究使用。

VAR模型的构建涉及多个重要步骤,从单位根检验、定阶到格兰杰因果关系和脉冲响应函数,每一个步骤都对模型的准确性至关重要。
单位根检验:在建模之前,首先需要进行单位根检验(如ADF检验)以判断时间序列的平稳性。如果数据平稳(即无单位根),可以直接进入VAR模型的构建。如果数据具有单位根(不平稳),则需要对其进行差分处理,使其成为平稳序列。如果变量经过同阶单整后可以满足平稳条件,则继续进行协整关系分析,否则无法进行有效的VAR建模。
协整关系分析:当时间序列数据经过差分后,若发现变量之间存在长期均衡关系(协整),则可以结合协整检验,如Johansen检验,来确认这些变量之间的协整向量。若无单位根或数据极为平稳,则直接进行VAR模型;若存在协整关系,则应考虑使用VECM(向量误差修正模型)来处理。
滞后阶数选择:确定VAR模型的滞后阶数是关键的一步,可以通过信息准则如AIC、BIC、HQ等方法来确定。滞后阶数影响模型的动态特性,准则值越小表示模型的解释能力越好。SPSS等工具通常可以自动给出建议的滞后阶数。
AR特征根检验:模型构建后,必须对其稳定性进行检验,通常通过AR特征根检验来验证。如果特征根的模数都在单位圆内,说明模型是稳定的,参数也具有可靠性。
格兰杰因果检验:构建VAR模型后,可以进行格兰杰因果检验,来判断某个变量的过去值是否能够预测另一个变量的未来变化。它可以揭示变量间的动态相关性,帮助理解变量间的因果链。
脉冲响应函数:通过正交化脉冲响应分析,可以研究一个变量的冲击如何随着时间影响其他变量。这个分析对理解经济冲击的传播路径和力度十分重要。
方差分解:在VAR模型的后期分析中,方差分解用于了解每个变量的方差有多大比例是由自己和其他变量解释的。这有助于量化不同变量之间的相互影响。
残差检验:构建模型后,还需要对残差进行自相关和正态性检验,以评估模型的拟合效果。Portmanteau检验可以判断残差是否存在自相关,而Jarque-Bera检验可以检测残差的正态性。
预测分析:VAR模型的最终目标通常是进行预测。通过模型可以对未来的多个时间点进行预测,常见的预测期数为12期。
通过以上步骤,研究者能够构建出具有较强解释力的VAR模型,并根据模型的输出进行深入的经济或金融领域的分析与预测。

四、案例分析

一家加工食品生产公司的科研人员想评估本公司生产的瓶装酱料的脂肪百分比。宣传的百分比为 15%。科研人员测量了 20 个随机样本的脂肪百分比数据见下表,试判定其分布是否正态。

样本 ID 脂肪百分比 样本 ID 脂肪百分比
1 15.2 11 18.5
2 12.4 12 16.3
3 15.4 13 20.0
4 16.5 14 19.2
5 15.9 15 12.3
6 17.1 16 12.8
7 16.9 17 17.9
8 14.3 18 16.3
9 19.1 19 18.7
10 18.2 20 16.2
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
from statsmodels.graphics.gofplots import qqplot
from scipy.stats import jarque_bera, shapiro, kstest# 数据
fat_percent = np.array([15.2, 12.4, 15.4, 16.5, 15.9, 17.1, 16.9, 14.3, 19.1, 18.2, 18.5, 16.3, 20.0, 19.2, 12.3, 12.8, 17.9, 16.3, 18.7, 16.2])# 绘制直方图
plt.hist(fat_percent, bins=5, edgecolor='black', alpha=0.7)
plt.title('Fat Percentage Histogram')
plt.xlabel('Fat Percentage')
plt.ylabel('Frequency')
plt.show()# 绘制QQ图
qqplot(fat_percent, line='s')
plt.title('QQ Plot of Fat Percentage')
plt.show()# Jarque-Bera 检验
jb_stat, jb_p = jarque_bera(fat_percent)
print(f"Jarque-Bera Test: Stat = {jb_stat:.4f}, p-value = {jb_p:.4f}")# Shapiro-Wilk 检验
sw_stat, sw_p = shapiro(fat_percent)
print(f"Shapiro-Wilk Test: Stat = {sw_stat:.4f}, p-value = {sw_p:.4f}")# Kolmogorov-Smirnov 检验
ks_stat, ks_p = kstest(fat_percent, 'norm', args=(np.mean(fat_percent), np.std(fat_percent)))
print(f"Kolmogorov-Smirnov Test: Stat = {ks_stat:.4f}, p-value = {ks_p:.4f}")# 正态性检验总结
if jb_p > 0.05 and sw_p > 0.05 and ks_p > 0.05:print("根据各项检验,数据接近正态分布。")
else:print("数据可能不符合正态分布。")
直方图 Q-Q图

总结

正态性检验是统计模型中重要的诊断步骤,尤其在时间序列分析和回归模型中,确保数据或残差的正态分布至关重要。它不仅帮助验证模型的适用性,还对提高参数估计的精确性和统计推断的可靠性有重要意义。通过正态性检验,研究者可以判断数据是否符合正态分布假设。如果残差不服从正态分布,可能会导致参数估计偏差、置信区间不准确、显著性检验失效等问题。为此,在模型诊断阶段,图示法(如QQ图、直方图)和统计检验法(如Jarque-Bera检验、Shapiro-Wilk检验等)被广泛应用。这些方法结合使用,能够帮助研究者更准确地判断数据分布特性。如果正态性假设不成立,研究者可通过数据变换或选择其他方法来提高模型的准确性和稳健性,从而为研究结论提供更可靠的支持。

参考资料

  1. 正态性检验
  2. 正态性检验全流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/816601.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

goldwave 循环播放

首先 得在选项 控制属性 里边,或者 右键这里选择 前奏/循环/结尾 或者 循环点 或者 循环 关于具体是什么意思,参考 https://www.goldwavechina.cn/bianji/boi-fa01.html这里有一些难以理解9.前奏/循环/结尾 这是一种特殊的播放功能,可以分三个部分播放声音。 首先,播放选择…

Response web登录操作 -2024/10/17

响应行设置响应状态码: void setStatus(int sc);设置响应头键值对: void setHeader(String name,String value);response实现重定向resp.setStatus(302);resp.setHeader("location","https://www.4399.com");前端a.html登录,将结果传给后端,用request接收…

Kail从入门到入狱第二课:mkdir、touch、vim、cat命令的基本应用

如果是日常生活,请不要使用root,因为root可以做任何事情比如"格式C盘" 创建目录:mkdir 很简单,在当前工作目录创建一个目录,如图所示测试:请说出cd /test的含义 今天我们将使用图形界面,请打开命令行创建文件:touch touch filename可以看到成功创建 文本编辑…

地平线与英伟达工具链 PTQ 工具功能参数对比与实操

1.理论简介在阅读本文之前,希望大家对 PTQ(Post-Training Quantization) 训练后量化有一定的了解~地平线 OpenExplorer 和 NVIDIA TensorRT 是两家公司为适配自己的硬件而开发的算法工具链,它们各自具有独特的特点和优势。分开看的时候,网上有很多资料,但却没找到将他们…

公网Linux环境搭建frp实现内网穿透

前提: 本实验为一台ubuntu22操作系统云主机 脚本适用于安装平台:CentOS、Debian、Ubuntu FRP项目地址:https://github.com/fatedier/frp FRP一键脚本地址:https://github.com/MvsCode/frps-onekey1、FRP服务器端一键安装脚本(脚本在本文最后有,如果在服务器上无法获取到下…

码城|计算机专业的00后转行数据分析,还有机会吗?【悟空非空也】

计算机背景学习数据分析是有优势的。数据分析需要一些技术基础,简单点的话,需要会使用 Excel ,复杂点会用 Python 进行数据挖掘和数据分析 ,当然SQL语句一定要会,自己多练习。如果再懂点深度学习,那就更加厉害啦。 有计算机底子,学习 Python 新语言应该也没有什么问题,…

网站怎么修改后台地址?如何修改网站后台登录?

修改网站通常涉及以下几个步骤,具体操作取决于您的网站类型(如静态网站或动态网站)和使用的工具或平台。以下是一些基本的指导:确定修改需求:明确您希望对网站进行哪些方面的修改,比如页面设计、功能增加、内容更新等。备份现有网站:在进行任何更改之前,确保备份当前网…

Kail入门到入狱第一课:ls、sudo、cd、以及如何关机

先进入主界面我们按下Ctrl+Alt+F1进入控制台界面。 我们输入第一个命令: sudo su这句话可以让你获得root身份,接下来输入root密码:然后输入另一个命令,可以把当前目录设置为根目录 cd /ls -al 我们开始执行今天学习的第一个命令,它可以列出当前目录所有文件的属性: ls -a…

k8s-NFS系统配置 20241017

1、NFS服务端安装-master节点 192.168.177.133# 安装nfs服务端yum install nfs-utils -y# 创建共享目录mkdir /nfs# 配置nfs共享vim /etc/exports# 添加以下一行/nfs *(rw,sync,no_root_squash) # 指明共享目录和权限设置 # 启动nfs服务,并设置开机启动systemctl start nfs-s…

[BUUCTF]丢失的MD5

[BUUCTF]丢失的MD5[BUUCTF]丢失的MD5 分析 打开,得到py文件 import hashlib for i in range(32,127):for j in range(32,127):for k in range(32,127):m=hashlib.md5()m.update(TASC+chr(i)+O3RJMV+chr(j)+WDJKX+chr(k)+ZM)des=m.hexdigest()if e9032 in des and da in des…

链路聚合+ACL

链路聚合 生成树:多根链路:最大的问题——阻塞掉 运行在STP之上 --> 多根链路 = 不阻塞链路聚合 端囗聚合 链路捆绑: 多根链路逻辑上的捆绑在一起,当STP进行拓扑计算时,此时会按照聚合之后的链路计算。特点: 1.提升带宽 2.提高网络的高可用性 3.负载分担链路聚合:…

企业网站怎么修改密码?自己的网站如何修改密码?

修改自己网站上的用户密码通常涉及以下几个步骤:登录后台管理:首先,你需要登录到你的网站后台管理系统。这通常是通过一个特定的URL访问,并输入管理员账号和密码来完成。导航至用户管理:登录后,找到用户管理或账户设置的部分。这可能位于不同的菜单下,具体取决于你的网站…