added var split_group
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import marimo
|
import marimo
|
||||||
|
|
||||||
__generated_with = "0.19.2"
|
__generated_with = "0.19.7"
|
||||||
app = marimo.App(width="full")
|
app = marimo.App(width="full")
|
||||||
|
|
||||||
|
|
||||||
@@ -285,7 +285,6 @@ def _(S, mo, v_18_8_3):
|
|||||||
def _(S, calculate_weighted_ranking_scores, data):
|
def _(S, calculate_weighted_ranking_scores, data):
|
||||||
top3_voices = S.get_top_3_voices(data)[0]
|
top3_voices = S.get_top_3_voices(data)[0]
|
||||||
top3_voices_weighted = calculate_weighted_ranking_scores(top3_voices)
|
top3_voices_weighted = calculate_weighted_ranking_scores(top3_voices)
|
||||||
|
|
||||||
return top3_voices, top3_voices_weighted
|
return top3_voices, top3_voices_weighted
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ def _(S, data_all):
|
|||||||
|
|
||||||
|
|
||||||
mo.md(f"""
|
mo.md(f"""
|
||||||
# Data Validation
|
|
||||||
|
|
||||||
{check_progress(data_all)}
|
{check_progress(data_all)}
|
||||||
|
|
||||||
@@ -104,25 +103,23 @@ def _(data_all):
|
|||||||
return (data_validated,)
|
return (data_validated,)
|
||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell(hide_code=True)
|
||||||
def _():
|
def _():
|
||||||
#
|
#
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
---
|
## Lucia confirmation missing 'Consumer' data
|
||||||
|
|
||||||
# Introduction (Respondent Demographics)
|
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -135,14 +132,6 @@ def _(S, data_validated):
|
|||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell(hide_code=True)
|
||||||
def _():
|
|
||||||
mo.md(r"""
|
|
||||||
## Lucia confirmation missing 'Consumer' data
|
|
||||||
""")
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
|
||||||
def _(demographics):
|
def _(demographics):
|
||||||
# Demographics where 'Consumer' is null
|
# Demographics where 'Consumer' is null
|
||||||
demographics_no_consumer = demographics.filter(pl.col('Consumer').is_null())['_recordId'].to_list()
|
demographics_no_consumer = demographics.filter(pl.col('Consumer').is_null())['_recordId'].to_list()
|
||||||
@@ -189,7 +178,7 @@ def _():
|
|||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
## Demographic Distributions
|
# Demographic Distributions
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -209,7 +198,6 @@ def _():
|
|||||||
@app.cell
|
@app.cell
|
||||||
def _(S, data, demo_plot_cols):
|
def _(S, data, demo_plot_cols):
|
||||||
_content = """
|
_content = """
|
||||||
## Demographic Distributions
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
for c in demo_plot_cols:
|
for c in demo_plot_cols:
|
||||||
@@ -229,7 +217,7 @@ def _():
|
|||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
---
|
---
|
||||||
|
|
||||||
# Brand Character Results
|
# Brand Character Results (overall)
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -400,7 +388,7 @@ def _(S, char_df):
|
|||||||
return character_colors, consistent_sort_order
|
return character_colors, consistent_sort_order
|
||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
## Statistical significance best characters
|
## Statistical significance best characters
|
||||||
@@ -412,15 +400,24 @@ def _():
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell(hide_code=True)
|
||||||
def _():
|
def _():
|
||||||
|
mo.md(r"""
|
||||||
|
# BC per Consumer
|
||||||
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
split_group = 'Consumer'
|
||||||
## Character Ranking Points (per customer segment)
|
return (split_group,)
|
||||||
|
|
||||||
|
|
||||||
|
@app.cell
|
||||||
|
def _(split_group):
|
||||||
|
mo.md(rf"""
|
||||||
|
## Character Ranking Points (per {split_group} segment)
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -449,9 +446,9 @@ def _(S, data):
|
|||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _(split_group):
|
||||||
mo.md(r"""
|
mo.md(rf"""
|
||||||
## Character Ranking Place 1-2-3 in one (per consumer)
|
## Character Ranking Place 1-2-3 in one (per {split_group})
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -462,7 +459,7 @@ def _(S, data):
|
|||||||
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
|
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
|
||||||
|
|
||||||
_char_rank = S.get_character_ranking(_consumer_df)[0]
|
_char_rank = S.get_character_ranking(_consumer_df)[0]
|
||||||
|
|
||||||
|
|
||||||
_plot = S.plot_top3_ranking_distribution(_char_rank, x_label='Character Personality', title='Character Personality: Rankings Top 3 - CONSUMER: "'+_consumer_group.replace("_", " ").replace("Woth", 'Worth')+'"')
|
_plot = S.plot_top3_ranking_distribution(_char_rank, x_label='Character Personality', title='Character Personality: Rankings Top 3 - CONSUMER: "'+_consumer_group.replace("_", " ").replace("Woth", 'Worth')+'"')
|
||||||
|
|
||||||
@@ -476,9 +473,9 @@ def _(S, data):
|
|||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _(split_group):
|
||||||
mo.md(r"""
|
mo.md(rf"""
|
||||||
## Character Ranking times 1st place (per consumer)
|
## Character Ranking times 1st place (per {split_group})
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -502,9 +499,9 @@ def _(S, data):
|
|||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _(split_group):
|
||||||
mo.md(r"""
|
mo.md(rf"""
|
||||||
## Predefined personality traits WordClouds per Consumer
|
## Predefined personality traits WordClouds per {split_group}
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -514,7 +511,7 @@ def _(S, data):
|
|||||||
_content = ""
|
_content = ""
|
||||||
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
|
for _consumer_group, _consumer_df in utils.split_consumer_groups(data).items():
|
||||||
_top8_traits = S.get_top_8_traits(_consumer_df)[0]
|
_top8_traits = S.get_top_8_traits(_consumer_df)[0]
|
||||||
|
|
||||||
_plot = S.plot_traits_wordcloud(
|
_plot = S.plot_traits_wordcloud(
|
||||||
data=_top8_traits,
|
data=_top8_traits,
|
||||||
column='Top_8_Traits',
|
column='Top_8_Traits',
|
||||||
@@ -531,9 +528,9 @@ def _(S, data):
|
|||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell
|
||||||
def _():
|
def _(split_group):
|
||||||
mo.md(r"""
|
mo.md(rf"""
|
||||||
## Frequency traits chosen - per consumer segment
|
## Frequency traits chosen - per {split_group} segment
|
||||||
""")
|
""")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -559,13 +556,13 @@ def _(S, character_colors, consistent_sort_order, data):
|
|||||||
)
|
)
|
||||||
_content += f"""
|
_content += f"""
|
||||||
{mo.ui.altair_chart(_chart)}
|
{mo.ui.altair_chart(_chart)}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
mo.md(_content)
|
mo.md(_content)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
---
|
---
|
||||||
@@ -582,7 +579,7 @@ def _(S, data):
|
|||||||
return top3_voices, top3_voices_weighted
|
return top3_voices, top3_voices_weighted
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell(hide_code=True)
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
## Which voice is ranked best in the ranking question for top 3?
|
## Which voice is ranked best in the ranking question for top 3?
|
||||||
@@ -679,7 +676,7 @@ def _():
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@app.cell(hide_code=True)
|
@app.cell
|
||||||
def _():
|
def _():
|
||||||
mo.md(r"""
|
mo.md(r"""
|
||||||
## Voice Scale 1-10
|
## Voice Scale 1-10
|
||||||
@@ -694,7 +691,7 @@ def _(S, data):
|
|||||||
return (voice_1_10,)
|
return (voice_1_10,)
|
||||||
|
|
||||||
|
|
||||||
@app.cell
|
@app.cell(hide_code=True)
|
||||||
def _(S, voice_1_10):
|
def _(S, voice_1_10):
|
||||||
S.plot_average_scores_with_counts(voice_1_10, x_label='Voice', width=1000, domain=[1,10], title="Voice General Impression (Scale 1-10)")
|
S.plot_average_scores_with_counts(voice_1_10, x_label='Voice', width=1000, domain=[1,10], title="Voice General Impression (Scale 1-10)")
|
||||||
return
|
return
|
||||||
@@ -742,5 +739,47 @@ def _(S, voice_1_10):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@app.cell
|
||||||
|
def _():
|
||||||
|
mo.md(r"""
|
||||||
|
### Statistical Significance (Scale 1-10)
|
||||||
|
""")
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@app.cell
|
||||||
|
def _(S, voice_1_10):
|
||||||
|
# Compute pairwise significance tests
|
||||||
|
pairwise_df, metadata = S.compute_pairwise_significance(
|
||||||
|
voice_1_10,
|
||||||
|
test_type="mannwhitney", # or "ttest", "chi2", "auto"
|
||||||
|
alpha=0.05,
|
||||||
|
correction="bonferroni" # or "holm", "none"
|
||||||
|
)
|
||||||
|
|
||||||
|
# View significant pairs
|
||||||
|
# print(pairwise_df.filter(pl.col('significant') == True))
|
||||||
|
|
||||||
|
# Create heatmap visualization
|
||||||
|
_heatmap = S.plot_significance_heatmap(
|
||||||
|
pairwise_df,
|
||||||
|
metadata=metadata,
|
||||||
|
title="Voice Rating Significance<br>(Pairwise Comparisons)"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create summary bar chart
|
||||||
|
_summary = S.plot_significance_summary(
|
||||||
|
pairwise_df,
|
||||||
|
metadata=metadata
|
||||||
|
)
|
||||||
|
|
||||||
|
mo.md(f"""
|
||||||
|
{mo.ui.altair_chart(_heatmap)}
|
||||||
|
|
||||||
|
{mo.ui.altair_chart(_summary)}
|
||||||
|
""")
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run()
|
app.run()
|
||||||
|
|||||||
Reference in New Issue
Block a user