Changes:
-
Updating viewer code to work with newer versions of
OhdsiShinyModules
andShinyAppBuilder
. -
Dropped
uploadExportedResults()
function. -
The
cohorts
argument ofinsertExportedResultsInSqlite()
has columncohortId
renamed tocohortDefinitionId
. -
Added computation of MDRR for logistic models.
Changes:
- Switching cohort IDs in results model to BIGINT.
Bugfixes:
-
Fix
enforceCellCount()
applied to covariate balance when all balance is NA. -
Stopping fitting PS model early when either target or comparator is empty. Prevents error when target or comparator is empty, sampling is required, and Cyclops happens to fit a model instead of declaring ILL CONDITIONED.
-
Message after matching on PS now shows correct number of subjects remaining after matching.
Changes:
- Ask to delete files in output folder when calling
runCmAnalyses()
with different analyses settings than those used to create the files. Also cleaning the cache.
Bugfixes:
-
Fixed bug in parsing covariate filter settings for balance.
-
Updated vignettes to use latest
Capr
functions.
Changes:
-
The
computeCovariateBalance()
function now also computes standardized difference of mean comparing cohorts before and after PS adjustment, which can inform on generalizability. -
Added the
getGeneralizabilityTable()
function. -
Improved computation of overall standard deviation when computing covariate balance (actually computing the SD instead of taking the mean of the target and comparator). Should produce more accurate balance estimations.
-
Generated population objects now keep track of likely target estimator (e.g. 'ATT', or 'ATE'). This informs selection of base population when calling
getGeneralizabilityTable()
. -
Deprecated the
attritionFractionThreshold
argument of thecreateCmDiagnosticThresholds
function, and instead added thegeneralizabilitySdmThreshold
argument. -
The results schema specifications of the
exportToCsv()
function has changed:- Removed the
attrition_fraction
andattrition_diagnostic
fields from thecm_diagnostics_summary
table. - Added the
target_estimator
field to thecm_result
addcm_interaction_result
tables. - Added the
generalizability_max_sdm
andgeneralizabiltiy_diagnostic
fields to thecm_diagnostics_summary
table. - Added the
mean_before
,mean_after
,target_std_diff
,comparator_std_diff
, andtarget_comparator_std_diff
fields to both thecm_covariate_balance
andcm_shared_covariate_balance
tables.
- Removed the
-
Improve speed of covariate balance computation.
-
Adding one-sided (calibrated) p-values to results summary and results model.
-
Adding
unblind_for_evidence_synthesis
field tocm_diagnostics_summary
table. -
The
cm_diagnostics_summary
table now also contains negative controls.
Bugfixes:
-
Fixing
runCmAnalyses()
when usingrefitPsForEveryOutcome = TRUE
. -
Handling edge case when exporting preference distribution and the target or comparator only has 1 subject.
Changes:
- Now also not unblinding if shared balance diagnostic fails.
Bugfixes:
-
Fixing matching on PS and other covariates.
-
Now passing outcome-specific
riskWindowEnd
argument inrunCmAnalyses()
when specified. -
Fixed error when calling
createStudyPopulation()
with "keep first" when there is only 1 person in the population.
Changes:
-
Setting the default Cyclops control object to use
resetCoefficients = TRUE
to ensure we always get the exact same model, irrespective of the number of threads used. -
Adding checking of user input to all functions.
-
Removing deprecated
excludeDrugsFromCovariates
argument fromgetDbCohortMethodData()
function. -
Removing deprecated
oracleTempSchema
argument fromgetDbCohortMethodData()
andrunCmAnalyses()
functions. -
Removing deprecated
addExposureDaysToStart
andaddExposureDaysToStart
arguments fromcreateStudyPopulation()
andplotTimeToEvent()
functions. -
The
removeDuplicateSubjects
argument ofgetDbCohortMethodData()
andcreateStudyPopulation()
is no longer allowed to be a boolean. -
Adding
computeEquipoise()
function. -
Output likelihood profile as data frame instead of named vector for consistency with other HADES packages.
-
Added the
covariateFilter
argument to thecomputeCovariateBalance
function, to allow balance to be computed only for a subset of covariates. -
Rounding propensity scores to 10 digits to improve reproducibility across operating systems.
-
Setting
covariateCohortDatabaseSchema
andcovariateCohortTable
of cohort-based covariate builders toexposureDatabaseSchema
andexposureTable
, respectively ifcovariateCohortTable
isNULL
. -
Now computing IPTW in
createPs()
, and truncating IPTW can be done intruncateIptw()
. ThecomputeCovariateBalance()
function now computes balance using IPTW if nostratumId
column is found in thepopulation
argument. -
Removing PS of exactly 0 and exactly 1 when computing the standard deviation of the logit for the matching caliper to allow matching when some subjects have perfectly predictable treatment assignment.
-
Adding
maxRows
argument tocomputePsAuc()
function to improve speed for very large study populations. -
Dropping support for CDM v4.
-
Major overhaul of the multiple-analyses framework:
-
Added the
createOutcome()
function, to be used withcreateTargetComparatorOutcomes()
. This allow thepriorOutcomeLookback
,riskWindowStart
,startAnchor
,riskWindowEnd
, andendAnchor
arguments to be specified per outcome. These settings (if provided) will override the settings created using thecreateCreateStudyPopulationArgs()
function. In addition, thecreateOutcome()
function has anoutcomeOfInterest
andtrueEffectSize
argument (see below). -
Added the
createComputeCovariateBalanceArgs()
function, added thecomputeSharedCovariateBalance
,,computeSharedCovariateBalanceArgs
,computeCovariateBalance
, andcomputeCovariateBalanceArgs
arguments to thecreateCmAnalysis()
function, and thecomputeSharedBalanceThreads
,computeBalanceThreads
arguments to therunCmAnalyses()
function to allow computation of covariate balance across a target-comparator-analysis (shared) or for each target-comparator-analysis-outcome in therunCmAnalyses()
function. -
Dropping
targetType
andcomparatorType
options from thecreateCmAnalysis()
function, since the notion of analysis-specific target and comparator selection strategies can also be implemented using theanalysesToExclude
argument ofrunCmAnalyses()
. -
Dropping
outcomeIdsOfInterest
argument of therunCmAnalyses()
function. Instead, thecreateOutcome()
function now has aoutcomeOfInterest
argument. -
Settings related to multi-threading are combined in to a single settings object that be created using the new
createCmMultiThreadingSettings()
function. -
Dropping
prefilterCovariates
fromrunCmAnalyses()
. Prefiltering is now always done when specific covariates are used in the outcome model. -
Removed the
summarizeAnalyses()
function. Instead, results are automatically summarized inrunCmAnalyses()
. The summary can be retrieved using the newgetResultsSummary()
andgetInteractionResultsSummary()
functions. Empirical calibration, MDRR, and attrition fraction are automatically computed. -
Changing case in output of
getResultsSummary()
fromci95lb
andci95ub
toci95Lb
andci95Ub
. -
Added empirical calibration to the
getResultsSummary()
function. Controls can be identified by thetrueEffectSize
argument in thecreateOutcome()
function. -
Dropping arguments like
createPs
andfitOutcomeModel
from thecreateCmAnalysis()
function. Instead, not providingcreatePsArgs
orfitOutcomeModelArgs
is assumed to mean skipping propensity score creation or outcome model fitting, respectively.
-
-
Added the
exportToCsv()
function for exporting study results to CSV files that do not contain patient-level information and can therefore be shared between sites. ThegetResultsDataModel()
function returns the data model for these CSV files. -
Added the
uploadExportedResults()
andinsertExportedResultsInSqlite()
functions for uploading the results from the CSV files in a database. ThelaunchResultsViewer()
andlaunchResultsViewerUsingSqlite()
functions were added for launching a Shiny app to view the results in the (SQLite) database.
Bug fixes:
- Fixed error when using integer
maxWeight
when performng IPTW.
Changes;
- Removed
RISCA
from the Suggests list. This package was used for a single unit test, but has a large amount of difficult-to-install dependencies.
Bug fixes:
- Fixed error when failing model fitting caused by new
Cyclops
version.
Changes:
-
Added the
analysesToExclude
argument torunCmAnalyses
, allowing the users to specify target-comparator-outcome-analysis combinations to exclude from execution. -
Output of
computeCovariateBalance()
now also containsdomainId
andisBinary
columns. -
Added
plotCovariatePrevalence()
function.
Bug fixes:
-
Fixed erroneous sample size reported for comparator cohorts when computing covariate balance. (the actual sample size was fine)
-
Fixed error when all analyses have
fitOutcomeModel = FALSE
. -
Fixed attrition counts when using
allowReverseMatch = TRUE
Changes:
-
Adding
highlightExposedEvents
andincludePostIndexTime
arguments toplotTimeToEvent()
. -
Adding
maxCohortSize
argument to thecomputeCovariateBalance()
function. The target and comparator cohorts will be downsampled if they are larger, speeding up computation.
Bug fixes:
- Fixed error thrown by
plotTimeToEvent()
when there are time periods in plot when nobody is observed.
Changes:
-
Adding the
trimByIptw()
function. -
Adding the
estimator
argument to thefitOutcomeModel()
function to select 'ate' (average treatment effect) or 'att' (average treatment effect in the treated) when performing IPTW. -
Added the
maxWeight
argument to thefitOutcomeModel()
function. Weights greater than this value will be set to this value. -
Adding option to use adaptive likelihood profiling, and making this the default.
-
Adding
maxDaysAtRisk
argument to thecreateStudyPopulation()
andcreateCreateStudyPopulationArgs()
functions.
Bug fixes:
-
Fixing IPTW.
-
Fixing error when stratifying and base population is empty (but overall population is not).
Changes:
-
Dropped
insertDbPopulation()
function. This didn't seem to be used by anyone, and would have required carrying the person ID throughout the pipeline. -
Introducing new unique person identified called
personSeqId
, generated during data extraction. Person ID is now downloaded as string to avoid issues with 64-bit integers. Person ID is not used by CohortMethod, and is provided for reference only. -
Adding log likelihood ratio to outcome model object.
-
Deprecating
oracleTempSchema
argument in favor oftempEmulationSchema
in line with newSqlRender
interface.
Bug fixes:
-
Still was not always including the likelihood profile in the outcome model objects.
-
Fixing issues when IDs are
integer64
.
Changes:
- Always including the likelihood profile in the outcome model objects.
Bug fixes:
-
Fixing "argument 'excludeDrugsFromCovariates' is missing" error when calling
createGetDbCohortMethodDataArgs()
without deprecated argumentexcludeDrugsFromCovariates
. -
More testing and handling of empty exposure cohorts.
-
Fixing exclusion of covariate IDs when fitting propensity models.
-
Correct covariate balance computation when covariate values are integers.
Changes:
- Switching from ff to Andromeda for storing large data objects.
Bugfixes:
- Fixed bug in IPTW.
Changes:
-
Updating documentation: adding literature reference for IPTW, and using new SqlRender interface in vignettes.
-
Changing default equipoise bounds from 0.25-0.75 to 0.3-0.7 to be consistent with Alec Walker's original paper.
Bugfixes:
- Fixing some issues when sampling before fitting propensity models.
Changes:
-
Added plotTimeToEvent function
-
Deprecating addExposureDaysToStart and addExposureDaysToEnd arguments, adding new arguments called startAnchor and endAnchor. The hope is this is less confusing.
-
Fixing random seeds for reproducibility.
-
Changing default equipoise bounds from 0.25-0.75 to 0.3-0.7 to be consistent with Alec Walker's original paper.
Bugfixes:
-
No longer overriding ffmaxbytes and ffbatchbytes in .onLoad. Instead relying on FeatureExtraction to do that. Part of fixing chunk.default error caused by ff package on R v3.6.0 on machines with lots of memory.
-
Correct calculation in original population count when using study end date.
Changes:
- (Much) faster variable ratio matching