过程分析与切换回归

切换回归模型用于对不可观察状态进行分类或估计时间序列中这些不可观察状态的转移概率。它可以被视为时间序列的聚类算法,它为您提供每个聚类的估计方程以及时间序列在给定时间点落入该聚类的概率。切换回归可以应用于任何有时间序列的商业领域,并且已经被经济学家成功地应用于分析商业周期,被共同基金经理成功地应用于评估共同基金,被投资银行家成功地应用于评估股票回报。

我将以一个例子为基础向您解释切换回归可以做什么。时间序列是一组数据,你在较长时间内跟踪一个人,并在几个时间点记录特定的变量。一个简单的时间序列,比如股票市场上的黄金价格。这里你可以看到黄金价格从1995年到今天的走势。

黄金价格时间序列
黄金价格时间序列

当你看到这个图时,你会意识到拟合一个简单的线性回归可能不是一个好主意,因为时间序列不是直线增长的。理想情况下,你会假设第一部分直到大约1970年将适合一个相当平坦的回归线,从1970年到1983年和从2000年到2015年的部分是一个急剧增加的回归线,从1983年到2000年的部分是一个温和下降的回归线。切换回归模型将帮助你首先确定,有多少不同的不可观测阶段,它们的估计方程是什么,特定变量的影响如何随状态而变化,以及时间序列在任何时间点处于任何不同阶段的概率是多少。下面是一个例子,切换回归模型将为黄金价格时间序列识别哪些状态:

切换回归检测到的不同状态的例子
切换回归检测到的不同状态的例子

业务领域和影响:在你的时间序列中找到不可观察的

如果您想分析时间序列中不同的不可观察状态,那么切换回归分析实际上可以应用于任何领域。它已经成功地应用于金融和经济领域,以理解商业周期、资产配置、股票回报、利率、投资组合管理和汇率。然而,也有其他可能的应用在各个领域。下面是一些例子:

  • 人力资源:员工流失的驱动因素是什么?如果您在较长一段时间内跟踪了离职率,那么您可以轻松地组装一个包含丰富信息的大型数据集。现在你可以分析公司的发展是否有不同的阶段,以及你选择的变量的影响是如何根据阶段而变化的。例如,你可能会发现有三个阶段,例如,当你的公司成长时,扩张;当你的公司稳定时,停滞;当你的公司萎缩时,衰退。转换回归会告诉你,根据国家的不同,哪些因素与留住员工有关。
  • 售后维修:什么因素会影响售后订单的进货量?即使在这里,你可能有不同的潜在阶段,根据某个阶段,其他因素更重要。这可以帮助你预测即将到来的修复量。
  • 操作:交货时间的主要影响因素是什么?如果在交货期中有一个反复出现的模式,一个循环,根据你在循环中的位置,一个变量可能会对交货期产生积极或消极的影响。然而,由于您忽略了可能的潜在阶段,因此同一变量的消极和积极影响平均下来,因此您错误地假设该变量无关紧要。
  • 市场营销:某些营销工具在某些阶段是否更有效?如果你仔细想想,营销工具的效果可能会根据你的产品状态而有所不同。但问题是,你能发现哪些状态这些状态将如何改变变量的效应大小?

一般来说,您应该考虑使用切换回归模型来实现以下五个目的:

  1. 集群:如果您有使用聚类算法的经验,您可能已经意识到切换回归也可以用作聚类算法。如果切换回归将某些观测值分配给潜在状态,它也可以解释为将它们分配给特定的集群。
  2. 状态检测:你想知道,你的数据中是否有你没有观察到的不同状态。另一种表达方式是:是否有任何我们可能错过的与观察到的变量相互作用的分类变量?
  3. 对不同的状态估计不同的方程:您不希望发现是否存在无法直接观察到的不同基本状态,但您还希望了解变量的影响如何随状态而变化。
  4. 理解状态的概率:你想了解观察到某一特定状态的概率是多少以及这个概率是如何受到影响的?
  5. 不同状态间的切换概率:你想了解从一种状态切换到另一种状态的概率是多少,状态切换的驱动因素是什么以及某些观察组是否更有可能在某些状态之间切换。

过程

进行切换回归分析的步骤
进行切换回归分析的步骤

当底层过程是马尔可夫过程时,可以使用切换回归模型。这意味着你的时间序列被认为是在一组有限的不可观察状态上过渡,其中从一个状态过渡到另一个状态的时间和一个状态的持续时间是随机的。使用切换回归并不难,您可以通过四个简单的步骤来完成。我将向您展示如何基于介绍部分的黄金数据计算和解释您自己的切换回归模型。

