[This article was first published on Blogs on Adejumo Ridwan Suleiman, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
📖 Background
A crowdfunding site wants to run a marketing campaign for the next quarter of the year. The marketing manager wants to target those segments that have donated the most in the past year.
Objectives
- What are the top three categories in terms of total donations?
- What device type has historically provided the most contributions?
- What age bracket should the campaign target?
Key Insights
- The average donation was
$39.4dollars with the lowest and highest donations being$1and$101respectively. - Gaming, marketing and fashion category have contributed most in the past year with total donations amounting to
$165,483,$162,386and$159,952respectively. - More donations were made from ios platforms with a high percentage of
65%. - Half of the donations made in the past year came from teenagers and adolescents within the age group
18-24.
Recommendations
- Since the majority of donors fall in the age group 18-24 and are mostly known for the age group to be mostly online. The marketing manager should target this age group and also users on the ios platforms.
- Though gaming, marketing and fashion have the highest amount of donations, the difference is not that much with other categories and I will advise the marketing manager to target all categories.
💾 Data
Variables
category– “Sports”, “Fashion”, “Technology”, etc.device– the type of device used.gender– gender of the user.age range– one of five age brackets.amount– how much the user donated in Euros.
Data Summary
library(tidyverse)
data <- read_csv("C:/Users/Adejumo/Downloads/crowdfunding.csv")
skimr::skim(data)
| Name | data |
| Number of rows | 20658 |
| Number of columns | 5 |
| _______________________ | |
| Column type frequency: | |
| character | 4 |
| numeric | 1 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| category | 0 | 1 | 5 | 11 | 0 | 5 | 0 |
| device | 0 | 1 | 3 | 7 | 0 | 2 | 0 |
| gender | 0 | 1 | 1 | 1 | 0 | 3 | 0 |
| age | 0 | 1 | 3 | 5 | 0 | 5 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| amount | 0 | 1 | 39.41 | 14.91 | 1 | 29 | 39 | 50 | 101 | ▂▇▇▁▁ |
The amount of donation is normally distributed with mean of $39.4, the minimum and maximum donation respectively are $1 and $100 respectively.
Top categories in terms of total donations
data %>%
group_by(category) %>%
summarize(total_price = sum(amount)) %>%
ggplot(aes(x = reorder(category, total_price),
y = total_price, fill = category)) +
geom_col() +
geom_text(aes(label = scales::comma(total_price)), hjust = 1) +
coord_flip() +
xlab("Category") +
ylab("Total Price")
Device type with the most contributions
data %>%
group_by(device) %>%
summarize(count = n()) %>%
mutate(percent = prop.table(count)) %>%
ggplot(aes(x = device, y = percent, fill = device,
label = scales::percent(percent))) +
geom_col(position = 'dodge') +
geom_text(position = position_dodge(width = .9),
vjust = -0.5,
size = 3) +
scale_y_continuous(labels = scales::percent) +
xlab("Device type") +
ylab("Percentage of donors")
What age bracket should the campaign target?
data %>%
group_by(age) %>%
summarize(count = n()) %>%
mutate(percent = prop.table(count)) %>%
ggplot(aes(x = reorder(age, percent), y = percent, fill = age, label = scales::percent(percent))) +
geom_col(position = 'dodge') +
geom_text(position = position_dodge(width = .9),
vjust = -0.5,
size = 3) +
scale_y_continuous(labels = scales::percent) +
coord_flip() +
xlab("Age groups") +
ylab("Percentage of donors")
Distibution of donations
data %>% ggplot(aes(x = amount)) + geom_density()
To leave a comment for the author, please follow the link and comment on their blog: Blogs on Adejumo Ridwan Suleiman.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
