【问题标题】:SAS sequential regression (in Quandt's log likelihood method)SAS 顺序回归(在 Quandt 的对数似然法中)
【发布时间】:2014-03-21 13:35:50
【问题描述】:

我正在使用 SAS Enterprise Guide 4.2 进行编码。 我正在尝试计算 Quandt 的对数似然比。但是理解我的问题并不重要。

该比率基于顺序回归。 即从 1 到 t0 的回归,其中 1

  • 首先对第一个观察结果执行回归
  • 然后对前两个观察值执行回归
  • 然后对前 3 个观察值执行回归
  • ...等等

它还在执行从 t0+1 到 T 的“正向回归”。 插图:

  • 首先对最后的 T-1 个观测值执行回归
  • 然后对最后的 T-2 观察值执行回归
  • 然后对最后的 T-3 观察值执行回归
  • ...等等

回归是普通最小二乘回归。

执行回归后,对残差的平方求和。

所以这就是我需要的。 对于每个观察 t0 我想:

  • 从 1 到 t0 进行 OLS 回归,并对残差的平方求和
  • 从 t0+1 到 T 进行 OLS 回归,并对残差的平方求和

数据由一组变量、一个因变量和一个自变量组成。 计算应该按组变量进行分组(但这应该不会太难)。

我已经能够自己完成部分任务,但是效率非常低,而且由于数据包含超过 1,000,000,000 次观察,因此效率非常重要

我还注意到程序“autoreg”计算同样基于顺序回归的 CUSUM 统计量,因此我怀疑此功能可以在 SAS 中使用,但我无法找到它。

而我现在最苦恼的部分是求和。 我想做的总结的简单例子:

Input:
col1 col2
1     2
2     5
5     4
7     6

Output:
col3
2    =1*2
15   =1*5+2*5
32   =1*4+2*4+5*4
90   =1*6+2*6+5*6+7*6

有没有人遇到过类似的问题或知道如何以有效的方式解决它? 欢迎所有帮助,如果不清楚,请随时要求我澄清。

【问题讨论】:

    标签: sas regression


    【解决方案1】:

    就总和而言,以下应该可以工作(尽管您的输入数据集必须首先按组排序)。

    由于您要求的总和基本上是 col2 乘以每个组中 col1 的累积总和,因此您可以使用保留语句来跟踪 col1 的总和,并使用按组处理来重置累积总和每次数据步骤遇到一个新组时。

    data output;
      retain cusum;
      set input;
      by group;
      if first.group then cusum = col1;
      else cusum = cusum + col1;
      col3 = cusum * col2;
      drop cusum;
    run;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 2018-05-05
      • 1970-01-01
      • 2014-12-19
      • 2011-03-27
      • 2018-06-19
      • 1970-01-01
      相关资源
      最近更新 更多