extras/RiskStratifiedEstimation.R

# Defining study setting
covariateSettingsCm <-
  FeatureExtraction::createCovariateSettings(
    useDemographicsGender = TRUE,
    useDemographicsAge = FALSE,
    useDemographicsAgeGroup = TRUE,
    useDemographicsRace = FALSE,
    useDemographicsEthnicity = FALSE,
    useDemographicsIndexYear = TRUE,
    useDemographicsIndexMonth = TRUE,
    useDemographicsPriorObservationTime = FALSE,
    useDemographicsPostObservationTime = FALSE,
    useDemographicsTimeInCohort = FALSE,
    useDemographicsIndexYearMonth = FALSE,
    useConditionOccurrenceAnyTimePrior = FALSE,
    useConditionOccurrenceLongTerm = TRUE,
    useConditionOccurrenceMediumTerm = FALSE,
    useConditionOccurrenceShortTerm = FALSE,
    useConditionOccurrenceInpatientAnyTimePrior = FALSE,
    useConditionOccurrenceInpatientLongTerm = FALSE,
    useConditionOccurrenceInpatientMediumTerm = FALSE,
    useConditionOccurrenceInpatientShortTerm = FALSE,
    useConditionEraAnyTimePrior = FALSE,
    useConditionEraLongTerm = FALSE,
    useConditionEraMediumTerm = FALSE,
    useConditionEraShortTerm = FALSE,
    useConditionEraOverlapping = FALSE,
    useConditionEraStartLongTerm = FALSE,
    useConditionEraStartMediumTerm = FALSE,
    useConditionEraStartShortTerm = FALSE,
    useConditionGroupEraAnyTimePrior = FALSE,
    useConditionGroupEraLongTerm = FALSE,
    useConditionGroupEraMediumTerm = FALSE,
    useConditionGroupEraShortTerm = FALSE,
    useConditionGroupEraOverlapping = FALSE,
    useConditionGroupEraStartLongTerm = FALSE,
    useConditionGroupEraStartMediumTerm = FALSE,
    useConditionGroupEraStartShortTerm = FALSE,
    useDrugExposureAnyTimePrior = FALSE,
    useDrugExposureLongTerm = TRUE,
    useDrugExposureMediumTerm = FALSE,
    useDrugExposureShortTerm = FALSE,
    useDrugEraAnyTimePrior = FALSE,
    useDrugEraLongTerm = FALSE,
    useDrugEraMediumTerm = FALSE,
    useDrugEraShortTerm = FALSE,
    useDrugEraOverlapping = FALSE,
    useDrugEraStartLongTerm = FALSE,
    useDrugEraStartMediumTerm = FALSE,
    useDrugEraStartShortTerm = FALSE,
    useDrugGroupEraAnyTimePrior = FALSE,
    useDrugGroupEraLongTerm = FALSE,
    useDrugGroupEraMediumTerm = FALSE,
    useDrugGroupEraShortTerm = FALSE,
    useDrugGroupEraOverlapping = FALSE,
    useDrugGroupEraStartLongTerm = FALSE,
    useDrugGroupEraStartMediumTerm = FALSE,
    useDrugGroupEraStartShortTerm = FALSE,
    useProcedureOccurrenceAnyTimePrior = FALSE,
    useProcedureOccurrenceLongTerm = TRUE,
    useProcedureOccurrenceMediumTerm = FALSE,
    useProcedureOccurrenceShortTerm = FALSE,
    useDeviceExposureAnyTimePrior = FALSE,
    useDeviceExposureLongTerm = FALSE,
    useDeviceExposureMediumTerm = FALSE,
    useDeviceExposureShortTerm = FALSE,
    useMeasurementAnyTimePrior = FALSE,
    useMeasurementLongTerm = TRUE,
    useMeasurementMediumTerm = FALSE,
    useMeasurementShortTerm = FALSE,
    useMeasurementValueAnyTimePrior = FALSE,
    useMeasurementValueLongTerm = FALSE,
    useMeasurementValueMediumTerm = FALSE,
    useMeasurementValueShortTerm = FALSE,
    useMeasurementRangeGroupAnyTimePrior = FALSE,
    useMeasurementRangeGroupLongTerm = FALSE,
    useMeasurementRangeGroupMediumTerm = FALSE,
    useMeasurementRangeGroupShortTerm = FALSE,
    useObservationAnyTimePrior = FALSE,
    useObservationLongTerm = FALSE,
    useObservationMediumTerm = FALSE,
    useObservationShortTerm = FALSE,
    useCharlsonIndex = TRUE,
    useDcsi = FALSE,
    useChads2 = FALSE,
    useChads2Vasc = FALSE,
    useDistinctConditionCountLongTerm = TRUE,
    useDistinctConditionCountMediumTerm = FALSE,
    useDistinctConditionCountShortTerm = FALSE,
    useDistinctIngredientCountLongTerm = TRUE,
    useDistinctIngredientCountMediumTerm = FALSE,
    useDistinctIngredientCountShortTerm = FALSE,
    useDistinctProcedureCountLongTerm = TRUE,
    useDistinctProcedureCountMediumTerm = FALSE,
    useDistinctProcedureCountShortTerm = FALSE,
    useDistinctMeasurementCountLongTerm = TRUE,
    useDistinctMeasurementCountMediumTerm = FALSE,
    useDistinctMeasurementCountShortTerm = FALSE,
    useVisitCountLongTerm = TRUE,
    useVisitCountMediumTerm = FALSE,
    useVisitCountShortTerm = FALSE,
    longTermStartDays = -365,
    mediumTermStartDays = -180,
    shortTermStartDays = -30,
    endDays = 0,
    addDescendantsToInclude = TRUE,
    addDescendantsToExclude = FALSE
  )

