Prints the full report built by validity.copreg: the
non-normality (or Assumption 3) step, the uncorrelatedness assumption
where relevant, exogenous regressors as identifying variation where
relevant, the error-term diagnostics, and the ICON standard-error
inflation.
Usage
# S3 method for class 'copreg.validity'
print(x, digits = 4, ...)Arguments
- x
an object of class
"copreg.validity", as returned byvalidity.copreg.- digits
number of significant digits to print.
- ...
currently unused.
References
Becker, J.-M., D. Proksch, and C. M. Ringle (2022). Revisiting Gaussian copulas to handle endogenous regressors. Journal of the Academy of Marketing Science 50, 46-66.
Yang, F., Y. Qian, and H. Xie (2025). Addressing endogeneity using a two-stage copula generated regressor approach. Journal of Marketing Research 62(4), 601-623.
Qian, Y., A. Koschmann, and H. Xie (2025). A practical guide to endogeneity correction using copulas. Journal of Marketing.
Examples
set.seed(1)
n <- 150
w <- rnorm(n)
p <- 0.4 * w + rt(n, df = 3)
xi <- 0.5 * p + rnorm(n)
y <- 1 + 2 * p + 1.5 * w + xi
dat <- data.frame(y = y, p = p, w = w)
fit <- endogCopula:::.copreg_fit(
formula = y ~ p | w, data = dat,
ctor = endogCopula:::.ctor_twostage(TRUE),
method = "2sCOPE", cdf = "rank.n", ties = "max",
nboots = 25, verbose = FALSE)
print(validity(fit))
#>
#> Validity check for 2sCOPE
#> n = 150, intercept: yes, target power 80%
#> Sources: Becker, Proksch & Ringle (2022); Yang, Qian & Xie (2025);
#> Qian, Koschmann & Xie (2025)
#>
#> [1] Nonnormality of the endogenous regressors
#> skewness ex.kurtosis AD CvM KS p Yang ok Becker ok
#> p 0.962 5.978 1.604 0.261 0.343 FALSE FALSE
#> Becker et al. at n = 150: |skewness| >= not attainable, or AD > 18.964, or CvM > 3.488
#> Yang et al.: KS p < .05
#>
#> [2] Assumption: correlation of the copula transformation term
#> with the exogenous regressors
#> corr(W, CTT) p (Holm)
#> w -0.1761 0.0309
#> Joint test: R2 = 0.03102, F = 4.737, p = 0.0311
#> => violated. Park & Gupta is inconsistent here (Haschka, 2025).
#>
#> [3] Exogenous regressors as identifying variation
#> (continuous, KS p < .001, first-stage F > 10)
#> continuous KS p F: p qualifies
#> w TRUE 0.847 4.797 FALSE
#> => none qualifies. The conditions are conservative and not
#> necessary; Yang et al. (2025) propose a bootstrap procedure to gauge
#> the finite-sample bias in this situation.
#>
#> [4] Error term: structural residuals xi
#> skewness = -0.02121, excess kurtosis = -0.3975, AD = 0.2139 (p = 0.849)
#> Becker et al. (2022) find that with a nonnormal error the approach
#> is no longer consistent in models with an intercept. Yang et al.
#> (2025) and Qian et al. (2025) do permit a nonnormal error, but only
#> under the decomposition xi = U + V into a normally distributed
#> endogenous part U, which carries the entire dependence with the
#> regressors, and an independent nonnormal V. The residuals show xi,
#> not U, so their skewness neither establishes nor rules out a
#> violation; whether that decomposition holds has to be argued from
#> the suspected sources of endogeneity.
#>
#> [5] ICON: standard error inflation relative to uncorrected OLS
#> SE (corrected) SE (uncorrected) ICON
#> (Intercept) 0.09116 0.08483 1.075
#> p 0.22755 0.05394 4.219
#> w 0.11580 0.08547 1.355
#> => largest ICON = 4.219, below the threshold of 6.
#>
