邹检验,结构变化识别及其R语言实现
在描述多维数据的维度关系时,线性模型无疑应用最多。然而某些情况下,我们关心随着时间变化或随着样本分组,线性关系的具体参数是否发生了变化,即是否发生结构变化Structural break。邹检验Chow test提供了最基本的一种结构变化显著性的检验方法,后续统计学者提供了复杂结构变化的识别和判定方法。
邹检验
邹检验适用于如下情形:
情形1:存在数量已知,位置已知的潜在结构断点。

邹检验通过比较总样本回归的残差平方和与分组样本回归残差平方和之间的差值,构造了一个统计变量,该变量符合F分布,可以作为显著性的判断依据。
https://en.wikipedia.org/wiki/Chow_test
一般情形下的结构变化识别
对于更复杂情形下的结构变化:
情形2:存在数量已知,位置未知的潜在结构断点。 情形3:存在数量未知,位置未知的潜在结构断点。 情形4:存在方差的结构断点。
显然邹检验不适用于这些情形。不过如果遍历样本集合应用邹检验,且结果表明所有点均不为断点,则说明情形2和3中,整个区间不存在结构断点。这种检验思路构成sup-F检验,即一系列F检验的上确界均不能拒绝原假设。
针对情形2和3,Andrews(1993,2003)开发了sup-Wald(即一系列Wald检验的上确界)方法,sup-LM(即一系列拉格朗日乘数统计量的上确界)方法和sup-LR(即一系列极大似然比的上确界)方法用以检验结构变化。
针对情形4,Zaman等人(2010,2017)开发了MZ test和sup-MZ test用以检验数据方差是否存在位置已知或位置未知的结构断点。
https://en.wikipedia.org/wiki/Structural_break
结构变化检验的R语言实现
R语言中有strucchange和memochange两个包专门设计用于检验结构变化。其中strucchange已满足基本功能要求。
https://cran.r-project.org/web/packages/strucchange/index.html
strucchange中sctest.formula用于检验线性回归模型中的结构断点,在函数中设定type='Chow'即可实现邹检验。以文档中的例子来做展示:
library(strucchange)
## Example 7.4 from Greene (1993), "Econometric Analysis"
## Chow test on Longley data
data("longley")
sctest(Employed ~ Year + GNP.deflator + GNP + Armed.Forces, data = longley,
type = "Chow", point = 7)
结果显示该模型在第7个数据点上存在一个结构断点(虽然显著性不太强)。
sctest.Fstats可以进行supF-, aveF- 和expF检验,即通过遍历方式搜寻断点。例子如下:
## Load dataset "nhtemp" with average yearly temperatures in New Haven
data(nhtemp)
## plot the data
plot(nhtemp)
## test the model null hypothesis that the average temperature remains
## constant over the years for potential break points between 1941
## (corresponds to from = 0.5) and 1962 (corresponds to to = 0.85)
## compute F statistics
fs <- Fstats(nhtemp ~ 1, from = 0.5, to = 0.85)
## plot the F statistics
plot(fs, alpha = 0.01)
## and the corresponding p values
plot(fs, pval = TRUE, alpha = 0.01)
## perform the aveF test
sctest(fs, type = "aveF")
aveF检验显示纽黑文的气温数据存在变化断点,注意这里进行遍历的区间是从0.5到0.85。
supLM检验也可以实现,这里不赘述。
计量检验方法的一个共同短板在于,仅能对时序样本的中间区间进行检验。如果想要对时序数据的拐点进行即时识别乃至预判,则需要寻求其他方法。
参考文献
[1] Chow, Gregory C. "Tests of equality between sets of coefficients in two linear regressions." Econometrica: Journal of the Econometric Society (1960): 591-605.
[2] Andrews, Donald WK. "Tests for parameter instability and structural change with unknown change point." Econometrica: Journal of the Econometric Society (1993): 821-856.
[3] Andrews, Donald WK. "Tests for parameter instability and structural change with unknown change point: A corrigendum." Econometrica (2003): 395-397.
[4] Maasoumi, Esfandiar, Asad Zaman, and Mumtaz Ahmed. "Tests for structural change, aggregation, and homogeneity." Economic Modelling 27, no. 6 (2010): 1382-1391.
[5] Ahmed, Mumtaz, Gulfam Haider, and Asad Zaman. "Detecting structural change with heteroskedasticity." Communications in Statistics-Theory and methods 46, no. 21 (2017): 10446-10455.
本文由 mdnice 多平台发布
相关文章:

邹检验,结构变化识别及其R语言实现
在描述多维数据的维度关系时,线性模型无疑应用最多。然而某些情况下,我们关心随着时间变化或随着样本分组,线性关系的具体参数是否发生了变化,即是否发生结构变化Structural break。邹检验Chow test提供了最基本的一种结构变化显著…...

腾讯云,物联网开发平台产品,动态注册步骤
1. 下载后解压,qcloud_iot_mqtt_sign-master.zip GitHub - tencentyun/qcloud_iot_mqtt_signContribute to tencentyun/qcloud_iot_mqtt_sign development by creating an account on GitHub.https://github.com/tencentyun/qcloud_iot_mqtt_sign 2. 按照readme文…...

