2012-07-30 50 views
0

爲了計算R中時間序列的二次變化,我想對每個點求和當前點和最後x個點的對數迴歸的平方。在R中計算二次變化

我知道,你可以通過輸入

diff(log(py))^2 

但是建立PY的數收益的平方我怎麼能建立一個時間序列這是爲了建立二次變化在過去的5點總結在每個點?

回答

3

rowSums相結合的功能embed給你需要的東西:

cbind(
    AirPassengers, 
    sum5=c(rep(NA, 4), rowSums(embed(AirPassengers, 5))) 
) 

     AirPassengers sum5 
Jan 1949   112 NA 
Feb 1949   118 NA 
Mar 1949   132 NA 
Apr 1949   129 NA 
May 1949   121 612 
Jun 1949   135 635 
Jul 1949   148 665 
... 

做什麼embed是創建一個矩陣的初始向量的滯後值:

embed(AirPassengers, 5) 
     [,1] [,2] [,3] [,4] [,5] 
    [1,] 121 129 132 118 112 
    [2,] 135 121 129 132 118 
    [3,] 148 135 121 129 132 
    [4,] 148 148 135 121 129 
    [5,] 136 148 148 135 121 
    [6,] 119 136 148 148 135 
    [7,] 104 119 136 148 148 
    [8,] 118 104 119 136 148 
    ... 

你可以他們使用rowSums或該矩陣的行上的任何其他操作。

+0

謝謝你,在此期間我使用cumsum和區分載體,但我會嘗試你的方式 – BlueTrin 2012-07-30 10:16:59