步骤1:设置数据

首先,我需要上传数据,并确保所有变量都具有正确的数据类型。在本例中,当您上传数据集时,您将看到变量Date仍然是一个字符。因此,我将使用as.Date()函数将其转换为date类型。

############# Library # install.packages("MSwM") # install.packages("ggplot2") Library (MSwM) Library (ggplot2) #############步骤1:设置Data Gold <- reading .csv("C:/Users/apivcevic/Desktop/Privat/Switching Regressions/monthly_csv.csv") Gold$Date <- as.Date(paste(Gold$Date,"01",sep="-"), format="%Y-%m-%d") ggplot(Gold, aes(Date, Price)) + geom_line()

步骤2:决定国家

在第二步中,您需要决定期望的状态数量。在切换回归和马尔可夫过程的背景下,你通常说政权而不是状态。但是,我将继续使用state这个词。你对状态数的决定应该以理论为依据。这意味着你有一个清晰的理论有多少种可能的状态以及你想估计多少种状态。如果你分析一只股票,你可能只会想到两种状态:股票上涨或下跌。因此,您将只假设两种隐藏状态。现在让我们来看看我们的例子:

黄金价格时间序列
黄金价格时间序列

在我们的例子中,我期望有三种不同的隐藏状态。第一个是停滞状态,第二个是急剧增长的状态,我们可以在2000年之后观察到,一个不稳定的停滞状态,我们可以在2000年之前观察到。因此,我假设应该有三种不同的状态。请记住,出于两个原因,您不希望指定太多的状态。首先,状态越多,解释就越复杂。其次,切换回归模型的估计在计算上是复杂的,这意味着你拥有的数据越多,状态越多,计算它所需的时间就越长。

############# 第二步:决定州nstates < - 6所示

切换回归现在将为我们指定的每个状态估计一个不同的线性方程。此外,它将根据以下概述计算每个状态的转移概率,其中pab表示状态a到状态b的转移概率:

不同的状态和转移概率
不同的状态和转移概率

由于我有经济背景,我想问你一个小问题。为什么黄金价格在1970年之前如此稳定(有一个非常合乎逻辑的解释;)?

步骤3:估计切换模型

我们将使用mswm包中的msmFit()函数来估计切换回归。msmFit()函数需要lm()函数生成的回归模型作为输入。

#############步骤3:估计切换模型olsGold <- lm(价格~日期,黄金)msmGold <- msmFit(olsGold, k = nstates, sw = c(FALSE, TRUE, TRUE))

在这一点上,我应该提到有各种类型的马尔可夫切换回归模型,每种类型都有其优点和缺点。你基本上可以应用所有时间序列的统计工具。这里有两个例子:

  • 单变量或多变量马尔可夫链:首先,你可以有一个单变量马尔可夫链或多变量马尔可夫链。例如,单变量马尔可夫链是以齐次马尔可夫链为基础的。这意味着它没有任何趋势或季节性。在时间序列的上下文中,趋势意味着时间序列通常是向上的(就像我们的例子一样)或向下的。季节性意味着它有一个重复的模式。例如,冰的消耗量会显示出夏季高峰和冬季低谷的季节性。
  • 固定的或时变的过渡概率:在切换回归模型中,也可以让转换概率随时间变化。这将使模型更加复杂,但如果有严肃的理论理由允许概率随时间变化,它将是有用的。
  • 一阶或高阶链:一阶切换回归仅基于最新状态计算转移概率,而不是基于所有以前的状态。
  • 线性或广义切换回归:您还可以创建基于广义线性模型的切换回归,而不仅仅是基于线性模型。例如,如果您感兴趣的变量是二进制变量,则可以使用逻辑回归分析。

如果您理解了这三个例子,您就会意识到我在这里应用了最简单的切换回归模型:具有固定转移概率的单变量一阶切换回归。此外,切换回归模型一般有两大类:

  1. 马尔可夫切换动态回归:动态模型允许状态根据马尔可夫过程切换,但与其他类型的模型相反,它们允许在状态改变后进行快速调整。这些类型的模型通常应用于高频数据。
  2. 马尔可夫切换AR模型:ar模型也允许状态根据马尔可夫过程切换,然而,它们只允许在变化后逐渐调整。该模型通常应用于频率较低的数据(季度、年度等)。

第四步:评估和切换模型

我们可以用两种方式来解释切换回归模型,首先是通过查看系数,其次是图形化。

看看系数

