具有切换回归的过程分析

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

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

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

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

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

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

切换回归分析实际上可以应用于任何需要分析时间序列中不同不可观测状态的领域。它已成功应用于金融和经济学领域,以了解商业周期、资产配置、股票回报、利率、投资组合管理和汇率。然而,这也是其他可能在不同领域的应用。以下是一些示例:

  • 人力资源:员工流动的驱动力是什么?如果您有一个长期跟踪离职率的团队,您可以轻松地组装一个包含丰富信息的大型数据集。现在,您可以分析公司的发展是否有不同的阶段,以及您选择的变量的影响如何随阶段而变化。例如,你可能会发现有三个阶段,例如,当你的公司成长时,扩张阶段;当你的公司稳定时,停滞阶段;当你的公司萎缩时,衰退阶段。转换回归将告诉您,哪些因素与根据州留住员工相关。
  • 售后维修:什么会影响售后订单的进货量?即使在这里,您可能会看到不同的基础阶段,并且取决于某个阶段,其他因素更为重要。这可能有助于您预测传入修复量。
  • 操作:提前期的主要影响因素是什么?如果提前期、周期中存在重复模式,并且取决于您在周期中的位置,变量可能会对提前期产生积极或消极的影响,该怎么办。然而,由于您忽略了可能的潜在阶段,所以这个变量的负效应和正效应平均化,因此您错误地认为这个变量是不相关的。
  • 市场营销:是否有一些营销工具在某些阶段更有效?如果你仔细想想,营销工具的效果可能会因产品的状态而不同。但问题是,你能发现什么样的状态这些状态如何改变变量的效应大小?

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

  1. 聚类:如果您有集群算法的经验,您可能已经意识到切换回归也可以用作集群算法。如果切换回归将某些观察值分配给基础状态,也可以解释为将它们分配给某个集群。
  2. 状态检测:您想了解数据中是否存在未观察到的不同状态。另一种说法是:是否有我们可能遗漏的与观察到的变量相互作用的分类变量?
  3. 估计不同状态的不同方程式:您不想了解是否存在无法直接观察到的不同基本状态,但您还想了解变量的影响如何因状态而异。
  4. 了解状态的概率:您想了解观察处于某一状态的概率是多少,以及该概率是如何受到影响的?
  5. 不同状态之间的切换概率:你想了解从一种状态切换到另一种状态的概率是多少,状态切换的驱动因素是什么,以及某些观察组在某些状态之间切换的可能性是多少。

程序

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

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

步骤1:设置数据

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

#############库安装程序包(MSwM)库安装程序包(ggplot2)库(MSwM)库(ggplot2)库(ggplot2)金$日期(01年9月1日),金$日期(01日),金$日期(01日),金$日期(01日),金$,金$,金$价格线(%()

步骤2:决定国家

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

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

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

#############步骤2:决定状态nstates<-6

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

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

由于我有经济背景,这里我向你们提出一个小问题。为什么黄金价格在1970年之前如此稳定(有一个相当合理的解释;)?

步骤3:估计切换模型

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

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

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

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

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

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

步骤4:评估和内部交换模型

我们可以用两种方法解释切换回归模型,第一种是通过查看系数,第二种是通过图形。

看看这些系数

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

代码将给出以下结果:

马尔可夫转换模型调用:msmFit(object=olsGold,k=nstates,sw=c(FALSE,TRUE,FALSE))AIC BIC logLik 10010.85 10056.59-5001.427系数:模式1--------估计标准误差t值Pr(>| t |)(截距)121.4889 0.0008 151861.125<2.2e-16***日期0.0209 0.0013 16.077<2.2e-16***--符号。代码:0'***'0.001'***'0.01'*'0.05.'0.1''1残差标准误差:98.68257多重R平方:0.8681标准残差:最小Q1 Med Q3最大值-9.909234e+01-1.857703e+01 7.932031e-04 1.963472e+01 1.555179e+02区域2------估计标准误差t值Pr(>| t |)(截距)121.4889 0.0008 151861.125<2.2e-16***日期0.0772 0.0013 59.385<2.2e-16***---符号。代码:0'***'0.001'***'0.01'*'0.05.'0.1''1残差标准误差:98.68257多重R平方:0.8948标准化残差:最小Q1 Med Q3最大值-2.803412e+02-2.134766e+00-2.736030e-04 3.681998e-04 4.849814e+02区域3------估计标准误差t值Pr(>| t |)(截距)121.4889 0.0008 151861.125<2.2e-16***日期0.0502 0.0013 38.615<2.2e-16***---符号。代码:0'***'0.001'***'0.01'*'0.05.'0.1''1剩余标准误差:98.68257多重R平方:0.92标准化残差:最小Q1 Med Q3最大-208.87791580-4.74304709-0.07559093 1.23991461 197.72230992过渡概率:制度1制度2制度3制度1 9.955638e-01.712038e-08 0.0148519制度25.173007e-09 9.717252e-01 0.02020467制度3 4.436244e-03 2.827476e-02 0.96494213

