我在SAS Enterprise Guide 4.2中编码。 我正在尝试计算Quandt的对数似然比。但理解我的问题并不重要。
该比率基于连续回归。 即从1到t0的回归,其中1 <= t0 <= T且T是样本大小。 插图:
它还执行从t0 + 1到T的“正向回归”。 插图:
回归是普通的最小二乘回归。
在执行回归之后,将残差的平方相加。
所以这就是我需要的。 对于每个观察t0我想:
数据由一个组变量,一个因变量和一个自变量组成。 应该按组变量进行计算(但这不应该太困难)。
我自己能够完成这项任务的一部分,但它非常无效,因为数据超过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
有没有人遇到过类似的问题,或者对如何以有效的方式解决问题有任何想法? 欢迎提供所有帮助,如果不清楚,请随时让我澄清一下。
答案 0 :(得分:0)
就总和而言,下面的内容应该有效(尽管您的输入数据集必须先按组排序)。
由于您要求的总和基本上是col2乘以每个组中col1的累积和,您可以使用retain语句来跟踪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;