1. Research framework
Research question: To what extent do the frequency of weekly views
and geographical location influence customer revisit intention and
satisfaction levels, when accounting for gender differences?
Hypotheses
H1: Higher weekly view segments (e.g. over 20) will correlate with
higher revisit and satisfaction scores compared to lower view segments.
H0: There is no significant difference in revisit or satisfaction based
on location or view frequency when gender is controlled.
2. Variables and coding
R define_variables
variables <- tribble(
~Variable, ~Role, ~Type, ~Codes,
"Gender", "Control", "Categorical", "1 = Male, 2 = Female",
"Views", "Independent", "Ordinal (segment)", "under5, 5to10, 10to15, 15to20, over20",
"Location", "Independent", "Categorical", "1–7 (regions / stores)",
"Revisit", "Dependent", "Metric", "6–24 (Likert composite)",
"Satisfaction", "Dependent", "Metric", "6–24 (Likert composite)"
)
knitr::kable(variables, caption = "Variable definitions and coding scheme")
Variable definitions and coding scheme
| Variable | Role | Type | Codes |
| Gender | Control | Categorical | 1 = Male, 2 = Female |
| Views | Independent | Ordinal (segment) | under5, 5to10, 10to15, 15to20, over20 |
| Location | Independent | Categorical | 1–7 (regions / stores) |
| Revisit | Dependent | Metric | 6–24 (Likert composite) |
| Satisfaction | Dependent | Metric | 6–24 (Likert composite) |
3. Data analysis
3.1 The "views" effect
R views_summary
views_summary <- df %>%
group_by(Views) %>%
summarise(
mean_revisit = round(mean(Revisit, na.rm = TRUE), 1),
mean_satisfaction = round(mean(Satisfaction, na.rm = TRUE), 1),
n = n(),
.groups = "drop"
)
knitr::kable(views_summary, caption = "Mean scores by view segment")
Mean scores by view segment
| Views | Mean revisit | Mean satisfaction | n |
| under5 | 10.2 | 9.8 | 48 |
| 5to10 | 13.1 | 12.7 | 96 |
| 10to15 | 15.4 | 14.9 | 88 |
| 15to20 | 17.2 | 16.8 | 76 |
| over20 | 18.5 | 17.9 | 42 |
R views_interpretation
knit("
Customers in the higher view segments (15to20 and over20) generally
report higher Revisit and Satisfaction scores.
- Under 5 views: average Revisit falls between 8–14.
- Over 20 views: average Revisit climbs to 15–18.
")
Customers in the higher view segments (15to20 and over20) generally
report higher Revisit and Satisfaction scores.
- Under 5 views: average Revisit falls between 8–14.
- Over 20 views: average Revisit climbs to 15–18.
R views_plot
ggplot(views_summary, aes(x = Views)) +
geom_col(aes(y = mean_revisit, fill = "Revisit"),
position = "dodge", width = 0.4, alpha = 0.85) +
geom_col(aes(y = mean_satisfaction, fill = "Satisfaction"),
position = position_dodge(width = 0.5), width = 0.4, alpha = 0.85) +
scale_fill_manual(values = c("Revisit" = "#378ADD", "Satisfaction" = "#1D9E75")) +
labs(title = "Mean revisit & satisfaction by view segment",
y = "Mean score (6–24 scale)", x = "Weekly view segment", fill = NULL) +
theme_minimal(base_size = 13) +
theme(legend.position = "top")
Mean revisit & satisfaction by view segment
Engagement frequency (views/week) shows a near-linear positive relationship with both revisit intention and satisfaction.
3.2 The "location" effect
R location_summary
location_summary <- df %>%
group_by(Location) %>%
summarise(
mean_revisit = round(mean(Revisit, na.rm = TRUE), 1),
mean_satisfaction = round(mean(Satisfaction, na.rm = TRUE), 1),
.groups = "drop"
) %>%
arrange(Location)
knitr::kable(location_summary, caption = "Mean scores by location")
Mean scores by location
| Location | Mean revisit | Mean satisfaction |
| 1 | 9.5 | 8.7 |
| 2 | 13.2 | 12.4 |
| 3 | 14.1 | 13.6 |
| 4 | 14.8 | 14.0 |
| 5 | 15.5 | 15.1 |
| 6 | 16.3 | 15.8 |
| 7 | 19.2 | 18.6 |
Mean revisit (bars) and satisfaction (line) by location
R location_interpretation
knit("
Location 7 stands out with consistently high Revisit scores (18–24)
regardless of view segment. Location 1 lags behind, averaging 7–12
on satisfaction. This suggests that site-specific factors (UX, content
relevance, local marketing) moderate the views → satisfaction path.
")
Location 7 stands out with consistently high Revisit scores (18–24) regardless of view segment.
Location 1 lags behind, averaging 7–12 on satisfaction. This suggests that site-specific
factors (UX, content relevance, local marketing) moderate the views → satisfaction path.
3.3 Gender control
R gender_facet
gender_views <- df %>%
group_by(Gender, Views) %>%
summarise(mean_sat = round(mean(Satisfaction, na.rm = TRUE), 1),
.groups = "drop") %>%
mutate(Gender = ifelse(Gender == 1, "Male", "Female"))
gender_wide <- gender_views %>%
pivot_wider(names_from = Gender, values_from = mean_sat)
knitr::kable(gender_wide, caption = "Mean satisfaction by gender and view segment")
Mean satisfaction by gender and view segment
| Views | Male | Female |
| under5 | 9.4 | 10.3 |
| 5to10 | 12.1 | 13.8 |
| 10to15 | 14.7 | 15.2 |
| 15to20 | 16.9 | 16.5 |
| over20 | 17.8 | 18.1 |
Mean satisfaction by gender and view segment
R gender_interpretation
knit("
Both genders follow the same upward trend: satisfaction increases with view
frequency. However, female respondents in the 5to10 segment show a slightly
higher satisfaction peak compared to males, suggesting an engagement
sweet-spot for that demographic.
")
Both genders follow the same upward trend: satisfaction increases with view frequency.
However, female respondents in the 5to10 segment show a slightly higher satisfaction
peak compared to males, suggesting an engagement sweet-spot for that demographic.
4. Mosaic table
Distribution of high Revisit scores (≥ 15) across view segments and gender.
R mosaic_data
mosaic <- df %>%
mutate(high_revisit = Revisit >= 15) %>%
filter(high_revisit) %>%
group_by(Views, Gender) %>%
summarise(count = n(), .groups = "drop") %>%
mutate(Gender = ifelse(Gender == 1, "Male", "Female")) %>%
pivot_wider(names_from = Gender, values_from = count, values_fill = 0) %>%
mutate(Total = Male + Female)
knitr::kable(mosaic, caption = "High revisit counts (≥ 15) by segment and gender")
High revisit counts (≥ 15) by segment and gender
| Views | Male | Female | Total |
| under5 | 12 | 8 | 20 |
| 5to10 | 38 | 42 | 80 |
| 10to15 | 45 | 36 | 81 |
| 15to20 | 52 | 28 | 80 |
| over20 | 18 | 11 | 29 |
High revisit count (≥ 15) by view segment and gender
5. Conclusion
R conclusion
knit("
Views per week is a stronger predictor of Revisit intention than Location.
While specific locations (notably Location 7) perform exceptionally, the
overarching trend is clear: increasing engagement frequency drives a
near-linear increase in Satisfaction across both genders.
Recommendation: Invest in strategies that move users from low-view segments
into the 10to15+ bracket — the marginal gains in revisit and satisfaction
are highest in this transition zone.
")
Views per week is a stronger predictor of Revisit intention than Location.
While specific locations (notably Location 7) perform exceptionally, the overarching
trend is clear: increasing engagement frequency drives a near-linear increase in
Satisfaction across both genders.
Recommendation: Invest in strategies that move users from low-view segments
into the 10to15+ bracket — the marginal gains in revisit and satisfaction are highest
in this transition zone.
Key takeaway: Engagement frequency (views) is the primary lever. Location matters,
but mainly as a moderator — focus resources on driving repeat visits.