## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, message = FALSE, warning = FALSE---------------------------------- library(rankingQ) library(dplyr) ## ----------------------------------------------------------------------------- data(identity) identity |> select( app_identity, party, religion, gender, race ) |> head() ## ----------------------------------------------------------------------------- identity |> select( app_identity, party, religion, gender, race, s_weight, anc_correct_identity ) |> head() ## ----------------------------------------------------------------------------- out_direct <- imprr_direct( data = identity, J = 4, main_q = c("party", "religion", "gender", "race"), weight = "s_weight" ) ## ----------------------------------------------------------------------------- out_direct$est_p_random ## ----------------------------------------------------------------------------- out_direct$results ## ----------------------------------------------------------------------------- out_direct$results |> filter(qoi == "top-k ranking") ## ----------------------------------------------------------------------------- out_direct <- imprr_direct( data = identity, J = 4, main_q = c("party", "religion", "gender", "race"), weight = "s_weight", anc_correct = "anc_correct_identity" # additional input ) ## ----------------------------------------------------------------------------- out_direct$est_p_random ## ----------------------------------------------------------------------------- out_direct$results |> filter(qoi == "average rank") ## ----------------------------------------------------------------------------- out_alternative <- imprr_direct( data = identity, J = 4, main_q = c("party", "religion", "gender", "race"), weight = "s_weight", p_random = 0.5 # estimated proportion of random responses ) ## ----------------------------------------------------------------------------- out_alternative$est_p_random ## ----------------------------------------------------------------------------- out_alternative$results |> filter(qoi == "average rank") ## ----------------------------------------------------------------------------- out_weights <- imprr_weights( data = identity, J = 4, main_q = c("party", "religion", "gender", "race"), weight = "s_weight", anc_correct = "anc_correct_identity", # additional input ) ## ----------------------------------------------------------------------------- out_weights$rankings |> select(ranking, weights) |> head() ## ----------------------------------------------------------------------------- out_weights$results |> select(weights, s_weight, app_identity, ranking) |> mutate(joint_weight = weights * s_weight) |> head() ## ----------------------------------------------------------------------------- items_df <- data.frame( variable = c("party", "religion", "gender", "race"), item = c("Party", "Religion", "Gender", "Race") ) ipw_df <- out_weights$results |> mutate(joint_weight = weights * s_weight) avg_rank( ipw_df, items = items_df, weight = "joint_weight", raw = FALSE )