#############步骤4:解释和评估切换模型摘要(msmGold)

代码将给出以下结果:

马尔可夫切换模型调用:msmFit(object = olsGold, k = nstates, sw = c(FALSE, TRUE, FALSE)) AIC BIC logLik 10010.85 10056.59 -5001.427系数:状态1 ---------估计Std. Error t值Pr(>|t|) (Intercept) 121.4889 0.0008 151861.125 < 2.252 -16 *** * Date(S) 0.0209 0.0013 16.077 < 2.252 -16 ***——显著性。代码:0 ' *** ' 0.001 ' ** ' 0.01 ' * ' 0.05 '。' 0.1 ' ' 1残差标准误差:98.68257多重r平方:0.8681标准化残差:Min Q1 Med Q3 Max -9.909234e+01 -1.857703e+01 7.932031e-04 1.963472e+01 1.555179e+02 Regime 2 ---------估计标准误差t值Pr(>|t|)(截距)121.4889 0.0008 151861.125 < 2.2e-16 *** *日期(S) 0.0772 0.0013 59.385 < 2.2e-16 *** -显著性。代码:0 ' *** ' 0.001 ' ** ' 0.01 ' * ' 0.05 '。' 0.1 ' ' 1残差标准误差:98.68257多重r平方:0.8948标准化残差:Min Q1 Med Q3 Max -2.803412e+02 -2.134766e+00 -2.736030e-04 3.681998e-04 4.849814e+02 Regime 3 ---------估计标准误差t值Pr(>|t|)(截距)121.4889 0.0008 151861.125 < 2.2e-16 *** *日期(S) 0.0502 0.0013 38.615 < 2.2e-16 *** -显著性。代码:0 ' *** ' 0.001 ' ** ' 0.01 ' * ' 0.05 '。标准化残差:Min Q1 Med Q3 Max -208.87791580 -4.74304709 -0.07559093 1.23991461 197.72230992过渡概率:Regime 1 Regime 2 Regime 3 Regime 1 9.955638e-01 1.712038e-08 0.01485319 Regime 2 5.173007e-09 9.717252e-01 0.02020467 Regime 3 4.436244e-03 2.827476e-02 0.96494213

你会意识到,对于每个状态,它会给出一个不同的方程。

现在你可以看到,没有一个政体的估计是负的。显然,黄金价格在这三个阶段都在上涨。效应大小在状态2是最高的,因此这些状态可能代表一个极端的增长。状态3的效应大小更适中,因此将状态3命名为适度增长是有意义的。最后,状态1的效应值最低,所以我建议将其命名为慢增长。在你进一步的分析中,包括更多的独立变量可能会很有趣,例如,看看它们在每个阶段的增长背后有多大的驱动因素。

我们可以看的另一件事是转移概率,它总结在输出的最底部。

你将看到的是状态非常稳定,这意味着基本状态在一个月的时间内很少变化。此外,您将看到切换到第一个“适度增长”状态的转换概率通常高于任何其他状态。当然,你可以更深入地分析,但我将把它留给你。

看图表

我将使用以下代码生成相关图形。每个状态都有一个图。您将看到每个图由两个图组成。上面的显示金色的时间序列和灰色突出显示的区域。灰色突出显示的区域是切换回归模型估计时间序列处于各自状态的地方。下图显示了时间序列在任意时间点处于各自状态的概率。

#概率和预测的图形概述plotProb(msmGold, which=2) plotProb(msmGold, which=3) plotProb(msmGold, which=4)
预测状态1的概率和状态
预测状态1的概率和状态

当我们看到上面的图时,我们可以看到这种状态很可能描述了缓慢增长的状态。可能性似乎也非常清楚,几乎没有被误解的机会。

预测状态2的概率和状态
预测状态2的概率和状态

第二种模式显然是高增长模式,或者是波动性最大的模式,即黄金价格快速上涨,达到峰值,然后回落,价格略高于开始飙升之前的水平。只有200左右的增加概率较低,因为看起来这部分并不一定符合这个状态。

预测状态3的概率和状态
预测状态3的概率和状态

最后,第三个州似乎是经济温和增长的州。而且这里的概率对于200左右的一个星团来说也不是很清楚。不管怎样,这看起来还是比较合理的。在这里我就不深入解释了。我把它留给你。

优势