#########################################
# CONSTRUCTION OF COHORTS
#########################################
treatmentCohortId <- 5613 # celecoxib
comparatorCohortId <- 5614  # naproxen
outcomeCohortId <- 5622  # 5622 -> CSGIE, 5620 -> MACE

cohortMethodData <- CohortMethod::getDbCohortMethodData(connectionDetails = connectionDetails,
                                                        cdmDatabaseSchema = cdmDatabaseSchema,
                                                        oracleTempSchema = NULL,
                                                        targetId = treatmentCohortId,
                                                        comparatorId = comparatorCohortId,
                                                        outcomeIds = outcomeCohortId,
                                                        studyStartDate = '',
                                                        studyEndDate = '',
                                                        exposureDatabaseSchema = cdmDatabaseSchema,
                                                        exposureTable = 'cohort',
                                                        outcomeDatabaseSchema = cdmDatabaseSchema,
                                                        outcomeTable = 'cohort',
                                                        cdmVersion = '5',
                                                        excludeDrugsFromCovariates = TRUE,
                                                        firstExposureOnly = FALSE,
                                                        removeDuplicateSubjects = TRUE,
                                                        restrictToCommonPeriod = TRUE,
                                                        washoutPeriod = 0,
                                                        covariateSettings = covariateSettingsCm)

mainFolder <- file.path('S:\\arekkas\\Risk Stratification\\Results\\celecoxib-naproxen-CSGIE-MACE-2', cdmName, 'Data', fsep = '\\')
subFolder <- 'cmData'
outputFolder <- file.path(mainFolder, subFolder, fsep = '\\')

dir.create(outputFolder, recursive = TRUE)
CohortMethod::saveCohortMethodData(cohortMethodData, file = outputFolder)

populationCm <- CohortMethod::createStudyPopulation(cohortMethodData = cohortMethodData,
                                                    outcomeId = 5622, # CSGIE
                                                    firstExposureOnly = TRUE,
                                                    restrictToCommonPeriod = FALSE,
                                                    washoutPeriod = 0,
                                                    removeDuplicateSubjects = TRUE,
                                                    removeSubjectsWithPriorOutcome = TRUE,
                                                    priorOutcomeLookback = 0,
                                                    minDaysAtRisk = 1,
                                                    riskWindowStart = 0,
                                                    addExposureDaysToStart = FALSE,
                                                    riskWindowEnd = 0,
                                                    addExposureDaysToEnd = TRUE)
saveRDS(populationCm, file.path(mainFolder, 'populationCm.rds', fsep = '\\'))

# Constructing prediction model to assign risk scores
modelSettings <-
  PatientLevelPrediction::setLassoLogisticRegression(variance = 0.01,
                                                     seed = NULL)

result <- runRiskStratifiedEstimation(cohortMethodData = cohortMethodData,
                                      population = populationCm,
                                      modelSettings = modelSettings,
                                      save =  mainFolder,
                                      excludeCovariateIds = c(1118088302,
                                                              19019273302,
                                                              19029025302),
                                       timePoint = 365
                                   )
OHDSI/RiskStratifiedEstimation documentation built on March 13, 2023, 8:16 a.m.