为其他时间序列自动重复命令
Repeat command automatically for other time series
我有一个数据包含 16 个 obs。和 30 个变量,我想对每一列应用 ADF 测试。名为 test1
的数据,第一列名为 TBdu_jp
我的代码:
library(tseries)
library(urca)
library(vars)
TBdu_jp <- ts(test1$TBdu_jp, start = 1999, end = 2014, frequency = 1)
TBdu_jp <- log(TBdu_jp)
adf1 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "trend", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0_t <- summary(ur.df(TBdu_jp, type = "trend", lags = 0))
adf_lag0_d <- summary(ur.df(TBdu_jp, type = "drift", lags = 0))
adf_lag0_d1 <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "none", lags = 0))
adf_lag0_d2 <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "none", lags = 0))
adf_lag0_d1_t <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "trend", lags = 0))
adf_lag0_d2_t <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "trend", lags = 0))
adf_lag0_d1_dr <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "drift", lags = 0))
adf_lag0_d2_dr <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "drift", lags = 0))
是否有允许我对其余列自动重复相同命令的命令?
此外,是否可以在不重写代码的情况下发出相同的命令但针对不同数量的滞后,例如 1、2、3 和 4 的滞后数量?
sumts <- function(x) {
x <- log(ts(x, start = 1999, end = 2014, frequency = 1))
list(adf1=summary(ur.df(x, type = "none", lags = 0)),
adf_lag0=summary(ur.df(x, type = "none", lags = 0)),
adf_lag0_t=summary(ur.df(x, type = "trend", lags = 0)),
adf_lag0_d=summary(ur.df(x, type = "drifft", lags = 0)),
adf_lag0_d1= summary(ur.df(diff(x,differences = 1), type = "none", lags = 0)),
adf_lag0_d2= summary(ur.df(diff(x,differences = 2), type = "none", lags = 0)),
adf_lag0_d1_t= summary(ur.df(diff(x,differences = 1), type = "trend", lags = 0)),
adf_lag0_d2_t=summary(ur.df(diff(x,differences = 2), type = "trend", lags = 0)),
adf_lag0_d1_dr=summary(ur.df(diff(x,differences = 1), type = "drift", lags = 0)),
adf_lag0_d2_dr=summary(ur.df(diff(x,differences = 2), type = "drift", lags = 0))
)
}
lapply(test1, sumts)
我有一个数据包含 16 个 obs。和 30 个变量,我想对每一列应用 ADF 测试。名为 test1
的数据,第一列名为 TBdu_jp
我的代码:
library(tseries)
library(urca)
library(vars)
TBdu_jp <- ts(test1$TBdu_jp, start = 1999, end = 2014, frequency = 1)
TBdu_jp <- log(TBdu_jp)
adf1 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "trend", lags = 0))
adf_lag0 <- summary(ur.df(TBdu_jp, type = "none", lags = 0))
adf_lag0_t <- summary(ur.df(TBdu_jp, type = "trend", lags = 0))
adf_lag0_d <- summary(ur.df(TBdu_jp, type = "drift", lags = 0))
adf_lag0_d1 <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "none", lags = 0))
adf_lag0_d2 <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "none", lags = 0))
adf_lag0_d1_t <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "trend", lags = 0))
adf_lag0_d2_t <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "trend", lags = 0))
adf_lag0_d1_dr <- summary(ur.df(diff(TBdu_jp,differences = 1), type = "drift", lags = 0))
adf_lag0_d2_dr <- summary(ur.df(diff(TBdu_jp,differences = 2), type = "drift", lags = 0))
是否有允许我对其余列自动重复相同命令的命令?
此外,是否可以在不重写代码的情况下发出相同的命令但针对不同数量的滞后,例如 1、2、3 和 4 的滞后数量?
sumts <- function(x) {
x <- log(ts(x, start = 1999, end = 2014, frequency = 1))
list(adf1=summary(ur.df(x, type = "none", lags = 0)),
adf_lag0=summary(ur.df(x, type = "none", lags = 0)),
adf_lag0_t=summary(ur.df(x, type = "trend", lags = 0)),
adf_lag0_d=summary(ur.df(x, type = "drifft", lags = 0)),
adf_lag0_d1= summary(ur.df(diff(x,differences = 1), type = "none", lags = 0)),
adf_lag0_d2= summary(ur.df(diff(x,differences = 2), type = "none", lags = 0)),
adf_lag0_d1_t= summary(ur.df(diff(x,differences = 1), type = "trend", lags = 0)),
adf_lag0_d2_t=summary(ur.df(diff(x,differences = 2), type = "trend", lags = 0)),
adf_lag0_d1_dr=summary(ur.df(diff(x,differences = 1), type = "drift", lags = 0)),
adf_lag0_d2_dr=summary(ur.df(diff(x,differences = 2), type = "drift", lags = 0))
)
}
lapply(test1, sumts)