与其他回归模型相比,切换回归模型有一些优点。这里有一个简短的概述。

  • 数学简单性:切换回归通常在数学上易于处理。对于可能性来说尤其如此,它的计算相对简单。
  • 隐藏变量:切换回归在发现可能对时间序列有影响的隐藏变量方面非常有用,但是您还没有观察到它。临床心理学就是一个很好的典型例子。想象一下,你跟踪一个患有双相情感障碍的人,并在较长一段时间内将他的情绪作为因变量记录下来。然而,问题是,你无法观察到这个人什么时候处于疯狂状态,什么时候处于抑郁状态,所以你没有把它记录为一个变量。如果你简单地用时间作为预测因子来计算线性回归,你可能会得到一个接近零的无关紧要的系数,因为平均情绪既不会显示出上升趋势,也不会显示出下降趋势。如果你使用切换回归,它将理想地检测到这两种状态,并向你展示情绪是如何随着时间的推移而发展的,同时也会给你一个带有转换概率的矩阵。
  • 灵活性:一个直接的优点是它非常灵活,因为我们可以使用相同回归的几个不同版本。
  • 丰富的统计:另一个优点是,它为我们提供了丰富的统计数据来解释,包括:转移概率,每个状态的单独方程,以及每个状态在给定时间点的概率。此外,您可以使用数字或图表来解释它。

缺点

  • 要求:状态之间的转换必须遵循马尔可夫过程,否则切换回归将不能产生无偏估计量。问题是,并非所有必要的转换都满足马尔可夫过程的要求。
  • 状态数:状态的数量不是由模型计算的,但是您必须在运行模型估计之前指定。总是很难说,正确的状态数是多少,而且有时,如果确实有比你指定的更少甚至更多的状态,就会使解释变得困难。
  • 计算复杂:切换回归的一个明显缺点是它的计算相对复杂。这意味着随着数据量的增加,特别是随着状态的增加,设备的计算能力将很快达到极限。

进一步的联系

如果你仍然对这个话题感兴趣,我可以推荐你阅读以下读物,以深入了解这个话题:

  • https://rpubs.com/ibn_abdullah/markovs

参考文献

MSwM的例子- Jose A. Sanchez-Espigares, Alberto Lopez-Moreno,统计和运筹学部门

汉密尔顿,j.d. 1989。非平稳时间序列和经济周期经济分析的新方法。计量经济学57:357-384。

1993.估计、推断和预测受制度变化影响的时间序列。在手册统计11:计量经济学,编g.s. Maddala, c.r.饶,和h.d.维诺德,231-260。圣地亚哥,加州:爱思唯尔。

金,C.-J。1994.具有马尔可夫切换的动态线性模型。计量经济学报(自然科学版);

1994.时间序列分析。普林斯顿,新泽西州:普林斯顿大学出版社。(22章)

5个评论

  • 嗨,Andrej,谢谢你的帖子。
    我想知道为什么它只需要从lm()函数产生的回归模型输入。我在所有的例子中都看到过,但没有人给出理由。以及lm()中的模型是什么样的。那就是是否有一个特定的线性模型?

    如果可能的话,你愿意分享这个示例数据集吗?

    • 嗨,此外,

      它一般以线性模型作为输入,线性模型只能由lm()-函数产生。原因很简单,msmFit()函数被编程为只接受线性模型作为输入。如果您提供的不是线性模型作为输入,那么很可能会导致错误。一般来说,无论使用简单线性回归还是多元线性回归,对任何一种线性模型都不应该有限制。有时,msmFit()函数也可以从glm()函数中获取广义线性模型,但这些模型通常会导致错误,因为这些值可能不会收敛(简而言之,msmFit()无法计算估计)。因此,我建议保持简单,只使用lm()模型作为输入,并尽可能使用较少的参数。

      一般来说,你可以通过谷歌搜索黄金价格时间序列数据来获得数据集。这里有一个例子:https://datahub.io/core/gold-prices。如果你想让我给你发送我使用的完全相同的数据集,然后通过以下方式给我发电子邮件:http://万博网页在线登录www.chinaqphy.com/contact-and-imprint/我很乐意为你提供数据集。

      希望我能解决你的问题!

      亲切的问候,
      狗万商业

  • 你好,我想估计一下农民在农业生产中使用可再生能源的意愿。转换回归可以用来分析使用可再生能源的意愿吗?我需要回应。

    • 喂Anthonia,

      在你的情况下,这很大程度上取决于你收集的数据。如果你能收集到农民在较长时间内使用可再生能源的时间序列数据,你就能估计出他们从一种状态转换到另一种状态的可能性,例如,从低可再生能源接受度的状态转换到高可再生能源接受度的状态。

留言回复

您的电子邮件地址将不会被公布。必填项被标记