R Under development (unstable) (2024-07-11 r86890 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > # remove.packages("HonestDiD") > # install.packages(".", repos=NULL, type="source") > # testthat::test_dir("tests") > > library(lfe) Loading required package: Matrix > library(haven) > library(testthat) > library(HonestDiD) > data(BCdata_EventStudy) > data(LWdata_EventStudy) > > BC_numPrePeriods <- length(BCdata_EventStudy$prePeriodIndices) > BC_numPostPeriods <- length(BCdata_EventStudy$postPeriodIndices) > BC_l_vec <- basisVector(index = 1, size = BC_numPostPeriods) > BC_l_vec <- cbind(c(1, 0, 0, 0)) > > if ( Sys.getenv("HONESTDID_RUN_TESTS") == "1" ) { + test_that("HonestDiD base ran with no errors", { + BC_DeltaSDNB_RobustResults <- + createSensitivityResults(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + method = "FLCI", + Mvec = seq(from=0, to=0.3, by=0.1)) + + BC_DeltaSDNB_RobustResultsConditional <- + createSensitivityResults(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + method = "Conditional", + Mvec = seq(from=0, to=0.3, by=0.1)) + + BC_DeltaSDNB_RobustResultsCF <- + createSensitivityResults(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + method = "C-F", + Mvec = seq(from=0, to=0.3, by=0.1)) + + BC_DeltaSDNB_RobustResultsCLF <- + createSensitivityResults(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + method = "C-LF", + Mvec = seq(from=0, to=0.3, by=0.1)) + + BC_OriginalResults <- + constructOriginalCS(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec) + + BC_DeltaSDNB_SensitivityPlot <- + createSensitivityPlot(robustResults = BC_DeltaSDNB_RobustResults, + originalResults = BC_OriginalResults) + + expect_silent(BC_DeltaSDNB_RobustResults) + expect_silent(BC_DeltaSDNB_RobustResultsConditional) + expect_silent(BC_DeltaSDNB_RobustResultsCF) + expect_silent(BC_DeltaSDNB_RobustResultsCLF) + expect_silent(BC_OriginalResults) + expect_silent(BC_DeltaSDNB_SensitivityPlot) + }) + } else { + print("HonestDiD base run was skipped") + } [1] "HonestDiD base run was skipped" > > if ( Sys.getenv("HONESTDID_RUN_TESTS") == "1" ) { + test_that("HonestDiD options ran with no errors", { + LWdata_RawData = haven::read_dta(system.file("extdata", "LWdata_RawData.dta", package = "HonestDiD")) + sum(LWdata_RawData$nobs) + + # Estimate event study using lfe package + EmpFemale.EventStudy = lfe::felm(emp ~ + rtESV13 + rtESV14 + rtESV15 + + rtESV16 + rtESV17 + rtESV18 + + rtESV19 + rtESV110 + rtESV111 + # End Pre-periods + rtESV113 + rtESV114 + rtESV115 + + rtESV116 + rtESV117 + rtESV118 + + rtESV119 + rtESV120 + rtESV121 + + rtESV122 + rtESV123 + rtESV124 + + rtESV125 + rtESV126 + rtESV127 + + rtESV128 + rtESV129 + rtESV130 + + rtESV131 + rtESV132 + rtESV133 + + rtESV134 + rtESV135 + # End post-periods + yearsfcor + yearsflr + aveitc + fscontrol + + asian + black + hispanic + other | + factor(PUS_SURVEY_YEAR)*factor(BIRTHYEAR) + + factor(PUS_SURVEY_YEAR) + factor(BIRTHSTATE) | + 0 | BIRTHSTATE, + data = LWdata_RawData, + weights = LWdata_RawData$nobs) + summary(EmpFemale.EventStudy) + + coefIndex = which(grepl(x = dimnames(EmpFemale.EventStudy$coefficients)[[1]], pattern = "rtESV")) + betahat = EmpFemale.EventStudy$beta[coefIndex, ] + + # Extract estimated variance-covariance matrix of event study coefficients + sigma = EmpFemale.EventStudy$clustervcv[coefIndex, coefIndex] + + # Construct vector of event times and the scalar reference period + timeVec = c(seq(from = -11, to = -3, by = 1), seq(from = -1, to = 21, by = 1)) + referencePeriod <- -2 + postPeriodIndices <- which(timeVec > -2) + prePeriodIndices <- which(timeVec < -2) + LW_numPrePeriods <- length(prePeriodIndices) + LW_numPostPeriods <- length(postPeriodIndices) + LW_l_vec <- basisVector(index = 1, size = LW_numPostPeriods) + + for( method in c("C-F", "C-LF", "Conditional", "FLCI") ) { + for( monotonicityDirection in c("increasing", "decreasing") ) { + for ( biasDirection in c("positive", "negative") ) { + LW_DeltaSDNB_RobustResults <- + createSensitivityResults(betahat = betahat, + sigma = sigma, + numPrePeriods = LW_numPrePeriods, + numPostPeriods = LW_numPostPeriods, + l_vec = LW_l_vec, + method = method, + monotonicityDirection = monotonicityDirection, + biasDirection = biasDirection, + Mvec = seq(from=0, to=0.3, by=0.1)) + print(c(method, monotonicityDirection, biasDirection, LW_DeltaSDNB_RobustResults)) + expect_silent(LW_DeltaSDNB_RobustResults) + } + } + } + + for ( method in c(NULL, "C-LF", "Conditional") ) { + for ( monotonicityDirection in c("increasing", "decreasing", NULL) ) { + for ( bound in c("deviation from parallel trends", "deviation from linear trend") ) { + BC_DeltaRM_RobustResults <- + createSensitivityResults_relativeMagnitudes(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + gridPoints = 100, + grid.ub = 1, + grid.lb = -1, + bound = bound, + method = method, + monotonicityDirection = monotonicityDirection, + Mbarvec = seq(from=0, to=1, by=0.5)) + print(c(method, monotonicityDirection, biasDirection, bound, BC_DeltaRM_RobustResults)) + expect_silent(BC_DeltaRM_RobustResults) + } + } + } + + for ( method in c(NULL, "C-LF", "Conditional") ) { + for ( biasDirection in c("positive", "negative", NULL) ) { + for ( bound in c("deviation from parallel trends", "deviation from linear trend") ) { + BC_DeltaRM_RobustResults <- + createSensitivityResults_relativeMagnitudes(betahat = BCdata_EventStudy$betahat, + sigma = BCdata_EventStudy$sigma, + numPrePeriods = BC_numPrePeriods, + numPostPeriods = BC_numPostPeriods, + l_vec = BC_l_vec, + gridPoints = 100, + grid.ub = 1, + grid.lb = -1, + bound = bound, + method = method, + biasDirection = biasDirection, + Mbarvec = seq(from=0, to=1, by=0.5)) + print(c(method, monotonicityDirection, biasDirection, bound, BC_DeltaRM_RobustResults)) + expect_silent(BC_DeltaRM_RobustResults) + } + } + } + }) + } else { + print("HonestDiD options run was skipped") + } [1] "HonestDiD options run was skipped" > > proc.time() user system elapsed 1.29 0.29 1.57