--- title: "Using mlrv to anaylze data" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Using mlrv to anaylze data} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- Data analysis in the paper of Bai and Wu (2023b). ### Loading data Hong Kong circulatory and respiratory data. ```{r setup} library(mlrv) library(foreach) library(magrittr) data(hk_data) colnames(hk_data) = c("SO2","NO2","Dust","Ozone","Temperature", "Humidity","num_circu","num_respir","Hospital Admission", "w1","w2","w3","w4","w5","w6") n = nrow(hk_data) t = (1:n)/n hk = list() hk$x = as.matrix(cbind(rep(1,n), scale(hk_data[,1:3]))) hk$y = hk_data$`Hospital Admission` ``` ### Test for long memory ```{r} pvmatrix = matrix(nrow=2, ncol=4) ###inistialization setting = list(B = 5000, gcv = 1, neighbour = 1) setting$lb = floor(10/7*n^(4/15)) - setting$neighbour setting$ub = max(floor(25/7*n^(4/15))+ setting$neighbour, setting$lb+2*setting$neighbour+1) ``` #### Using the plug-in estimator for long-run covariance matrix function. ```{r} setting$lrvmethod =0. i=1 # print(rule_of_thumb(y= hk$y, x = hk$x)) for(type in c("KPSS","RS","VS","KS")){ setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2) print(paste("p-value",result_reg)) pvmatrix[1,i] = result_reg i = i + 1 } ``` #### Debias difference-based estimator for long-run covariance matrix function. ```{r} setting$lrvmethod =1 i=1 for(type in c("KPSS","RS","VS","KS")) { setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2) print(paste("p-value",result_reg)) pvmatrix[2,i] = result_reg i = i + 1 } ``` #### Output ```{r} rownames(pvmatrix) = c("plug","diff") colnames(pvmatrix) = c("KPSS","RS","VS","KS") knitr::kable(pvmatrix,type="latex") xtable::xtable(pvmatrix, digits = 3) ``` ### Sensitivity Check Using parameter `shift' to multiply the GCV selected bandwidth by a factor. - Shift = 1.2 with plug-in estimator. ```{r} pvmatrix = matrix(nrow=2, ncol=4) setting$lrvmethod = 0 i=1 for(type in c("KPSS","RS","VS","KS")){ setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2, shift = 1.2) print(paste("p-value",result_reg)) pvmatrix[1,i] = result_reg i = i + 1 } ``` - Shift = 1.2 with debias difference-based estimator. Choosing verbose_dist = TRUE can print more intermediate results, the exact values of smoothing parameters, the test statistic, the summary of bootstrap distribution and the p-value. ```{r} setting$lrvmethod =1 i=1 for(type in c("KPSS","RS","VS","KS")) { setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2, verbose_dist = TRUE, shift = 1.2) print(paste("p-value",result_reg)) pvmatrix[2,i] = result_reg i = i + 1 } ``` - Results of shift = 1.2 ```{r} rownames(pvmatrix) = c("plug","diff") colnames(pvmatrix) = c("KPSS","RS","VS","KS") knitr::kable(pvmatrix,type="latex") xtable::xtable(pvmatrix, digits = 3) ``` - Shift = 0.8 with plug-in estimator. ```{r} pvmatrix = matrix(nrow=2, ncol=4) setting$lrvmethod =0 i=1 for(type in c("KPSS","RS","VS","KS")){ setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2, shift = 0.8) print(paste("p-value",result_reg)) pvmatrix[1,i] = result_reg i = i + 1 } ``` - Shift = 0.8 with the debias difference-based estimator. ```{r} setting$lrvmethod =1 i=1 for(type in c("KPSS","RS","VS","KS")) { setting$type = type print(type) result_reg = heter_covariate(list(y= hk$y, x = hk$x), setting, mvselect = -2, verbose_dist = TRUE, shift = 0.8) print(paste("p-value",result_reg)) pvmatrix[2,i] = result_reg i = i + 1 } ``` - Results of shift = 0.8 ```{r} rownames(pvmatrix) = c("plug","diff") colnames(pvmatrix) = c("KPSS","RS","VS","KS") knitr::kable(pvmatrix,type="latex") xtable::xtable(pvmatrix, digits = 3) ``` ### Test for structure stability Test if the coefficient function of "SO2","NO2","Dust" of the second year is constant. ```{r} hk$x = as.matrix(cbind(rep(1,n), (hk_data[,1:3]))) hk$y = hk_data$`Hospital Admission` setting$type = 0 setting$bw_set = c(0.1, 0.35) setting$eta = 0.2 setting$lrvmethod = 1 setting$lb = 10 setting$ub = 15 hk1 = list() hk1$x = hk$x[366:730,] hk1$y = hk$y[366:730] p1 <- heter_gradient(hk1, setting, mvselect = -2, verbose = T) p1 ```