vivainsights.create_odds_ratios¶
Calculate odds ratios for ordinal metrics against a specified outcome.
- vivainsights.create_odds_ratios.create_odds_ratios(data, ord_metrics, metric, return_type='table')[source]¶
Calculate odds ratios for ordinal metrics against a specified metric.
- Parameters:
data (pandas.DataFrame) – Person query data.
ord_metrics (list of str) – Column names of the ordinal variables.
metric (str) – Variable to calculate proportional odds against
ord_metrics.return_type (str, optional) –
"table"(default) returns the odds-ratio DataFrame;"plot"returns a bar chart.
- Returns:
Odds-ratio table or visualization depending on
return_type.- Return type:
pandas.DataFrame or matplotlib.figure.Figure
Examples
Return an odds-ratio summary table:
>>> import vivainsights as vi >>> pq_data = vi.load_pq_data() >>> vi.create_odds_ratios( ... data=pq_data, ... ord_metrics=["Engagement_Score", "Satisfaction_Score"], ... metric="Copilot_Usage", ... return_type="table", ... )
Return a visualization of the odds ratios:
>>> vi.create_odds_ratios( ... data=pq_data, ... ord_metrics=["Engagement_Score", "Satisfaction_Score"], ... metric="Copilot_Usage", ... return_type="plot", ... )
- vivainsights.create_odds_ratios.compute_fav(data, ord_metrics, item_options=5, fav_threshold=70, unfav_threshold=40, drop_neutral=True)[source]¶
Convert ordinal variables into categorical favorable/unfavorable scores.
- Parameters:
data (pandas.DataFrame) – Dataset containing the ordinal variables.
ord_metrics (list of str) – Column names of the ordinal variables.
item_options (int, optional) – Number of scale points in the ordinal metrics. Defaults to 5.
fav_threshold (int, optional) – Threshold on a 100-point scale above which a score is favourable. Defaults to 70.
unfav_threshold (int, optional) – Threshold on a 100-point scale below which a score is unfavourable. Defaults to 40.
drop_neutral (bool, optional) – Whether to drop neutral scores. Defaults to
True.
- Returns:
Input DataFrame with added
<metric>_100and<metric>_favcolumns. Ifdrop_neutralisTrue, rows with neutral scores are removed.- Return type:
pandas.DataFrame
Examples
Compute favourability scores with neutral rows dropped:
>>> import vivainsights as vi >>> pq_data = vi.load_pq_data() >>> vi.compute_fav( ... data=pq_data, ... ord_metrics=["eSat", "Initiative"], ... item_options=5, ... fav_threshold=70, ... unfav_threshold=40, ... drop_neutral=True, ... )
Keep neutral rows for further analysis:
>>> vi.compute_fav( ... data=pq_data, ... ord_metrics=["eSat"], ... item_options=5, ... fav_threshold=70, ... unfav_threshold=40, ... drop_neutral=False, ... )