Note: This vignette is illustrated with fake data. The dataset explored in this example should not be used to inform decision-making. Some of the methods illustrated in this AQoL-6D vignette can also be used to score other health utility instruments - see a vignette about scoring EQ-5D.
library(ready4) library(scorz)
To derive a health utility score from the raw responses to a multi-attribute utility instrument it is necessary to implement a scoring algorithm. Scoring algorithms for the Assessment of Quality of Life Six Dimension (AQoL-6D) are publicly available in SPSS format (https://www.aqol.com.au/index.php/scoring-algorithms).
However, to include scoring algorithms in reproducible research workflows, it is desirable to have these algorithms available in open science languages such as R. The scorz
package includes ready4 framework modules of the readyforwhatsnext youth mental health economic model that provide R implementations of the adult and adolescent versions of the AQoL-6D scoring algorithms.
To begin, we ingest an unscored dataset as an instance of the Ready4useDyad
from the ready4use package. In this case we download our data from a remote repository.
X <- ready4use::Ready4useRepos(dv_nm_1L_chr = "fakes", dv_ds_nm_1L_chr = "https://doi.org/10.7910/DVN/W95KED", dv_server_1L_chr = "dataverse.harvard.edu") %>% ingest(fls_to_ingest_chr = "ymh_clinical_dyad_r4", metadata_1L_lgl = F)
To make the ingested dataset easier to interpret, we can add labels from the dictionary.
X <- X %>% renew(type_1L_chr = "label")
We can now inspect our ingested dataset using the exhibit
method.
exhibit(X, display_1L_chr = "head", scroll_box_args_ls = list(width = "100%"))
We now add meta-data that identifies our dataset as being longitudinal using the YouthvarsSeries
module of the youthvars package.
X <- youthvars::YouthvarsSeries(a_Ready4useDyad = X, id_var_nm_1L_chr = "fkClientID", timepoint_var_nm_1L_chr = "round", timepoint_vals_chr = levels(X@ds_tb$round))
We now use the data and meta-data we have created in the previous steps to create an instance of the ScorzAqol6Adol
class. This class is specifically designed to facilitate scoring of the adolescent version of the AQoL-6D instrument.
Y <- ScorzAqol6Adol(a_YouthvarsProfile = X)
By default, instances of the ScorzAqol6Adol
class are created with a slot specifying a value for the prefix for AQoL-6D questionnaire item responses.
procureSlot(Y, slot_nm_1L_chr = "itm_prefix_1L_chr")
If this default value needs to be updated to match the prefix used in your dataset, use the renewSlot
method.
# Not run # Y <- renewSlot(Y, slot_nm_1L_chr = "itm_prefix_1L_chr", new_val_xx = "new_prefix")
To calculate AQoL 6D adolescent utility scores, use the renew
method.
Y <- renew(Y)
We can inspect our updated dataset using the exhibit
method. We can see that the updated dataset now has additional variables that include the intermediate and final calculations for AQoL-6D adolescent utility scores.
exhibit(Y, display_1L_chr = "head", scroll_box_args_ls = list(width = "100%"))
To create plots, we use the depict
method.
We can create a list of summary plots by timepoint for all individual items.
plot_ls <- depict(Y, type_1L_chr = "item_by_time")
We can then select a desired item's summary plot by using its index number.
plot_ls[[1]]
Alternatively, we can generate individual plots by passing the item index number to the var_idcs_int
argument of depict
.
depict(Y, type_1L_chr = "item_by_time", var_idcs_int = 2L)
We can also plot domain scores by time.
depict(Y, type_1L_chr = "domain_by_time", var_idcs_int = 1L)
Total AQoL-6D scores can also be plotted using the same approach, where var_idcs_int = 1L
is used to plot the weighted total distribution and var_idcs_int = 2L
is used for plotting the unweighted total.
depict(Y, type_1L_chr = "total_by_time", var_idcs_int = 1L)
Composite plots can be generated as well, though these are not currently optimised to reliably produce quality plots suitable for publication.
depict(Y, type_1L_chr = "comp_item_by_time")
depict(Y, type_1L_chr = "comp_domain_by_time")
We can now publicly share our scored dataset and its associated metadata, using Ready4useRepos
and its share
method as described in a vignette from the ready4use package.
Z <- ready4use::Ready4useRepos(gh_repo_1L_chr = "ready4-dev/scorz", # Replace with details of your repo. gh_tag_1L_chr = "Documentation_0.0") # You must have write permissions. Z <- share(Z, obj_to_share_xx = Y, fl_nm_1L_chr = "ymh_ScorzAqol6Adol")
Y
is now available for download as the file ymh_ScorzAqol6Adol.RDS
from the "Documentation_0.0" release of the scorz package.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.