Title: | Bias Reduction in the Skew-Probit Model for a Binary Response |
---|---|
Description: | Provides a function for the estimation of parameters in a binary regression with the skew-probit link function. Naive MLE, Jeffrey type of prior and Cauchy prior type of penalization are implemented, as described in DongHyuk Lee and Samiran Sinha (2019+) <doi:10.1080/00949655.2019.1590579>. |
Authors: | DongHyuk Lee, Samiran Sinha |
Maintainer: | DongHyuk Lee <[email protected]> |
License: | GPL-3 |
Version: | 1.0 |
Built: | 2024-12-03 06:52:24 UTC |
Source: | CRAN |
This function fits a binary regression with a skew-probit link function. Naive MLE, Jeffrey's prior and Cauchy prior type of penalization are implemented to find estimates.
skewProbit(formula, data = list(), penalty = "Jeffrey", initial = NULL, cvtCov = TRUE, delta0 = 3, level = 0.95)
skewProbit(formula, data = list(), penalty = "Jeffrey", initial = NULL, cvtCov = TRUE, delta0 = 3, level = 0.95)
formula |
an object of class "formula" as in |
data |
an optional data frame, list or environment containing the variables in the model as in |
penalty |
type of penalty function. Default option is "Jeffrey". "Cauchy" will give estimates with Cauchy prior penaly function. "Naive" will give ML estimates. |
initial |
a logical value. If specified, it will be used for the initial value of numerical optimization. |
cvtCov |
a logical value. If it is true, then all numerical values will be standardized to have mean zero and unit standard deviation. |
delta0 |
an initial guess of skewness parameter. |
level |
a confidence level. Default value is 0.95. |
This function uses ucminf
package for optimization. Also package sn
is necessary.
A detailed disscussion can be found in the reference below.
An object of class skewProbit
is returned with
coefficients |
A named vector of coefficients |
stderr |
Standard errors of coefficients |
zscore |
Z-scores of coefficients |
pval |
p-values of coefficients |
lower |
Lower limits of confidence intervals |
upper |
Upper limits of confidence intervals |
DongHyuk Lee, Samiran Sinha
Identifiability and bias reduction in the skew-probit model for a binary response. To appear in Journal of Statistical Computation and Simulation.
library(sn) library(ucminf) n <- 500 b0 <- 0.34 delta <- 4 b1 <- 1 b2 <- -0.7 set.seed(1234) x1 <- runif(n, -2, 2) x2 <- rnorm(n, sd = sqrt(4/3)) eta <- as.numeric(b0 + b1*x1 + b2*x2) p <- psn(eta, alpha = delta) y <- rbinom(n, 1, p) ## Not run: dat <- data.frame(y, x1 = x1, x2 = x2) mod1 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Jeffrey", cvtCov = FALSE, level = 0.95) mod2 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Naive", cvtCov = FALSE, level = 0.95) mod3 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Cauchy", cvtCov = FALSE, level = 0.95) summary(mod1) summary(mod2) summary(mod3) ## End(Not run)
library(sn) library(ucminf) n <- 500 b0 <- 0.34 delta <- 4 b1 <- 1 b2 <- -0.7 set.seed(1234) x1 <- runif(n, -2, 2) x2 <- rnorm(n, sd = sqrt(4/3)) eta <- as.numeric(b0 + b1*x1 + b2*x2) p <- psn(eta, alpha = delta) y <- rbinom(n, 1, p) ## Not run: dat <- data.frame(y, x1 = x1, x2 = x2) mod1 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Jeffrey", cvtCov = FALSE, level = 0.95) mod2 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Naive", cvtCov = FALSE, level = 0.95) mod3 <- skewProbit(y ~ x1 + x2, data = dat, penalty = "Cauchy", cvtCov = FALSE, level = 0.95) summary(mod1) summary(mod2) summary(mod3) ## End(Not run)
It is the default fitting method for skewProbit
.
skewProbit.fit(y, x, penalty = "Jeffrey", initial = NULL, cvtCov = TRUE, delta0 = 3, level = 0.95)
skewProbit.fit(y, x, penalty = "Jeffrey", initial = NULL, cvtCov = TRUE, delta0 = 3, level = 0.95)
y |
a design matrix of dimension |
x |
a vector of response of length |
penalty |
type of penalty function. Default option is "Jeffrey". "Cauchy" will give estimates with Cauchy prior penaly function. "Naive" will give ML estimates. |
initial |
a logical value. If specified, it will be used for the initial value of numerical optimization. |
cvtCov |
a logical value. If it is true, then all numerical values will be standardized to have mean zero and unit standard deviation. |
delta0 |
an initial guess of skewness parameter. |
level |
a confidence level. Default value is 0.95. |
A list cotaining the following components:
coefficients |
A named vector of coefficients |
stderr |
Standard errors of coefficients |
zscore |
Z-scores of coefficients |
pval |
p-values of coefficients |
lower |
Lower limits of confidence intervals |
upper |
Upper limits of confidence intervals |
DongHyuk Lee, Samiran Sinha
Identifiability and bias reduction in the skew-probit model for a binary response. To appear in Journal of Statistical Computation and Simulation.
library(sn) library(ucminf) n <- 500 b0 <- 0.34 delta <- 4 b1 <- 1 b2 <- -0.7 set.seed(1234) x1 <- runif(n, -2, 2) x2 <- rnorm(n, sd = sqrt(4/3)) eta <- as.numeric(b0 + b1*x1 + b2*x2) p <- psn(eta, alpha = delta) y <- rbinom(n, 1, p) x <- cbind(1, x1, x2) ## Not run: mod1 <- skewProbit.fit(y, x, penalty = "Jeffrey", cvtCov = FALSE) mod2 <- skewProbit.fit(y, x, penalty = "Naive", cvtCov = FALSE) mod3 <- skewProbit.fit(y, x, penalty = "Cauchy", cvtCov = FALSE) mod1$coef mod2$coef mod3$coef ## End(Not run)
library(sn) library(ucminf) n <- 500 b0 <- 0.34 delta <- 4 b1 <- 1 b2 <- -0.7 set.seed(1234) x1 <- runif(n, -2, 2) x2 <- rnorm(n, sd = sqrt(4/3)) eta <- as.numeric(b0 + b1*x1 + b2*x2) p <- psn(eta, alpha = delta) y <- rbinom(n, 1, p) x <- cbind(1, x1, x2) ## Not run: mod1 <- skewProbit.fit(y, x, penalty = "Jeffrey", cvtCov = FALSE) mod2 <- skewProbit.fit(y, x, penalty = "Naive", cvtCov = FALSE) mod3 <- skewProbit.fit(y, x, penalty = "Cauchy", cvtCov = FALSE) mod1$coef mod2$coef mod3$coef ## End(Not run)