我有以下DF:如何可以做多時間序列的多個固定的測試在數據幀
head(vardata)
Month repo Callrate WPI GDP FED nse usd
1 2001-04-01 9.00 7.49 5.41 4.6 4.50 1125.2 46.79
2 2001-05-01 8.75 8.03 5.60 4.6 4.00 1167.9 46.92
3 2001-06-01 8.50 7.24 5.30 4.6 3.75 1107.9 47.00
4 2001-07-01 8.50 7.19 5.23 5.3 3.75 1072.8 47.14
5 2001-08-01 8.50 6.94 5.41 5.3 3.50 1053.8 47.13
6 2001-09-01 8.50 7.30 4.52 5.3 3.00 913.9 47.65
vardata_num<-df[,2:8]
我要進行Box.test,adf.test和kpss.test所有7與變種遵循以下規則:
說我設置了5%的顯着性水平。然後,規則是:
1)對於Box.test,如果p值< 0.05 =>靜止
2)對於adf.test,如果p值< 0.05 =>靜止
3)對於kpss.test,如果p值> 0.05 =>靜止的(不等式的音符變化)
獨立我沒有測試爲:
Box.test(ts(vardata_num$repo),lag=20,type="Ljung-Box")
Box-Ljung test
data: ts(vardata_num$repo)
X-squared = 1100, df = 20, p-value <2e-16
adf.test(ts(vardata_num$repo),alternative = "stationary")
Augmented Dickey-Fuller Test
data: ts(vardata_num$repo)
Dickey-Fuller = -2.7, Lag order = 5, p-value = 0.3
alternative hypothesis: stationary
kpss.test(ts(vardata_num$repo))
KPSS Test for Level Stationarity
data: ts(vardata_num$repo)
KPSS Level = 0.32, Truncation lag parameter = 3, p-value = 0.1
# to extract p values
Box.test(ts(vardata_num$repo),lag=20,type="Ljung-Box")$p.value
adf.test(ts(vardata_num$repo),alternative = "stationary")$p.value
kpss.test(ts(vardata_num$repo))$p.value
這是一次完成所有變量之一.....
但是我想在所有的var &輸出在某種數據框中,如果可能的話可以這樣做:
var box.pvalue box adf.pvalue adf kpss.pvalue kpss
repo 0.03 TRUE 0.03 TRUE 0.03 FALSE
Callrate 0.03 TRUE 0.03 TRUE 0.03 FALSE
WPI 0.03 TRUE 0.03 TRUE 0.03 FALSE
GDP 0.03 TRUE 0.03 TRUE 0.03 FALSE
FED 0.51 FALSE 0.03 TRUE 0.03 FALSE
nse 0.03 TRUE 0.03 TRUE 0.03 FALSE
usd 0.45 FALSE 0.03 TRUE 0.03 FALSE
其中TRUE =序列是平穩的; FALSE =系列是非平穩的
更新---我嘗試了多個時間序列
平穩性檢驗
multi_stat_tests<- function(df){
for(i in 1:dim(df)[2]){
df_multi<-data.frame(var=names(df)[i],box.pvalue=Box.test(ts(df[,i]),lag=20,type="Ljung-Box")$p.value,adf.pvalue=adf.test(ts(df[,i]),alternative = "stationary")$p.value,kpss.pvalue=kpss.test(ts(df[,i]))$p.value,
box=Box.test(ts(df[,i]),lag=20,type="Ljung-Box")$p.value<0.05,
adf=adf.test(ts(df[,i]),alternative = "stationary")$p.value<0.05,
kpss=kpss.test(ts(df[,i]))$p.value>0.05
)
return(df_multi)
}
}
>multi_stat_tests(vardata_num)
var box.pvalue adf.pvalue kpss.pvalue box adf kpss
1 repo 0 0.2859 0.1 TRUE FALSE TRUE
它只是拿起只有一個變種......它不是迭代跨越所有變量......在這裏缺少一些東西....幫助需要!!!!!
這是最好的常用和不那麼有效的方式,包括你已經嘗試過什麼,所以遠。你已經概述了你想要做的事情,但具體是什麼讓你感到沮喪?這裏的人們更好地告訴你如何調整你的代碼,而不是爲你寫代碼。 – rosscova
@rosscova我已經完成了所有這些測試之一,分別爲每個變種.....我需要幫助做某種循環....... – Nishant
發佈您已使用的代碼那些「一次一個」的測試。向您展示如何迭代已有的代碼將比從頭開始好得多。 – rosscova