--- title: "URooTab: Tabular Reporting of 'EViews' Unit Root Tests" author: "Sagiru Mati, PhD" date: '`r format(Sys.Date(), "%A: %B %d, %Y")`' output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{URooTab: Tabular Reporting of 'EViews' Unit Root Tests} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", echo = T, eval=F, out.width = "45%", out.height = "20%", fig.show="hold" ) library(URooTab) library(knitr) ``` <style> .author,.date{ color: #008753; font-weight: bold; text-align: center; } code{color:red;} .caption{ text-align: center; } .title{ color: red !important; width:100% !important; text-align: center !important; } #about-the-author{ width: 79%; } img1 { border:5px solid red; animation: myanimation 2s infinite; } @keyframes myanimation { from { border:5px solid red; } to { border:5px solid yellow; } } img{ border:5px solid magenta; } h1{ text-align: center; border:5px solid #FFC704; color:DarkGreen; display: block; } h2{ color:Green; border:5px solid yellow; filter: saturate(70%); width:80%; } h3{ color:Green; border:3px solid #FFC704; filter: saturate(75%); width:44%; } } </style> <!-- <img src="../inst/figures/URooTab.png" align="right" width="120" /> --> <!-- <!-- badges: start --> --> <!-- [](https://cran.r-project.org/package=URooTab) --> <!-- [](https://cranlogs.r-pkg.org/badges/grand-total/URooTab?color=49C31B) --> <!-- [](https://cranlogs.r-pkg.org/badges/URooTab?color=49C31B) --> <!-- [](https://github.com/sagirumati/URooTab/actions/workflows/check-standard.yaml) --> <!-- badges: end --> Please do not forget to cite the package as follows: **Plain text:** Mati S. (2023). URooTab: Tabular Reporting of 'EViews' Unit Root Tests. CRAN, https://github.com/sagirumati/URooTab **Bibtex:** @Manual{Mati2023, title = {{URooTab}: Tabular Reporting of {EViews} Unit Root Tests}, author = {Sagiru Mati}, publisher = {CRAN}, url = {https://github.com/sagirumati/URooTab}, } # 1 About the Author The author of this package, **Sagiru Mati**, obtained his PhD in Economics from the Near East University, North Cyprus. He works at the Department of Economics, Yusuf Maitama Sule (Northwest) University, Kano, Nigeria. Please visit his [website](https://smati.com.ng) for more details. Please follow his publications on: [**Google Scholar**](https://scholar.google.com/citations?user=odEp1eIAAAAJ&hl=en&oi=ao) [**Web of Science**](https://www.webofscience.com/wos/author/record/P-3408-2017) [**ORCID: 0000-0003-1413-3974**](https://orcid.org/0000-0003-1413-3974) # 2 About URooTab URooTab is an R package that can conducts `EViews` unit root tests and report them in tabular form. # 3 Why URooTab? While there are R packages and EViews add-ins available for presenting unit root tests in tabular form, none of them incorporates **EViews** procedures within the R environment. Specifically: - I wish I could conduct unit root using EViews routines in R, R Markdown or Quarto document - I wish I could dynamically import the results of the unit root tests individually or at once into R, R Markdown or Quarto document without switching between these applications back and forth. - I wish I could use an R function to report unit root test in a table style suitable for publication. - I wish I could automatically format the table in `Latex`, `html`, `pandoc` and `markdown`. - I wish I could do all of the above from R, R Markdown or Quarto without opening the EViews!!! # 4 Installation URooTab can be installed using the following commands in R. install.packages("URooTab") OR devtools::install_github("sagirumati/URooTab") # 5 Setup To run the package successfully, you need to do one of the following - Add EViews installation folder to path (**Environment Variables**). - Don’t do anything if the name of EViews executable is one of the following: `EViews13_x64`, `EViews13_x86`, `EViews12_x64`, `EViews12_x86`, `EViews11_x64`, `EViews11_x86`, `EViews10_x64`, `EViews10_x86`, `EViews9_x64`, `EViews9_x86`, `EViews10`. The package will find the executable automatically. - Rename the Eviews executable to `eviews` or one of the names above. - Alternatively, you can use `set_eviews_path()` function to set the path the EViews executable as follows: <!-- --> library(EviewR) set_eviews_path("C:/Program Files (x86)/EViews 10/EViews10.exe") # 6 Usage Please load the URooTab package as follows: ```{r} . library(URooTab) ``` # 7 Ways to use URooTab The package can work with base R, R Markdown or Quarto document. # 8 URooTab along with R Markdown or Quarto document You can use `URooTab` in an R chunk in R Markdown or Quarto document: The `uroot()` function reports all the available test (ADF and PP) at once. It is more suitable for Quarto document, which has both `tbl-cap` and `tbl-subcap` chunk options. To produce Table <a href="#tab:URooTab">8.1</a>, use the R chunk below: Notice the chunk option `results: asis` because `uroot()` is designed to print all the tables (ADF and PP) in the chunk. If you are producing multiple `kable` tables, `results: asis` is necessary. You can also use `kableExtra` package to further customise the table. ```` ```{r}`r ''` #| label: URooTab #| eval: true #| results: asis library(URooTab) set.seed(1234) # for reproducibility x=rnorm(100) y=cumsum(x) z=cumsum(y) dataFrame=data.frame(x,y,z) uroot(dataFrame, caption = "Unit Root Tests for x, y and Z") ``` ```` <table style="width:100%;"> <caption><span id="tab:URooTab"></span>Table 8.1: Unit Root Tests for x, y and Z</caption> <colgroup> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 19%" /> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 19%" /> <col style="width: 9%" /> </colgroup> <thead> <tr class="header"> <th style="text-align: left;">Variables</th> <th style="text-align: left;">None</th> <th style="text-align: left;">Constant</th> <th style="text-align: left;">Constant and trend</th> <th style="text-align: left;">None</th> <th style="text-align: left;">Constant</th> <th style="text-align: left;">Constant and trend</th> <th style="text-align: left;">Decision</th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align: left;">X</td> <td style="text-align: left;">-8.300***</td> <td style="text-align: left;">-8.396***</td> <td style="text-align: left;">-8.815***</td> <td style="text-align: left;">-8.274***</td> <td style="text-align: left;">-8.239***</td> <td style="text-align: left;">-8.214***</td> <td style="text-align: left;">I(0)</td> </tr> <tr class="even"> <td style="text-align: left;">Y</td> <td style="text-align: left;">0.417</td> <td style="text-align: left;">-1.907</td> <td style="text-align: left;">0.026</td> <td style="text-align: left;">-8.148***</td> <td style="text-align: left;">-8.259***</td> <td style="text-align: left;">-8.721***</td> <td style="text-align: left;">I(1)</td> </tr> <tr class="odd"> <td style="text-align: left;">Z</td> <td style="text-align: left;">-2.379**</td> <td style="text-align: left;">-2.084</td> <td style="text-align: left;">-2.938</td> <td style="text-align: left;">0.417</td> <td style="text-align: left;">-2.013</td> <td style="text-align: left;">-0.033</td> <td style="text-align: left;">I(2)</td> </tr> </tbody> </table> <table> <caption><span id="tab:URooTab"></span>Table 8.1: Unit Root Tests for x, y and Z</caption> <colgroup> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 10%" /> <col style="width: 19%" /> <col style="width: 11%" /> <col style="width: 11%" /> <col style="width: 19%" /> <col style="width: 9%" /> </colgroup> <thead> <tr class="header"> <th style="text-align: left;">Variables</th> <th style="text-align: left;">None</th> <th style="text-align: left;">Constant</th> <th style="text-align: left;">Constant and trend</th> <th style="text-align: left;">None</th> <th style="text-align: left;">Constant</th> <th style="text-align: left;">Constant and trend</th> <th style="text-align: left;">Decision</th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align: left;">X</td> <td style="text-align: left;">-8.327***</td> <td style="text-align: left;">-8.418***</td> <td style="text-align: left;">-8.815***</td> <td style="text-align: left;">-42.502***</td> <td style="text-align: left;">-51.961***</td> <td style="text-align: left;">-74.206***</td> <td style="text-align: left;">I(0)</td> </tr> <tr class="even"> <td style="text-align: left;">Y</td> <td style="text-align: left;">0.275</td> <td style="text-align: left;">-1.857</td> <td style="text-align: left;">-0.066</td> <td style="text-align: left;">-8.170***</td> <td style="text-align: left;">-8.275***</td> <td style="text-align: left;">-8.721***</td> <td style="text-align: left;">I(1)</td> </tr> <tr class="odd"> <td style="text-align: left;">Z</td> <td style="text-align: left;">6.659</td> <td style="text-align: left;">3.450</td> <td style="text-align: left;">-3.516**</td> <td style="text-align: left;">0.274</td> <td style="text-align: left;">-1.956</td> <td style="text-align: left;">-0.109</td> <td style="text-align: left;">I(2)</td> </tr> </tbody> </table> In R Markdown or Quarto document, `URooTab` is smart enough to recognise the document format and select the suitable table format. # 9 URooTab along with base R. In base R, you can get the table printed in console in the format you specify by the `format` argument. We can create a dataframe as follows: library(URooTab) set.seed(1234) # for reproducibility x = rnorm(100) y = cumsum(x) z = cumsum(y) dataFrame = data.frame(x, y, z) ## 9.1 The adf() function To print ADF test results in `latex` format: adf(dataFrame, format = "latex", info = "aic", caption = "ADF Unit Root Tests for x, y and Z") Or uroot(dataFrame, format = "latex", test = "adf", info = "aic", caption = "ADF Unit Root Tests for x, y and Z") The above code produces the following latex code: \begin{table}[h] \caption{ADF Unit Root Tests for x, y and Z} \centering \begin{tabular}[t]{llllllll} \toprule Variables & None & Constant & Constant and trend & None & Constant & Constant and trend & Decision\\ \midrule X & -8.300*** & -8.396*** & -8.815*** & -7.494*** & -7.460*** & -7.445*** & I(0)\\ Y & 0.224 & -1.934 & 0.026 & -8.148*** & -8.259*** & -8.721*** & I(1)\\ Z & -2.379** & -2.084 & -2.938 & 0.233 & -2.221 & -0.033 & I(2)\\ \bottomrule \end{tabular} \end{table} ## 9.2 The pp() function To print PP test results in `html` format: pp(dataFrame, format = "html", info = "aic", caption = "PP Unit Root Tests for x, y and Z") Or uroot(dataFrame, format = "html", info = "aic", test = "pp", caption = "PP Unit Root Tests for x, y and Z") The above code produces the following `html` codes in console: <table> <caption>PP Unit Root Tests for x, y and Z</caption> <thead> <tr> <th style="text-align:left;"> Variables </th> <th style="text-align:left;"> None </th> <th style="text-align:left;"> Constant </th> <th style="text-align:left;"> Constant and trend </th> <th style="text-align:left;"> None </th> <th style="text-align:left;"> Constant </th> <th style="text-align:left;"> Constant and trend </th> <th style="text-align:left;"> Decision </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X </td> <td style="text-align:left;"> -8.327*** </td> <td style="text-align:left;"> -8.418*** </td> <td style="text-align:left;"> -8.815*** </td> <td style="text-align:left;"> -42.502*** </td> <td style="text-align:left;"> -51.961*** </td> <td style="text-align:left;"> -74.206*** </td> <td style="text-align:left;"> I(0) </td> </tr> <tr> <td style="text-align:left;"> Y </td> <td style="text-align:left;"> 0.275 </td> <td style="text-align:left;"> -1.857 </td> <td style="text-align:left;"> -0.066 </td> <td style="text-align:left;"> -8.170*** </td> <td style="text-align:left;"> -8.275*** </td> <td style="text-align:left;"> -8.721*** </td> <td style="text-align:left;"> I(1) </td> </tr> <tr> <td style="text-align:left;"> Z </td> <td style="text-align:left;"> 6.659 </td> <td style="text-align:left;"> 3.450 </td> <td style="text-align:left;"> -3.516** </td> <td style="text-align:left;"> 0.274 </td> <td style="text-align:left;"> -1.956 </td> <td style="text-align:left;"> -0.109 </td> <td style="text-align:left;"> I(2) </td> </tr> </tbody> </table> ## 9.3 The uroot() function The `uroot()` function is a generic function that can be used to conduct any unit root test. Setting `test="adf"` conducts ADF test, while `test="pp"` conducts PP test. If `test` argument is not specified, the `uroot()` function conducts all the test at once.