0
我對移動平均線有疑問。我使用Proc Expand(cmovave 3),但這三天可能是非連續的,我猜想。我想避免在幾天之間丟失數據,並使用相鄰日期的移動平均數。移動平均線僅適用於sas中的連續日期
有沒有什麼辦法可以做到這一點?如果我想用另一種方式說明'如何選擇我的數據集中連續時間(天)的值?'。我希望你給我一些這個問題的例子。
我對移動平均線有疑問。我使用Proc Expand(cmovave 3),但這三天可能是非連續的,我猜想。我想避免在幾天之間丟失數據,並使用相鄰日期的移動平均數。移動平均線僅適用於sas中的連續日期
有沒有什麼辦法可以做到這一點?如果我想用另一種方式說明'如何選擇我的數據集中連續時間(天)的值?'。我希望你給我一些這個問題的例子。
使用展開以確保您具有時間序列間隔中的所有值。然後使用數據步驟來計算具有lagN()函數的ma3。
如果您的數據已經具有正確的時間間隔,則跳過PROC EXPAND步驟。
data test;
start = "01JAN2013"d;
format date date9.
value best.;
do i=1 to 365;
r = ranuni(1);
value = rannor(1);
date = intnx('weekday',start,i);
dummy=1;
if r > .33 then output;
end;
drop i start r;
run;
proc expand data=test out=test2 to=weekday ;
id date;
var dummy;
run;
data test(drop=dummy);
merge test2 test;
by date;
ma3 = (value + lag(value) + lag2(value))/3;
run;
我使用DUMMY變量,以便EXPAND將系列轉換爲WEEKDAY。然後放下。