[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.4
dollars with the lowest and highest donations being$1
and$101
respectively. - Gaming, marketing and fashion category have contributed most in the past year with total donations amounting to
$165,483
,$162,386
and$159,952
respectively. - 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.