| CMA8 {AdhereR} | R Documentation |
CMA8 constructor.
Description
Constructs a CMA (continuous multiple-interval measures of medication availability/gaps) type 8 object.
Usage
CMA8(
data = NULL,
ID.colname = NA,
event.date.colname = NA,
event.duration.colname = NA,
event.daily.dose.colname = NA,
medication.class.colname = NA,
medication.groups = NULL,
flatten.medication.groups = FALSE,
medication.groups.colname = ".MED_GROUP_ID",
carry.only.for.same.medication = FALSE,
consider.dosage.change = FALSE,
followup.window.start = 0,
followup.window.start.unit = c("days", "weeks", "months", "years")[1],
followup.window.start.per.medication.group = FALSE,
followup.window.duration = 365 * 2,
followup.window.duration.unit = c("days", "weeks", "months", "years")[1],
observation.window.start = 0,
observation.window.start.unit = c("days", "weeks", "months", "years")[1],
observation.window.duration = 365 * 2,
observation.window.duration.unit = c("days", "weeks", "months", "years")[1],
date.format = "%m/%d/%Y",
summary = NA,
event.interval.colname = "event.interval",
gap.days.colname = "gap.days",
force.NA.CMA.for.failed.patients = TRUE,
parallel.backend = c("none", "multicore", "snow", "snow(SOCK)", "snow(MPI)",
"snow(NWS)")[1],
parallel.threads = "auto",
suppress.warnings = FALSE,
suppress.special.argument.checks = TRUE,
arguments.that.should.not.be.defined = c(carryover.within.obs.window = TRUE,
carryover.into.obs.window = TRUE),
...
)
Arguments
data |
A |
ID.colname |
A string, the name of the column in |
event.date.colname |
A string, the name of the column in
|
event.duration.colname |
A string, the name of the column in
|
event.daily.dose.colname |
A string, the name of the column in
|
medication.class.colname |
A string, the name of the column in
|
medication.groups |
A vector of characters defining medication
groups or the name of a column in |
flatten.medication.groups |
Logical, if |
medication.groups.colname |
a string (defaults to ".MED_GROUP_ID")
giving the name of the column storing the group name when
|
carry.only.for.same.medication |
Logical, if |
consider.dosage.change |
Logical, if |
followup.window.start |
If a |
followup.window.start.unit |
can be either "days",
"weeks", "months" or "years", and represents the time
units that |
followup.window.start.per.medication.group |
a logical: if there are
medication groups defined and this is |
followup.window.duration |
either a number representing the
duration of the follow-up window in the time units given in
|
followup.window.duration.unit |
can be either "days",
"weeks", "months" or "years", and represents the time
units that |
observation.window.start, observation.window.start.unit, observation.window.duration, observation.window.duration.unit |
the definition of the observation window (see the follow-up window parameters above for details). |
date.format |
A string giving the format of the dates used in the
|
summary |
Metadata as a string, briefly describing this CMA. |
event.interval.colname |
A string, the name of a newly-created
column storing the number of days between the start of the current event and
the start of the next one; the default value "event.interval" should be
changed only if there is a naming conflict with a pre-existing
"event.interval" column in |
gap.days.colname |
A string, the name of a newly-created column
storing the number of days when medication was not available (i.e., the
"gap days"); the default value "gap.days" should be changed only if there is
a naming conflict with a pre-existing "gap.days" column in |
force.NA.CMA.for.failed.patients |
Logical describing how the
patients for which the CMA estimation fails are treated: if |
parallel.backend |
Can be "none" (the default) for single-threaded
execution, "multicore" (using |
parallel.threads |
Can be "auto" (for |
suppress.warnings |
Logical, if |
suppress.special.argument.checks |
Logical parameter for internal
use; if |
arguments.that.should.not.be.defined |
a list of argument names and pre-defined valuesfor which a warning should be thrown if passed to the function. |
... |
other possible parameters |
Details
CMA8 is similar to CMA6 in that it assumes that, within the
observation window, the medication is used as prescribed and new medication
is "banked" until needed (oversupply from previous events is used first,
followed new medication supply). Unlike CMA6 it accounts for
carry-over from before the window - but in a different way from CMA7:
by adding a time lag at the start of the observation window equal to the
duration of carry-over from before. It is designed for situations when an
event with a hypothesized causal effect on adherence happens at the start of
the observation window (e.g. enrolment in an intervention study); in this
case, it may be that the existing supply is not part of the relationship
under study (e.g. it delays the actual start of the study for that
participant) and needs to be excluded by shortening the time interval
examined. The end of the observation window remains the same.
Thus, CMA8 computes days of theoretical use by extracting the total
number of gap days from the total time interval between the lagged start and
the end of the observation window, accounting for carry over for all
medication events within the observation window. All medication events in the
follow up window before observation window are considered for carry-over
calculation.
Thus, as CMA7, it accounts for timing within the observation window,
as well as before (different adjustment than CMA7), and excludes the
remaining supply at the end of the observation window.
The formula is
(number of days of theoretical use) / (lagged start to end of
observation window)
Observations:
the
carry.only.for.same.medicationparameter controls the transmission of carry-over across medication changes, producing a "standard"CMA8(default value is FALSE), and an "alternative"CMA8b, respectively;the
consider.dosage.changeparameter controls if dosage changes are taken into account, i.e. if set as TRUE and a new medication event has a different daily dosage recommendation, carry-over is recomputed assuming medication use according to the new prescribed dosage (default value is FALSE).
Value
An S3 object of class CMA8 (derived from CMA0)
with the following fields:
-
dataThe actual event data, as given by thedataparameter. -
ID.colnamethe name of the column indatacontaining the unique patient ID, as given by theID.colnameparameter. -
event.date.colnamethe name of the column indatacontaining the start date of the event (in the format given in thedate.formatparameter), as given by theevent.date.colnameparameter. -
event.duration.colnamethe name of the column indatacontaining the event duration (in days), as given by theevent.duration.colnameparameter. -
event.daily.dose.colnamethe name of the column indatacontaining the prescribed daily dose, as given by theevent.daily.dose.colnameparameter. -
medication.class.colnamethe name of the column indatacontaining the classes/types/groups of medication, as given by themedication.class.colnameparameter. -
carry.only.for.same.medicationwhether the carry-over applies only across medication of the same type, as given by thecarry.only.for.same.medicationparameter. -
consider.dosage.changewhether the carry-over is adjusted to reflect changes in dosage, as given by theconsider.dosage.changeparameter. -
followup.window.startthe beginning of the follow-up window, as given by thefollowup.window.startparameter. -
followup.window.start.unitthe time unit of thefollowup.window.start, as given by thefollowup.window.start.unitparameter. -
followup.window.durationthe duration of the follow-up window, as given by thefollowup.window.durationparameter. -
followup.window.duration.unitthe time unit of thefollowup.window.duration, as given by thefollowup.window.duration.unitparameter. -
observation.window.startthe beginning of the observation window, as given by theobservation.window.startparameter. -
observation.window.start.unitthe time unit of theobservation.window.start, as given by theobservation.window.start.unitparameter. -
observation.window.durationthe duration of the observation window, as given by theobservation.window.durationparameter. -
observation.window.duration.unitthe time unit of theobservation.window.duration, as given by theobservation.window.duration.unitparameter. -
date.formatthe format of the dates, as given by thedate.formatparameter. -
summarythe metadata, as given by thesummaryparameter. -
event.infothedata.framecontaining the event info (irrelevant for most users; seecompute.event.int.gapsfor details). -
CMAthedata.framecontaining the actualCMAestimates for each participant (theID.colnamecolumn).
Please note that if medication.groups are defined, then the CMA
and event.info are named lists, each element containing the CMA and
event.info corresponding to a single medication group (the element's name).
See Also
CMAs 1 to 8 are defined in:
Vollmer, W. M., Xu, M., Feldstein, A., Smith, D., Waterbury, A., & Rand, C. (2012). Comparison of pharmacy-based measures of medication adherence. BMC Health Services Research, 12, 155. doi: 10.1186/1472-6963-12-155.
Examples
cma8 <- CMA8(data=med.events,
ID.colname="PATIENT_ID",
event.date.colname="DATE",
event.duration.colname="DURATION",
event.daily.dose.colname="PERDAY",
medication.class.colname="CATEGORY",
carry.only.for.same.medication=FALSE,
consider.dosage.change=FALSE,
followup.window.start=30,
observation.window.start=30,
observation.window.duration=365,
date.format="%m/%d/%Y"
);