ConfZIC: An R package based on Confidence Envelope for minimum ZIC

Overview

Package ConfZIC provides methods to narrow down the number of models to look at in model selection based on Generalized Information Criteria for regression and time-series data.

Installation

Installation can be done for “ConfZIC” R package in three ways.

From the Comprehensive R Archive Network (CRAN): Use install.packages() function in R. Then, import ConfZIC package into working session using library() function. That is,


library(ConfZIC)

Usage

The primary functions in this package are and . these functions help us to narrow down the number of models to look at in model selection, uses the minimum ZIC (Generalized Information Criteria)

More Details: Jayaweera I.M.L.N, Trindade A.A., ``How Certain are You in Your Minimum AIC and BIC Values?“, Sankhya A (2023+)

Regression Data

Rank the regression models which lie in the given confidence envelope:

library("ConfZIC")
data(Concrete)
x=Concrete
Y=x[,9] #dependent variable
#independent variables
X1=x[,1];X2=x[,2];X3=x[,3];X4=x[,4];
X5=x[,5];X6=x[,6];X7=x[,7];X8=x[,8];
mydata=cbind(Y,X1,X2,X3,X4,X5,X6,X7,X8) #data matrix
RankReg(mydata,0.95,"BIC")
#> Fixed term is "(Intercept)"
#> $Ranked_Models
#>      BIC         Models                       
#> [1,] "7.5703169" "'c(0, 1, 2, 3, 4, 5, 8)'"   
#> [2,] "7.5714442" "'c(0, 1, 2, 3, 4, 8)'"      
#> [3,] "7.576645"  "'c(0, 1, 2, 3, 4, 5, 6, 8)'"
#> [4,] "7.5767138" "'c(0, 1, 2, 3, 4, 7, 8)'"   
#> [5,] "7.5767901" "'c(0, 1, 2, 3, 4, 5, 7, 8)'"
#> [6,] "7.5778869" "'c(0, 1, 2, 3, 4, 6, 8)'"   
#> 
#> $Confidence_Envelope
#> [1] 7.579471
#> 
#> $Confidence_Limit
#> [1] 0.95
#> 
#> $Total_Models
#> [1] 256

Testing two ZIC values in Regression

x=Concrete
Y=x[,9] #dependent variable
model1=lm(Y~X1)
model2=lm(Y~X1+X2)
regZIC.test(model1,model2,model_ZIC="BIC",data=mydata,alpha=0.05)
#> p-value is 0, and test is significant at level 0.05

Time series Data

Rank the time series models which lie in the given confidence envelope based on minimum ZIC:

library("ConfZIC")
data(Sunspots)
x=Sunspots
RankTS(x,max.p=13,max.q=13,0.95,"AICc")
#> $Ranked_Models
#>          AICc ARcoef MAcoef
#> [1,] 824.5326      6     12
#> [2,] 824.5843     13      0
#> [3,] 824.7624     11      1
#> 
#> $Confidence_Envelope
#> [1] 824.7757
#> 
#> $Confidence_Limit
#> [1] 0.95
#> 
#> $Total_Models
#> [1] 196

Testing two ZIC values:

model1=try(arima(x,order=c(1,0,1),method="ML",include.mean=FALSE),silent = TRUE)
model2=try(arima(x,order=c(1,0,0),method="ML",include.mean=FALSE),silent = TRUE)
tsZIC.test(x,model1,model2,model_ZIC="AIC",alpha=0.05)
#> p-value is 0, and test is significant at level 0.05