你会意识到,它会给我们一个不同的方程。

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

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

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

看看图表

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

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

当我们看上面的数字时,我们可以看到这个状态最有可能描述的是缓慢增长的状态。这些可能性似乎也非常清楚,几乎不可能被误解。

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

第二种制度显然是高增长或波动性最高的制度,因为黄金价格快速上涨,达到峰值,然后下降到比开始飙升前略高的价格。只有大约200的增加才有较低的概率,因为这部分不一定适合这种状态。

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

最后,第三种状态似乎是适度增长。同样在这里,概率对于200左右的一个集群来说也不是很清楚。尽管如此,这看起来还是相对合理的。在这里,我也不会深入探讨解释。我会把那个留给你。

优势

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

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

缺点

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

进一步链接

如果你仍然对这个主题感兴趣,我可以推荐你以下阅读资料,以便更深入地了解这个主题:

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

工具书类

MSwM exmaples–Jose A.Sanchez Espigares,Alberto Lopez Moreno,统计与运筹学部

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

1993受体制变化影响的时间序列的估计、推断和预测。在《统计手册11:计量经济学》中,ed.G.S.Maddala、C.R.Rao和H.D.Vinod,231–260。加利福尼亚州圣地亚哥:埃尔塞弗。

金,C.-J。1994.具有马尔可夫转换的动态线性模型。计量经济学报60:1-22。

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

5评论

  • 你好,Andrej,谢谢你的帖子。
    我想知道为什么它只接受由lm()函数生成的回归模型的输入。我在所有的例子中都看到过,但没有一个给出理由。以及lm()中的模型类型。也就是说,是否有一个特定的线性模型?

    如果可能,您是否愿意共享示例数据集>

    • 嗨,福比,

      它通常以线性模型作为输入,线性模型只能由lm()函数生成-函数已编程为仅将线性模型作为输入。如果提供线性模型以外的其他输入,则极有可能导致错误。通常,对任何类型的线性模型都不应有限制,无论是使用简单线性回归还是多重线性回归。有时msmFit()函数也可以从glm()函数中获取广义线性模型,但这些模型通常会导致错误,因为值可能不会收敛(简而言之,msmFit()无法计算估计值)。因此,我建议保持简单,仅使用lm()模型作为输入,并尽可能使用少量参数。

      通常,您只需通过谷歌搜索黄金价格时间序列数据即可获得数据集。以下是一个示例来源:https://datahub.io/core/gold-prices. 如果您希望我向您发送与我使用的数据集完全相同的数据集,请通过以下方式向我发送电子邮件:http://万博网页在线登录www.chinaqphy.com/contact-and-imprint/我很乐意为您提供数据集。

      希望我能解答你的问题!

      亲切问候,,
      狗万商业

  • 您好,我正在评估农民在农业生产中使用可再生能源的意愿。切换回归可以用来分析使用可再生能源的意愿吗?请告诉我需要回复。

    • 你好,安托尼亚,

      在您的情况下,这在很大程度上取决于您收集的数据。如果您能够收集农民在较长时间内使用可再生能源的时间序列数据,您可能能够估计他们从一个州转向另一个州的可能性,例如从可再生能源采用率低的州转向可再生能源接受率高的州不稳定的能量。

留话

您的电子邮件地址将不会发布。已标记必填字段*