如何在 python 中执行 chow 测试


Chow检验用于检验两个不同回归模型在不同数据集上的系数是否相等。

该检验通常用于计量经济学领域的时间序列数据,以确定给定时间点的数据是否存在结构性中断。

以下分步示例展示了如何在 Python 中执行 Chow 测试。

第 1 步:创建数据

首先,我们将创建假数据:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' x ': [1, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
                         11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 20],
                   ' y ': [3, 5, 6, 10, 13, 15, 17, 14, 20, 23, 25, 27, 30, 30, 31,
                         33, 32, 32, 30, 32, 34, 34, 37, 35, 34, 36, 34, 37, 38, 36]})

#view first five rows of DataFrame
df. head ()

        x y
0 1 3
1 1 5
2 2 6
3 3 10
4 4 13

第 2 步:可视化数据

接下来,我们将创建一个简单的散点图来可视化数据:

 import matplotlib. pyplot as plt

#create scatterplot
plt. plot (df. x , df. y , ' o ')

从散点图中我们可以看到数据趋势在 x = 10 时出现变化。

因此,我们可以执行 Chow 检验来确定数据中在 x = 10 处是否存在结构断点。

第 3 步:执行 Chow 测试

我们可以使用Python中的chowtest包的chowtest函数来执行Chow测试。

首先,我们需要使用 pip 安装这个包:

 pip install chowtest

然后我们可以使用以下语法来执行 Chow 测试:

 from chow_test import chowtest

chowtest ( y=df[[' y ']],
         last_index_in_model_1= 15 ,
         first_index_in_model_2= 16 ,
         significance_level= .05 )

************************************************** *********************************
Reject the null hypothesis of equality of regression coefficients in the 2 periods.
************************************************** *********************************
Chow Statistic: 118.14097335479373 p value: 0.0
************************************************** *********************************
(118.14097335479373, 1.1102230246251565e-16)

以下是chowtest()函数中各个参数的含义:

  • y :DataFrame 中的响应变量
  • x :DataFrame 中的预测变量
  • last_index_in_model_1 :结构断裂前最后一个点的索引值
  • first_index_in_model_2 :结构断裂后第一个点的索引值
  • important_level :用于假设检验的显着性水平

从测试结果我们可以看出:

  • F 检验统计量:118.14
  • p 值: <.0000

由于 p 值小于 0.05,我们可以拒绝检验的原假设。这意味着我们有足够的证据表明数据中存在结构断点。

换句话说,两条回归线比一条回归线可以更有效地拟合数据中的模型。

其他资源

以下教程解释了如何在 Python 中执行其他常见测试:

如何在 Python 中执行格兰杰因果关系检验
如何在 Python 中执行 Breusch-Pagan 测试
如何在 Python 中执行怀特检验

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注