蔣 濤 梁 鳳 周 昊 黃德生,4 關(guān) 鵬△
3
時間序列分析是處理時間序列數(shù)據(jù)的常用方法[1],在此方法中,需要定義日期,SPSS軟件界面data=>Define Dates提供了定義日期的常用類型,由year_,quarter_,month_,week_,day_,hour_,minute_,second_和date_組成,但是并不是所有這些時間的自由組合。例如weeks只能和days、hours組合,而無法和year形成周期為52周的組合。對于一些其他的周期性數(shù)據(jù)也存在同樣的問題,本文主要將主流統(tǒng)計軟件中定義不常見周期性時間數(shù)據(jù)的方法加以介紹。
在定義時間數(shù)據(jù)時,使用DATE命令,為:
DATE keyword[starting value[periodicity]],其中keyword為關(guān)鍵詞,starting value為第一個個案值,periodicity為周期。長時間段的keyword為YEAR、QUARTER、MONTH。短時間段的keyword包括WEEK、DAY、HOUR、MINUTE、SECOND。對于其他任意時間段,可以使用CIRCLE、OBS為keyword。
對于分年份的周數(shù)據(jù),我們可以假設(shè)一年有52個星期,則periodicity取52,Default starting value取1,在語句窗口執(zhí)行:
DATE OBS 1 52
則產(chǎn)生如下三個變量,分別是CIRCLE_、OBS_、DATE_。第一個個案三個變量的取值分別為1、1、1 1,第二個個案三個變量的取值分別為1、2、1 2,以此類推。這樣我們就定義了以52周為周期的時間序列。數(shù)據(jù)結(jié)果如下:
CYCLE_ OBS_ DATE_
1 1 1 1
1 2 1 2
1 3 1 3
1 4 1 4
1 5 1 5
?
1 50 1 50
1 51 1 51
1 52 1 52
2 1 2 1
2 2 2 2
在其他統(tǒng)計軟件中也嘗試進(jìn)行周期為52周的時間序列數(shù)據(jù)的定義:
(1)R軟件通過加載TSA軟件包利用ts函數(shù)定義時間序列[2-3],包括數(shù)據(jù)、首發(fā)時間start,結(jié)束時間end,在基礎(chǔ)的單位時間長度上數(shù)據(jù)的個數(shù)frequency或者倒數(shù)deltat=1/frequency。對于以周為單位的數(shù)據(jù)可以定義為:
z <- ts(c(1:312),frequency = 52,start = c(2011,1)) # 1st of 2011
輸出結(jié)果:
Time Series:
Start = c(2011,1)
End = c(2016,52)
Frequency = 52
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
[91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
[145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
[163] 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
[181] 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
[199] 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
[217] 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
[235] 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
[253] 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
[271] 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
[289] 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
[307] 307 308 309 310 311 312
(2)在SAS軟件中,通過函數(shù)intnx定義時間序列[4],intnx函數(shù)的三個參數(shù),第一個參數(shù)是指定等時間間隔,可以是day,week,month,quarter,year等。第二個參數(shù)是指定參照時間。第三個參數(shù)是_n_k,用來調(diào)整開始觀測指針,k為正整數(shù)時指針由參照時間向未來撥k期;k取負(fù)整數(shù)時反之。
time=intnx( ‘month’,‘01jan2005’d,_n_-1);
data example1_2;
input case ;
time=intnx( ‘week’,‘01jan2005’d,_n_);
format time weekdate.;
cards;
34
50
70
46
72;
proc print data=example1_2;
run;
輸出結(jié)果:
Obs case time
1 34 Sunday,January 2,2005
2 50 Sunday,January 9,2005
3 70 Sunday,January 16,2005
4 46 Sunday,January 23,2005
5 72 Sunday,February 30,2005
(3)Stata軟件則需要先建立一個時間變量[5],然后使用tsset命令來定義時間變量[1],基本格式為:
tsset timevar[,options]
options包括兩類,一個是定義時間單位,包括時鐘時間、天、周、月、季節(jié)、半年、年及自定義時間;時間周期采用delta(#),若從菜單上執(zhí)行操作會更簡便一些。
statistics=>Time Series=>Setup and utilities=>declare dataset to be time-series data.
在Stata中,tsset t,generic delta(5),輸入數(shù)據(jù)的方式為0,5,10,15,20等。綜上所述,定義時間序列的通用方式是所使用的時間單位、開始時間、周期。只要讀者能夠掌握這三個原則,即可應(yīng)對任意周期的時間序列的定義。