Padding, Spacer, Initializer 的使用
1. Padding 的使用 1.1 样式一 1) 实现 func testText1()-> some View{Text("Hello, World!").background(Color.yellow) // 背景颜色//.padding() // 默认间距.padding(.all, 10) // 所有的间距.padding(.leading, 20) // 开始的间距.ba…...

少儿编程 中国电子学会图形化编程等级考试Scratch编程四级真题解析(判断题)2023年3月
2023年3月scratch编程等级考试四级真题 判断题(共10题,每题2分,共20分) 11、在使用自定义积木时,不可以传递布尔型参数 答案:错 考点分析:考查自定义积木的使用,使用自定义积木的时候可以传递数字、文本和布尔型参数,所以错误 12、执行如下图程序后,输出的结果为“…...
Makefile学习笔记
目录 一、概述 1.1 Makefile 介绍 1.2规则 1.3核心 1.4示例 1.5定义命令 1.6 make是如何工作的 1.7、makefile中使用变量 1.8让make自动推导 1.9、另类风格的makefile 1.10、清空目标文件的规则 二、Makefile 总述 2.1、Makefile里有什么? 2.2、 mak…...
C++ 函数模板基础
文章目录 一、什么是函数模板二、函数模板的优点1、代码重用2、类型安全3、可读性4、泛型编程5、性能优化6、库开发 三、函数模板的使用场景1、通用操作2、数据结构与容器操作3、排序与查找算法4、数学与统计函数5、类型转换器6、自定义函数对象 四、模板参数的声明(…...
CUDA torch reinstall 与杂谈
一 实用技巧 1 从cuda11升级到12 apt-get --purge remove "cuda*" wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sh cuda_12.1.1_530.30.02_linux.run vim ~/.bashrc export PATH/usr/local…...
[230530] 托福TPO口语真题| TPO66~TPO72|XPO|Task1|20:30~21:00
目录 真题 预测题 真题 66. Do you agree or disagree with the following statement? Some people believe that a person needs a college education in order to have a successful career. Others believe that a college education is not necessary for…...

【FMC201】基于FMC标准的1路CameraLink Full 输入 子卡模块
产品概述 FMC201是一款CameraLink信号输入(采集)FMC子卡模块,该模块支持2路CameraLink Base模式或者1路CameraLink Full模式的图像信号输入。板卡具有2个CameraLink端口(SDR26),可以作为采集卡使用。 技术指…...

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)
本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误,提供博主的一些解决方法,若有更好的解决方法,大家也可以在评论区发表自己的意见噢,话不多说,开始上菜: 此博主在CSDN发布…...
从零实现一个数据库(DataBase) Go语言实现版 0.介绍
英文源地址 数据库实现步骤细分 1.持久化(Persistence) 我们为什么需要数据库?为什么不是直接把数据dump进文件中. 第一个话题就是持久化. 我们将讨论如果写入文件的过程中程序崩溃了, 或者电源断电了, 文件的状态会是什么样的呢? 文件是否只是丢失了最后一次写操作?或者…...

操作系统-X18 linux日志审计
Linux日志审计 在unix/类unix(Linux)系统中,日志是内核(内存)的一部分。 用于记录系统、程序运行中发生的各种事件 通过阅读日志,有助于诊断和解决系统故障 日志文件的分类 ①内核及系统日志 由系统sysl…...
【Vue工程】011-Axios
【Vue工程】011-Axios 文章目录 【Vue工程】011-Axios一、概述1、简介2、官网3、訾博其他相关博客【axios】001-axios概述、特点、文档说明【axios】002-axios发起请求axios封装 二、基本使用1、安装2、创建一个 token 状态3、axios 封装4、使用示例设置 baseURL请求调用拦截器…...

Cy7 NHS ester水溶性七甲川花菁染料标记活性脂477908-53-5
Sulfo-CY7 NHS ester是一种荧光标记试剂,可用于生物分子的荧光标记。它是一种水溶性的N-羟基琥珀酰亚胺酯化合物,具有强烈的荧光信号和高度稳定性。Sulfo-CY7 NHS ester的化学结构为C43H48N3NaO16S2,分子量约为968.98 g/mol。Sulfo-CY7 NHS e…...

利用CX-ONE搭建omron PLC仿真环境
目录 1 安装参考 2 CX-Simulator 2.1 打开软件 2.2 选择PLC配置文件存放位置 2.3 选择PLC类型 2.4 PLC Unit全部选择 2.5 设置FINS通讯 2.6 设置串口通讯 2.7 建立连接 3 CX-Programmer 3.1 新建工程 3.2 设置PLC型号 3.3 设置网络类型 3.4 设置串口通讯 3.5 设…...

webpack Plugin Loader
本文作者为 360 奇舞团前端开发工程师 webpack是Javascript工具链的关键部分。webpack是个用于现代JavaScript应用程序的静态模块打包工具。它不仅可以支持ESM和CommonJS模块化编程,而且还可以支持或扩展支持许多不同的静态资源,例如:Files,I…...

关闭eslint - vue篇
文章目录 一、问题描述二、问题解决1、首先是比较旧的vue项目2、创建项目的时候,不要选eslint3、如果你使用的编辑软件是webstorm4、创建的项目没有webpack.base.conf.js文件,但是有 .eslintrc.js5、比较新的vue项目,目录没有(直接…...

XXL-SSO简要说明
一、介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持”等特性。现已开放源代码,开箱即用。 官方文档 二、集成 2.1、源码下载 下载地址 2.2、代码结构…...

HC-05蓝牙模块的使用
我最近刚刚开始学习嵌入式,在第一次使用蓝牙模块HC-05的时候遇到了很多问题, 甚至连接线都不会,因此下面我会十分详细地介绍我一步一步探索的步骤,直到完成使用手机APP和51单片机收发数据。 调试步骤 首先,我们需要明…...

初始python
初始python 缘由 对于python,相比大家并不陌生,Python是一种高级的、解释性编程语言,它具有简洁的语法和强大的内置函数,适用于广泛的应用领域,例如运维,Web开发,数据科学,人工智能等。Pyt…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...