How do users’ Instagram behaviors—such as screen time, engagement actions, and content interaction—relate to their overall well‑being, lifestyle characteristics, and user engagement score?
Introduction
Social media platforms play a major role in shaping how individuals interact, communicate, and experience daily life. As usage continues to grow, understanding how online behavior relates to well being has become increasingly important. This study focuses on Instagram user activity and explores how engagement, screen time, and lifestyle factors relate to perceived stress and self reported happiness.
The dataset used in this analysis includes over one million observations from users across multiple countries. For this project, the data was filtered to include only users from the United States, resulting in a more focused dataset of over 260,000 observations. This allowed for a more consistent analysis of behavior and well being within a single population.
Goal:
- Examine relationships between social media usage and mental health indicators
- Identify distinct groups of users based on these characteristics
- Use data visualization and clustering techniques to analyze patterns
- Investigate how Instagram usage and lifestyle factors relate to stress levels
- Explore how these factors are associated with differences in happiness levels
library(readxl)
library(DT)
library(tidyverse)
library(readr)
insta_data <- read_csv("instagram_usage_lifestyle.csv")
us_only_insta_data <- insta_data %>%
drop_na() %>%
filter( country == "United States")Data
The data for this project was obtained from a Kaggle Social Media User Activity dataset. The original dataset contained 1,048,546 observations from users across multiple countries. For the purpose of this analysis, the data was filtered to include only users from the United States, resulting in a reduced dataset of 262,213 observations. This step allowed for a more focused analysis within a consistent geographic and cultural context.
In addition to filtering by country, the dataset was cleaned by removing observations with missing values. This was done to ensure that all analyses were conducted using complete data, reducing the risk of bias or errors caused by incomplete records. By working with complete cases, the results of the analysis are more reliable and easier to interpret.
The dataset was further refined by selecting only variables relevant to the goals of this study. These variables were grouped into categories such as demographics, well-being, engagement, and lifestyle factors.
Finally, variables were reviewed to ensure they were in the correct format for analysis, such as distinguishing between numerical and categorical data.
Table of Variables
| Category | Variable Name | |
|---|---|---|
| Demographics | age | |
| Demographics | gender | |
| Demographics | user_id | |
| Well-being | perceived_stress_score | |
| Well-being | self_reported_happiness | |
| Well-being | sleep_hours_per_night | |
| Well-being | time_on_feed_per_day | |
| Well-being | time_on_reels_per_day | |
| Well-being | daily_active_minutes_instagram | |
| Engagement | following_count | |
| Engagement | user_engagement_score | |
| Engagement | time_on_messages_per_day | |
| Lifestyle | income_level | |
| Lifestyle | education_level | |
| Lifestyle | employment_status | |
| Lifestyle | hobbies_count | |
| Lifestyle | social_events_per_month | |
| Lifestyle | travel_frequency_per_year | |
| Lifestyle | time_on_explore_per_day |
Originally, the goal was to create an interactive table that displayed the full raw dataset. However, due to the large size of the data, this approach proved to be inefficient and difficult to navigate. As a result, the decision was made to instead use the cleaned dataset for the interactive table. This allowed for a more manageable and responsive interface while still preserving all relevant variables needed for analysis.
clean_insta_data <- insta_data %>%
filter(country == "United States") %>%
# Select ONLY the columns needed for ANY of your analyses
select(
# Demographics
user_id, age, gender,
# Well-being variables
perceived_stress_score, self_reported_happiness, sleep_hours_per_night,
time_on_feed_per_day, time_on_reels_per_day, daily_active_minutes_instagram,
# Engagement variables
following_count, user_engagement_score, time_on_messages_per_day,
# Lifestyle variables
income_level, education_level, employment_status, hobbies_count,
social_events_per_month, travel_frequency_per_year,
time_on_explore_per_day
)
clean_insta_data <- clean_insta_data[sample(nrow(clean_insta_data),10000),replace = TRUE]
datatable(clean_insta_data, rownames = FALSE, options = list(scrollX = TRUE))The clean dataset was divided into several different dataframes to help with analysis. They were put into well-being, engagement drivers and lifestyle. This will help with the data visualization process as well. The different categories of the variables are listed in the table of variables above.
library(knitr)
# WELL-BEING DATA FRAME
well_being_data_frame <- clean_insta_data %>%
select(
perceived_stress_score, self_reported_happiness, sleep_hours_per_night,
time_on_feed_per_day, time_on_reels_per_day,
daily_active_minutes_instagram, age, gender
)
# ENGAGEMENT DRIVERS DATA FRAME
engagement_drivers_data_frame <- clean_insta_data %>%
select(
perceived_stress_score, self_reported_happiness, sleep_hours_per_night,
time_on_feed_per_day, time_on_reels_per_day, daily_active_minutes_instagram,
following_count, user_engagement_score, time_on_messages_per_day,
age, gender
)
# LIFESTYLE DATA FRAME
lifestyle_data_frame <- clean_insta_data %>%
select(
income_level, education_level, employment_status, hobbies_count,
social_events_per_month, travel_frequency_per_year,
daily_active_minutes_instagram, time_on_explore_per_day,
time_on_reels_per_day, time_on_feed_per_day,
age, gender
)
clean_insta_kable <- clean_insta_data %>%
summarize(
'Stress Score'= mean(perceived_stress_score, na.rm = TRUE),
'Self Reported Happiness' = mean(self_reported_happiness, na.rm = TRUE),
'Sleep Hours' = mean(sleep_hours_per_night, na.rm = TRUE),
'Daily Active Minutes' = mean(daily_active_minutes_instagram, na.rm = TRUE),
'Following Count' = mean(following_count, na.rm = TRUE),
'User Engagement' = mean(user_engagement_score, na.rm = TRUE)
)
kable(clean_insta_kable, caption = "Average values of selected variables for U.S. users")| Stress Score | Self Reported Happiness | Sleep Hours | Daily Active Minutes | Following Count | User Engagement |
|---|---|---|---|---|---|
| 20.0513 | 5.5074 | 6.98675 | 188.6176 | 2575.108 | 1.645684 |
Results
The scatterplots show a clear positive relationship between Instagram usage and perceived stress levels. As time spent on the platform increases, whether measured by time on feed, time on reels, or total daily active minutes, stress scores also tend to increase. This pattern is consistent across all three usage variables and suggests that higher engagement with Instagram is associated with higher levels of stress.
While these results do not prove cause and effect, they highlight an important relationship between increased social media use and higher reported stress levels.
library(ggplot2)
library(patchwork)
# Create simple two-column datasets for each predictor
stress_happiness <- well_being_data_frame %>%
select(perceived_stress_score, self_reported_happiness)
stress_sleep <- well_being_data_frame %>%
select(perceived_stress_score, sleep_hours_per_night)
stress_feed <- well_being_data_frame %>%
select(perceived_stress_score, time_on_feed_per_day)
stress_reels <- well_being_data_frame %>%
select(perceived_stress_score, time_on_reels_per_day)
stress_daily <- well_being_data_frame %>%
select(perceived_stress_score, daily_active_minutes_instagram)
stress_age <- well_being_data_frame %>%
select(perceived_stress_score, age)
stress_vs_feed <- ggplot(stress_feed, aes(x = time_on_feed_per_day, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Feed Time",
y = "Perceived Stress Score",
x = "Time on Feed Per Day"
) +
theme_minimal()
stress_vs_reels_time <- ggplot(stress_reels, aes(x = time_on_reels_per_day, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Reels Time",
y = "Perceived Stress Score",
x = "Time on Reels Per Day"
) +
theme_minimal()
stress_vs_active_mins <- ggplot(stress_daily, aes(x = daily_active_minutes_instagram, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Daily Active Minutes",
y = "Perceived Stress Score",
x = "Daily Active Minutes on Instagram"
) +
theme_minimal()
(stress_vs_active_mins / stress_vs_feed / stress_vs_reels_time) In contrast, the relationship between self reported happiness and stress appears weak. The plot comparing these two variables shows little to no clear pattern, indicating that happiness does not strongly predict stress levels in this dataset. This suggests that while Instagram usage is closely related to stress, overall happiness may be influenced by other factors not included in this analysis.
#Stres vs Happiness
stress_vs_happiness <- ggplot(stress_happiness, aes(x = self_reported_happiness, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Happiness",
x = "Self Happiness Score",
y = "Perceived Stress Score"
) +
theme_minimal()
#Stress vs Age
stres_vs_age <- ggplot(stress_age, aes(x = age, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Age",
y = "Perceived Stress Score",
x = "User Age"
) +
theme_minimal()
#Stress Vs Sleep hours
stress_vs_sleep <- ggplot(stress_sleep, aes(x = sleep_hours_per_night, y = perceived_stress_score)) +
geom_point(alpha = 0.05, color = "steelblue") +
geom_smooth(method = "lm", color = "darkred", linewidth = 1) +
labs(title = "Stress vs Sleep Hours",
y = "Perceived Stress Score",
x = "Sleep Hours per Night"
) +
theme_minimal()
#putting graphs where it has a weak collation to stress together
(stress_vs_happiness | stress_vs_sleep | stres_vs_age)Because the dataset contained over 260,000 observations, running clustering methods on the full dataset required a very large amount of memory and computational power. When attempting to determine the optimal number of clusters using the NbClust function, the process resulted in memory allocation errors due to the size of the data. To address this issue, a random sample of 5,000 observations was selected from the dataset.
This sample size was large enough to preserve the overall structure and patterns within the data while significantly reducing the computational burden. By using a representative subset, it was possible to efficiently estimate the optimal number of clusters without compromising the integrity of the analysis. Once the optimal number of clusters was identified, the clustering algorithm was then applied to the full dataset using this value.
library(NbClust)
cluster_data <- clean_insta_data %>%
select(-user_engagement_score)
# Keep only numeric variables
# Keep only numeric variables
numeric_cluster_data <- clean_insta_data %>%
select(where(is.numeric))
# Scale numeric data
scaled_data <- scale(numeric_cluster_data)
# Reduce dimensionality with PCA (keep 90% variance)
pca <- prcomp(scaled_data, scale. = TRUE)
# Keep only first ~5–10 PCs (automatically reduces memory)
pca_data <- pca$x[, 1:10]
# 4. Determine Optimal Number of Clusters (NbClust)
set.seed(123)
pca_sample <- pca_data[sample(nrow(pca_data), 5000), ]
number_cluster_estimate <- NbClust(
pca_sample,
distance = "euclidean",
min.nc = 2,
max.nc = 10,
method = "kmeans"
)*** : The Hubert index is a graphical method of determining the number of clusters.
In the plot of Hubert index, we seek a significant knee that corresponds to a
significant increase of the value of the measure i.e the significant peak in Hubert
index second differences plot.
*** : The D index is a graphical method of determining the number of clusters.
In the plot of D index, we seek a significant knee (the significant peak in Dindex
second differences plot) that corresponds to a significant increase of the value of
the measure.
*******************************************************************
* Among all indices:
* 7 proposed 2 as the best number of clusters
* 9 proposed 3 as the best number of clusters
* 3 proposed 4 as the best number of clusters
* 3 proposed 8 as the best number of clusters
* 1 proposed 10 as the best number of clusters
***** Conclusion *****
* According to the majority rule, the best number of clusters is 3
*******************************************************************
number_cluster_estimate$All.index
KL CH Hartigan CCC Scott Marriot TrCovW TraceW
2 6.6070 1804.5428 578.2125 -8.7778 6201.385 4.321501e+37 30240143 52604.88
3 1.6869 1295.5011 387.8268 -4.6276 15720.928 1.448639e+37 24642923 47150.14
4 9.6594 1059.7618 237.4207 0.5380 20364.983 1.017326e+37 21112078 43754.28
5 0.2341 891.7696 145.9704 1.3478 23365.809 8.722314e+36 19437164 41769.31
6 4.2853 763.3053 165.5510 -1.3355 25365.270 8.420216e+36 18660529 40583.33
7 0.1186 684.6287 213.4736 -1.7097 26401.252 9.316065e+36 17055066 39281.16
8 10.6136 642.2816 126.3569 1.8830 28714.831 7.660577e+36 15811586 37670.58
9 2.7132 591.8976 108.9959 1.0642 29632.816 8.069217e+36 15073112 36740.60
10 2.7216 549.6217 95.0389 0.1093 30572.096 8.255845e+36 14605842 35955.39
Friedman Rubin Cindex DB Silhouette Duda Pseudot2 Beale Ratkowsky
2 2.2616 1.3611 0.3660 1.6642 0.2223 0.9591 109.3262 0.2869 0.0917
3 7.5466 1.5186 0.3470 1.6238 0.1976 1.1470 -361.6320 -0.8617 0.1439
4 12.9936 1.6364 0.3957 2.0704 0.1311 1.8523 -1005.8333 -3.0916 0.1343
5 14.0078 1.7142 0.3847 2.2401 0.1206 1.5485 -642.9099 -2.3800 0.1614
6 14.8144 1.7643 0.3782 2.5571 0.1036 1.3948 -384.4152 -1.9017 0.1628
7 15.7251 1.8228 0.3707 2.3594 0.1019 1.4047 -321.5029 -1.9349 0.1706
8 15.3090 1.9007 0.3572 2.3207 0.1021 1.6050 -439.9113 -2.5313 0.1760
9 15.7927 1.9488 0.3555 2.2210 0.1015 1.6536 -452.1731 -2.6539 0.1741
10 16.1150 1.9914 0.3510 2.2594 0.0993 1.4272 -293.0323 -2.0096 0.1714
Ball Ptbiserial Frey McClain Dunn Hubert SDindex Dindex SDbw
2 26302.439 0.4420 -0.0405 0.7625 0.0694 0e+00 1.2231 3.1442 1.3011
3 15716.712 0.5074 1.4319 0.9339 0.0556 1e-04 1.2454 2.9974 0.4899
4 10938.570 0.4514 1.3247 1.6421 0.0767 1e-04 1.5027 2.8856 0.4585
5 8353.863 0.3998 1.1079 2.5085 0.0619 1e-04 1.6700 2.8154 0.4404
6 6763.889 0.3672 0.5281 3.2786 0.0657 1e-04 1.8781 2.7742 0.4298
7 5611.595 0.3512 0.2379 3.9572 0.0623 1e-04 1.7648 2.7285 0.4166
8 4708.822 0.3460 0.4331 4.5894 0.0485 1e-04 1.7862 2.6717 0.4049
9 4082.289 0.3345 0.4526 5.2051 0.0619 1e-04 1.7349 2.6393 0.3941
10 3595.539 0.3224 0.4144 5.8869 0.0619 1e-04 1.7848 2.6105 0.3848
$All.CriticalValues
CritValue_Duda CritValue_PseudoT2 Fvalue_Beale
2 0.9093 255.4279 0.9843
3 0.9072 288.6956 1.0000
4 0.8955 255.0189 1.0000
5 0.8953 212.1495 1.0000
6 0.8916 165.1166 1.0000
7 0.8871 141.9993 1.0000
8 0.8838 153.4819 1.0000
9 0.8816 153.5841 1.0000
10 0.8805 132.9041 1.0000
$Best.nc
KL CH Hartigan CCC Scott Marriot TrCovW
Number_clusters 8.0000 2.000 3.0000 8.000 3.000 3.000000e+00 3
Value_Index 10.6136 1804.543 190.3857 1.883 9519.543 2.441549e+37 5597221
TraceW Friedman Rubin Cindex DB Silhouette Duda
Number_clusters 3.000 4.000 4.0000 3.000 3.0000 2.0000 2.0000
Value_Index 2058.887 5.447 -0.0401 0.347 1.6238 0.2223 0.9591
PseudoT2 Beale Ratkowsky Ball PtBiserial Frey McClain
Number_clusters 2.0000 2.0000 8.000 3.00 3.0000 1 2.0000
Value_Index 109.3262 0.2869 0.176 10585.73 0.5074 NA 0.7625
Dunn Hubert SDindex Dindex SDbw
Number_clusters 4.0000 0 2.0000 0 10.0000
Value_Index 0.0767 0 1.2231 0 0.3848
$Best.partition
[1] 2 2 1 2 1 1 1 2 2 2 2 1 2 1 2 2 1 1 2 2 1 2 1 2 2 2 2 1 2 1 1 2 2 3 1 2 2
[38] 1 1 1 1 2 2 2 1 2 2 2 2 1 2 3 2 1 1 1 1 2 1 2 1 2 1 2 2 2 1 1 2 1 3 2 1 2
[75] 2 3 3 1 2 2 1 1 1 2 1 2 1 1 2 1 2 2 2 1 1 2 2 1 2 1 1 1 2 1 2 2 1 3 2 2 2
[112] 1 1 2 1 2 1 1 2 1 1 2 1 1 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 1 2 1 1 1 3
[149] 1 1 2 2 1 2 1 2 1 2 1 1 1 1 3 2 1 1 2 1 2 2 2 2 3 1 2 2 2 2 3 1 1 3 2 1 2
[186] 2 1 2 2 1 1 1 2 2 2 3 2 1 1 2 2 3 1 2 1 2 3 1 1 2 2 1 2 2 1 1 1 1 2 2 1 2
[223] 1 2 1 2 2 1 2 3 1 1 1 2 1 1 2 2 2 2 2 1 1 2 2 1 2 1 2 1 1 1 2 1 1 2 1 2 1
[260] 1 2 3 2 2 1 2 2 2 2 2 1 2 3 1 2 3 1 2 2 1 1 2 2 2 2 2 1 1 2 2 2 1 1 1 1 2
[297] 2 2 1 2 2 1 1 2 1 2 2 1 2 1 2 3 1 2 1 2 1 2 2 1 1 2 1 2 1 2 1 2 1 1 2 1 1
[334] 2 2 1 2 2 3 1 1 2 1 2 1 1 2 2 2 1 2 2 2 1 3 1 1 1 2 2 1 1 1 2 1 1 1 2 1 1
[371] 1 2 2 1 1 3 1 2 2 2 1 1 2 3 1 2 1 1 2 2 2 3 3 2 3 1 1 2 2 2 1 2 1 2 1 1 2
[408] 2 3 1 1 2 1 2 1 2 1 1 1 1 2 2 3 1 1 3 2 3 1 2 1 1 3 2 2 1 2 1 1 2 2 2 1 1
[445] 2 2 2 1 2 2 1 1 2 3 2 1 2 2 3 1 2 1 2 2 1 1 1 2 2 1 2 2 2 2 1 1 1 2 1 2 2
[482] 2 1 2 2 2 2 3 2 3 2 2 1 1 2 1 2 1 2 1 3 2 2 2 2 3 1 2 2 2 1 1 2 1 2 1 1 1
[519] 1 1 2 3 1 2 2 2 1 1 1 1 2 2 1 2 1 1 1 2 2 2 1 2 2 2 1 1 2 2 2 2 2 3 2 1 1
[556] 3 2 2 2 1 2 3 1 1 2 2 1 1 2 1 1 2 2 2 1 2 2 2 1 2 2 2 2 2 1 1 2 2 1 1 3 1
[593] 1 2 2 2 2 1 2 1 2 3 1 2 2 2 2 1 2 2 2 2 1 2 1 2 2 2 1 1 1 2 2 2 1 1 2 2 2
[630] 2 2 1 1 3 2 2 2 1 2 1 2 1 1 1 3 2 1 2 2 1 2 2 1 1 2 1 1 2 1 1 2 2 2 2 2 2
[667] 3 1 1 2 2 1 2 1 2 2 3 1 1 3 1 1 2 1 3 2 1 1 2 1 2 1 1 2 2 1 2 1 2 2 2 2 2
[704] 1 1 1 1 2 2 3 1 2 2 1 1 2 1 2 1 1 2 2 1 2 1 2 2 2 1 3 3 2 2 2 1 1 2 1 3 2
[741] 2 1 2 2 2 3 1 2 2 2 1 2 1 1 1 1 2 1 2 1 1 2 3 2 1 2 2 1 1 2 2 2 1 1 1 2 1
[778] 2 3 1 1 1 1 1 3 2 2 2 1 3 2 2 2 2 1 2 1 2 2 1 2 1 2 1 1 1 2 1 1 1 2 2 2 2
[815] 2 2 1 1 1 2 2 1 1 2 3 1 2 2 1 1 1 1 2 2 1 2 1 2 1 1 2 2 2 1 2 1 1 2 2 1 2
[852] 2 1 1 2 1 2 3 1 1 2 1 1 2 2 1 1 1 2 1 2 2 1 1 2 2 2 1 2 1 1 2 2 1 1 3 1 2
[889] 1 3 2 1 3 1 1 2 1 2 1 1 2 1 2 2 2 2 1 1 1 1 2 1 3 2 2 2 3 2 1 1 1 1 3 1 2
[926] 2 2 1 2 2 1 2 2 3 2 1 1 1 2 1 2 2 2 1 2 1 1 2 2 3 1 1 1 2 2 1 3 2 2 2 2 1
[963] 2 1 2 3 3 1 1 2 2 1 2 1 1 1 2 2 2 3 2 1 2 2 2 2 2 1 1 1 2 1 1 1 2 2 2 1 3
[1000] 1 2 1 1 2 1 1 2 2 2 3 1 1 2 1 2 1 1 3 1 2 1 1 1 1 2 1 2 1 2 2 1 1 2 1 3 1
[1037] 3 2 1 1 2 2 3 2 1 1 2 2 2 3 1 1 1 1 3 1 2 1 2 1 1 2 1 1 1 1 2 2 2 1 1 2 1
[1074] 3 1 2 2 2 2 1 2 1 2 2 1 1 2 1 2 1 2 2 1 1 1 2 3 2 2 2 1 1 1 2 2 1 2 1 1 1
[1111] 1 1 1 1 1 1 2 1 2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 2 1 1 2 1 2 2 3 1 1 1 2 2
[1148] 2 2 2 1 2 1 1 2 2 2 1 2 2 2 2 2 2 2 3 3 1 2 1 2 2 1 1 1 2 1 2 1 2 2 2 1 2
[1185] 1 3 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 2 1 2 3 1 2 1 2 1 2 3 1 1 2 1 2 1 2 1 1
[1222] 2 2 2 3 3 3 2 1 2 2 1 2 1 2 2 1 2 1 1 1 2 2 2 2 2 1 2 2 2 2 1 1 2 3 2 1 1
[1259] 2 1 1 1 2 2 2 3 2 1 2 1 2 2 2 1 1 1 2 2 2 2 3 2 2 2 2 2 3 2 1 1 1 1 1 2 1
[1296] 1 2 2 1 2 1 2 3 3 1 1 2 1 1 2 3 2 1 2 2 2 1 3 2 2 3 1 2 2 1 1 2 2 2 2 2 1
[1333] 1 2 2 1 1 2 1 1 2 1 2 1 1 1 2 2 1 2 2 2 2 1 1 2 2 2 3 1 1 2 3 2 1 1 1 2 2
[1370] 1 1 1 2 2 1 2 2 2 2 1 1 2 1 2 2 3 1 2 3 2 1 2 2 2 1 1 3 1 1 2 3 2 1 1 2 2
[1407] 2 3 2 1 1 2 3 2 2 1 3 2 1 2 2 2 1 1 1 2 2 1 1 3 1 2 1 1 1 1 2 1 1 1 1 3 2
[1444] 2 2 1 1 2 1 1 1 1 2 1 1 2 1 2 2 2 2 2 1 2 2 1 2 1 2 2 1 1 2 1 1 3 3 1 1 2
[1481] 1 1 1 3 2 2 3 2 2 2 1 2 2 1 1 2 2 2 2 3 2 1 2 2 2 2 2 1 3 1 2 1 2 2 1 3 2
[1518] 1 2 2 2 2 2 1 3 2 2 2 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 2 2 1 1 2 2 2 2 1 2 1
[1555] 2 1 1 3 1 1 2 2 2 1 1 2 1 2 2 2 3 1 2 1 1 2 1 1 2 3 1 1 2 1 2 2 1 2 2 1 1
[1592] 2 1 2 1 2 2 2 3 3 2 1 2 2 1 2 3 2 1 1 2 2 2 3 2 2 1 1 2 2 2 1 1 2 2 3 1 2
[1629] 1 2 1 1 2 1 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 1 1 3 1 1 2 2 2 1 2 2 1 1
[1666] 1 2 2 2 1 1 3 2 2 1 1 1 1 1 1 2 2 1 3 1 2 1 2 1 2 2 2 2 2 2 1 1 2 2 3 2 1
[1703] 2 1 1 2 2 2 2 1 1 1 2 3 2 1 2 2 2 2 2 2 2 2 1 2 1 1 1 1 1 1 1 2 3 1 1 2 2
[1740] 3 1 1 1 1 2 1 1 2 2 3 2 3 2 2 2 2 1 1 2 1 2 2 2 2 1 1 1 2 2 1 2 1 1 2 1 1
[1777] 2 1 2 2 2 2 2 2 2 1 2 1 1 1 1 1 1 2 2 2 1 1 1 2 2 2 1 1 2 1 2 2 1 1 1 1 1
[1814] 1 1 1 2 1 2 1 2 2 1 2 1 1 1 2 1 3 2 2 1 2 1 2 2 1 2 3 3 1 2 2 1 2 2 1 2 2
[1851] 2 1 1 2 2 1 3 2 2 1 1 2 2 2 2 1 1 1 2 1 1 1 2 2 2 2 1 1 2 1 1 1 1 2 1 1 1
[1888] 1 1 2 2 2 1 1 2 1 1 2 1 2 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 2 1 2 1 2 1 1 2 2
[1925] 1 2 2 2 2 1 1 2 2 2 1 2 2 1 1 2 2 2 2 2 2 2 1 1 1 1 2 1 2 2 1 1 1 1 1 3 2
[1962] 2 1 1 1 2 2 1 1 2 2 1 3 1 2 2 2 1 2 2 2 1 1 1 1 2 2 1 2 1 1 1 2 2 1 2 3 1
[1999] 1 1 2 2 1 1 1 2 1 3 3 2 1 2 1 1 1 1 1 2 2 1 2 1 2 1 2 1 1 1 2 2 2 2 1 2 2
[2036] 3 2 1 2 1 3 1 2 1 2 1 1 3 2 1 2 1 2 2 1 2 2 1 2 2 1 1 1 2 2 2 2 2 1 1 1 1
[2073] 3 2 3 1 1 2 2 2 1 2 1 2 1 2 2 2 1 1 1 2 1 1 1 2 1 1 2 1 3 1 1 2 1 2 2 1 2
[2110] 2 1 2 2 2 2 1 2 1 3 2 1 2 1 2 2 1 1 1 2 1 2 2 1 1 2 1 1 1 1 2 1 1 1 2 1 1
[2147] 2 1 1 1 2 2 2 2 1 1 1 2 1 1 1 2 1 1 3 2 2 2 2 2 2 2 1 1 1 2 2 2 3 2 2 2 1
[2184] 2 2 1 2 2 2 1 2 2 2 2 1 1 1 2 1 1 1 3 1 2 2 2 1 2 3 2 2 1 3 2 1 2 1 2 2 3
[2221] 2 3 2 1 2 1 1 2 3 1 2 2 1 2 2 2 2 3 2 1 1 2 1 3 1 2 2 1 2 2 2 1 2 2 1 2 1
[2258] 1 2 2 1 3 1 3 2 3 2 2 1 2 2 1 2 3 1 1 2 2 2 2 1 2 1 2 2 2 2 1 2 2 2 2 2 1
[2295] 1 2 1 2 2 1 2 2 1 1 2 1 1 1 1 2 2 1 1 1 1 1 2 3 1 3 2 2 1 1 1 3 2 1 2 2 1
[2332] 1 2 1 2 2 3 1 1 2 2 1 2 1 1 2 1 2 3 1 2 2 2 1 2 1 2 2 2 1 2 1 1 1 2 2 2 2
[2369] 2 1 1 2 1 1 1 1 2 2 1 2 2 1 1 2 1 2 2 1 1 2 2 2 2 3 1 1 1 2 2 3 1 2 1 1 2
[2406] 1 2 1 2 2 3 2 2 1 2 1 1 1 1 2 2 2 1 1 2 1 3 1 2 1 1 1 1 1 1 2 3 1 2 1 1 1
[2443] 2 2 2 1 2 1 2 1 2 1 2 2 1 2 1 2 1 1 2 2 1 2 2 2 1 3 1 1 2 1 2 1 2 3 1 2 2
[2480] 2 3 1 1 3 2 2 1 2 1 2 2 2 1 2 1 2 1 1 2 2 2 2 2 2 2 2 3 2 1 3 1 2 2 1 2 1
[2517] 2 2 2 1 1 2 2 1 2 1 1 2 2 1 1 2 3 1 2 2 2 2 2 1 3 1 3 2 1 1 1 1 1 1 1 2 1
[2554] 2 1 3 1 2 2 2 2 2 1 1 2 3 2 1 2 2 2 2 1 1 1 1 1 2 3 2 2 2 3 1 2 3 2 1 2 2
[2591] 3 1 2 1 1 2 2 1 1 2 2 2 1 2 1 3 1 1 1 1 2 1 2 1 1 2 1 2 2 1 1 2 2 2 2 1 2
[2628] 1 2 1 1 1 1 2 2 1 1 2 1 2 2 1 2 3 1 2 2 2 2 3 1 2 1 3 2 1 2 1 2 2 2 2 1 2
[2665] 2 2 2 2 3 1 3 1 1 3 2 1 2 3 2 2 2 1 2 1 2 1 2 2 1 1 1 2 1 2 2 2 2 2 2 2 1
[2702] 1 2 2 1 2 2 2 2 1 3 1 2 2 2 3 1 2 1 3 2 1 1 1 1 3 2 2 2 2 1 2 2 1 1 1 2 2
[2739] 1 1 2 2 1 1 1 2 2 2 2 2 2 1 2 1 1 2 2 2 1 2 1 1 2 2 1 1 2 1 1 2 2 1 1 2 1
[2776] 2 2 1 1 2 2 2 2 2 1 1 2 1 1 1 1 1 2 1 2 1 2 2 2 1 2 1 2 2 2 2 2 1 1 2 3 2
[2813] 1 1 2 2 2 1 1 3 1 2 1 1 1 1 2 1 2 1 3 1 1 3 1 1 1 2 1 1 1 1 1 2 1 2 2 2 1
[2850] 1 2 1 1 2 1 2 2 1 1 1 3 2 2 1 2 2 1 1 2 2 2 2 3 2 1 1 2 2 1 1 1 2 1 3 1 1
[2887] 1 1 2 1 2 1 1 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 1 2 2 2 1 1 1 2 2 1 2 1 1 1 1
[2924] 2 2 1 1 2 3 1 3 2 1 2 2 2 2 1 2 1 1 3 2 3 2 2 1 1 1 2 1 2 1 1 2 1 1 2 1 2
[2961] 3 1 1 2 2 2 2 1 2 1 2 2 1 2 1 2 1 2 1 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2
[2998] 2 1 1 2 1 2 2 2 2 2 1 3 1 2 1 1 1 2 1 2 2 1 1 1 2 2 1 2 2 2 1 2 2 2 2 3 2
[3035] 1 1 2 1 2 1 3 2 1 2 1 2 1 1 1 3 2 1 2 1 2 2 1 1 1 2 2 1 2 2 3 2 2 1 1 1 2
[3072] 2 1 2 2 2 3 2 2 2 3 2 1 2 1 2 1 2 1 2 1 1 2 1 1 1 2 2 2 1 2 1 1 3 3 2 1 2
[3109] 2 1 2 1 1 1 2 1 2 2 2 2 2 1 3 1 2 1 1 1 1 1 2 1 2 2 2 1 2 2 3 1 2 1 2 2 1
[3146] 1 2 2 1 1 1 1 1 2 2 2 2 2 2 2 3 2 1 3 2 2 3 1 3 1 1 1 2 2 2 2 2 2 2 1 1 1
[3183] 1 2 2 1 2 2 1 1 2 2 3 1 1 2 1 2 2 2 1 1 2 2 2 2 3 1 2 1 1 1 1 1 3 2 2 1 1
[3220] 1 2 2 2 1 2 3 1 2 1 2 1 2 3 2 2 1 1 2 2 2 2 1 1 1 3 2 2 1 1 2 1 2 1 2 2 2
[3257] 2 1 2 3 3 2 2 1 2 2 1 2 2 2 3 1 2 1 1 2 1 1 1 2 2 1 2 2 2 2 1 1 1 2 1 1 1
[3294] 1 2 1 3 1 1 2 3 2 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 1 1 3 2 1 1 2 1 2 2 1 1 2
[3331] 1 2 2 2 2 1 1 2 2 1 1 2 1 1 1 1 2 2 1 3 1 2 2 1 1 1 2 1 2 1 1 1 1 2 1 2 2
[3368] 2 2 2 1 1 3 2 1 1 2 2 1 2 2 1 1 2 2 1 1 1 2 2 2 2 1 1 3 2 1 2 1 1 2 1 1 2
[3405] 2 1 1 2 2 3 2 2 2 1 1 1 1 1 2 2 1 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 1 2 2
[3442] 2 1 2 2 3 2 1 1 1 2 2 1 2 1 2 2 1 1 3 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 2 1 3
[3479] 1 3 2 1 2 3 2 2 3 1 1 1 1 3 1 2 1 1 1 1 2 2 3 1 1 2 1 1 1 1 2 2 3 1 3 1 1
[3516] 2 2 1 2 2 2 2 2 3 2 2 1 2 1 1 1 3 2 1 2 1 1 2 2 2 1 1 2 1 1 3 2 2 2 1 2 3
[3553] 2 3 1 1 2 2 2 1 3 1 2 2 2 3 1 1 2 1 1 1 2 1 1 2 1 1 1 2 2 2 1 2 2 2 1 1 1
[3590] 2 2 1 1 1 2 1 1 1 1 2 2 2 1 1 2 1 2 1 2 2 2 1 2 2 1 1 2 1 1 1 1 1 1 1 2 1
[3627] 1 1 2 2 1 2 1 1 2 2 1 1 3 2 1 2 3 1 1 1 2 2 2 2 1 1 2 2 2 2 2 1 2 1 1 2 3
[3664] 2 3 2 2 1 2 1 1 1 1 2 2 1 2 1 2 1 2 2 1 3 2 2 1 1 1 3 1 2 1 2 2 1 1 1 1 2
[3701] 2 1 2 3 1 2 2 2 1 2 2 1 1 1 2 2 2 1 1 2 1 2 2 2 3 2 1 1 2 2 1 1 2 2 2 1 1
[3738] 2 1 2 2 1 1 1 3 2 2 2 1 2 2 2 1 2 2 2 1 1 3 1 1 2 1 1 1 1 1 2 2 1 2 2 2 1
[3775] 3 1 3 3 2 1 1 2 1 1 2 1 2 2 2 2 1 1 2 2 3 1 1 2 1 2 2 1 1 2 1 2 3 2 1 2 2
[3812] 2 2 2 1 1 2 2 2 2 1 2 2 2 1 1 2 3 1 1 2 2 1 1 3 2 1 1 2 1 1 1 2 2 2 1 2 1
[3849] 1 2 1 1 2 1 1 2 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1
[3886] 2 1 1 2 2 1 2 2 2 1 1 1 1 2 1 2 2 2 1 2 2 2 2 2 1 1 2 2 1 1 1 2 2 2 1 2 3
[3923] 1 1 1 1 2 1 2 1 2 2 2 3 1 1 1 1 1 1 1 3 1 1 2 1 1 1 2 1 1 1 1 2 1 2 2 2 2
[3960] 1 2 2 2 2 2 1 1 1 2 2 2 1 2 1 2 2 1 2 2 2 2 1 1 2 2 2 1 2 1 1 1 2 1 1 2 1
[3997] 2 2 1 1 1 2 1 1 2 2 2 2 1 1 1 2 2 1 1 1 1 1 1 2 2 3 2 1 2 1 2 1 1 2 2 2 2
[4034] 2 1 2 1 2 1 3 1 1 2 2 3 2 2 2 2 1 1 2 1 3 1 2 2 2 3 2 2 2 2 1 2 2 2 1 2 1
[4071] 2 2 1 2 1 1 1 1 1 1 2 1 1 2 1 1 1 2 2 2 1 2 1 2 1 2 2 2 2 1 1 1 1 1 2 2 2
[4108] 2 2 1 2 2 3 2 2 2 2 1 2 2 2 2 3 1 3 2 2 2 2 1 2 1 1 1 2 2 2 2 1 2 2 2 2 1
[4145] 1 3 2 1 1 1 1 2 1 2 1 2 1 2 1 3 1 2 1 3 2 1 1 3 2 2 1 1 1 3 2 2 1 3 1 2 1
[4182] 1 2 1 2 2 2 2 1 3 1 2 3 2 1 2 1 1 2 1 1 2 2 2 1 2 1 2 1 1 2 1 1 2 2 1 1 2
[4219] 2 1 1 1 1 1 1 1 1 2 3 2 2 3 1 1 2 1 2 2 3 2 1 2 1 2 3 2 1 1 2 2 2 2 1 2 1
[4256] 2 2 1 1 1 2 3 2 1 3 1 2 2 2 2 1 2 2 2 2 1 1 1 1 2 1 2 2 2 2 1 2 1 1 2 2 2
[4293] 2 1 1 2 1 2 2 2 1 2 1 1 2 3 2 1 1 2 1 2 1 1 1 2 2 1 2 2 2 1 2 2 1 2 2 1 2
[4330] 1 1 2 1 2 3 2 2 1 2 3 2 2 2 2 2 2 1 1 3 1 1 2 1 1 1 2 2 2 2 1 1 2 2 2 3 2
[4367] 2 3 2 2 2 1 1 2 2 1 3 3 1 2 3 3 2 2 3 2 1 1 3 2 2 2 1 1 1 2 1 2 2 1 2 1 2
[4404] 2 2 3 1 2 2 2 1 1 1 3 1 2 2 1 2 1 2 2 2 1 1 1 1 2 2 1 2 2 1 1 1 1 1 2 1 1
[4441] 2 1 1 1 1 1 2 3 1 2 1 1 2 2 2 1 1 2 2 2 2 2 1 3 1 1 1 1 1 2 1 2 1 2 1 1 2
[4478] 1 2 2 2 1 2 1 2 2 2 1 3 1 2 1 2 1 2 1 2 1 2 1 1 3 3 1 1 2 2 2 2 2 2 1 2 1
[4515] 1 2 2 2 1 2 1 2 2 2 2 1 1 2 1 2 2 3 2 2 1 1 1 1 2 1 2 1 2 2 2 1 1 1 3 2 1
[4552] 1 1 2 1 2 1 1 2 2 2 1 2 2 2 1 2 3 2 2 2 3 1 1 2 1 2 2 2 2 1 2 1 2 2 1 2 3
[4589] 2 1 2 1 1 2 2 1 1 2 2 2 2 1 3 2 2 2 1 2 2 1 1 2 2 2 2 1 1 1 1 1 3 3 1 2 1
[4626] 1 1 2 2 1 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 3 2 1 2 1 1 2 1 2 1 2 1 2 3 2 1 1
[4663] 1 1 2 1 1 2 1 1 1 2 2 2 1 2 2 2 1 2 2 1 1 1 2 1 2 2 1 2 2 1 2 2 2 2 2 1 1
[4700] 1 1 1 1 1 2 1 1 1 2 1 1 1 2 2 1 1 2 2 2 1 2 2 1 2 3 1 2 1 1 2 2 2 1 1 1 2
[4737] 1 1 2 2 1 1 1 1 1 1 2 2 2 2 1 2 1 1 1 1 2 1 2 2 1 2 1 2 1 2 1 1 1 2 2 2 1
[4774] 1 2 3 2 2 1 3 1 1 1 2 1 2 1 2 2 2 2 1 1 1 2 2 2 3 1 3 2 2 2 2 2 2 2 2 1 1
[4811] 1 1 1 2 2 2 2 2 2 3 1 2 1 1 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2 2 1 3 2 2 3 1
[4848] 1 2 2 1 2 1 1 3 3 1 1 1 1 2 1 2 1 2 1 2 1 1 2 3 2 1 1 1 1 2 3 2 1 1 3 2 2
[4885] 2 1 1 2 1 1 1 2 2 2 2 1 2 2 1 2 3 2 1 2 2 2 1 2 1 2 1 2 2 3 2 2 1 1 1 1 1
[4922] 1 2 2 1 3 2 2 2 1 1 2 1 1 1 1 2 2 1 2 2 2 2 2 1 2 2 1 2 1 1 1 1 2 1 2 1 1
[4959] 2 3 1 3 2 1 2 2 2 1 1 1 1 1 2 2 1 2 2 2 2 2 3 2 1 2 2 1 1 1 2 2 2 1 2 1 2
[4996] 2 2 1 2 2
Clustering Analysis
The results from the NbClust analysis provide a detailed comparison of multiple clustering indices used to determine the optimal number of clusters. As shown above, different indices suggest varying numbers of clusters (ranging from 2 to 10), reflecting the fact that each method evaluates clustering structure using different criteria. However, the majority rule indicates that 2 clusters is the most appropriate choice, as it is the most frequently recommended solution among the indices. The table of individual index results further supports this conclusion, with several key metrics (such as CH, DB, and Silhouette) also favoring a 2-cluster solution. Therefore, based on both the summary and the detailed index outputs, we proceed with k = 2 for the clustering analysis.
number_cluster_estimate$Best.nc KL CH Hartigan CCC Scott Marriot TrCovW
Number_clusters 8.0000 2.000 3.0000 8.000 3.000 3.000000e+00 3
Value_Index 10.6136 1804.543 190.3857 1.883 9519.543 2.441549e+37 5597221
TraceW Friedman Rubin Cindex DB Silhouette Duda
Number_clusters 3.000 4.000 4.0000 3.000 3.0000 2.0000 2.0000
Value_Index 2058.887 5.447 -0.0401 0.347 1.6238 0.2223 0.9591
PseudoT2 Beale Ratkowsky Ball PtBiserial Frey McClain
Number_clusters 2.0000 2.0000 8.000 3.00 3.0000 1 2.0000
Value_Index 109.3262 0.2869 0.176 10585.73 0.5074 NA 0.7625
Dunn Hubert SDindex Dindex SDbw
Number_clusters 4.0000 0 2.0000 0 10.0000
Value_Index 0.0767 0 1.2231 0 0.3848
K-means Clustering
K-means clustering was performed using the scaled dataset with k = 2, as determined by the NbClust analysis. Each observation was assigned to one of the two clusters, and these cluster labels were added back to the dataset for further analysis. This allowed for comparison of behavioral and well-being characteristics across the identified groups.
set.seed(123)
kmeans_model <- kmeans(
scaled_data,
centers = 3,
nstart = 25
)
cluster_assignments <- kmeans_model$cluster
clustered_df <- numeric_cluster_data %>%
mutate(cluster = factor(cluster_assignments))clustered_df_with_income <- clean_insta_data %>%
select(income_level) %>%
bind_cols(clustered_df)
income_summary <- clustered_df_with_income %>%
group_by(cluster, income_level) %>%
summarise(n = n(), .groups = "drop") %>%
group_by(cluster) %>%
mutate(percent = round(n / sum(n) * 100, 1)) %>%
arrange(cluster, desc(percent))
income_summary %>%
kable(
caption = "Income Level Distribution by Cluster",
digits = 1
)| cluster | income_level | n | percent |
|---|---|---|---|
| 1 | Middle | 213 | 30.0 |
| 1 | Lower-middle | 169 | 23.8 |
| 1 | Low | 134 | 18.9 |
| 1 | Upper-middle | 115 | 16.2 |
| 1 | High | 79 | 11.1 |
| 2 | Middle | 1444 | 29.7 |
| 2 | Lower-middle | 1242 | 25.6 |
| 2 | Low | 978 | 20.1 |
| 2 | Upper-middle | 732 | 15.1 |
| 2 | High | 461 | 9.5 |
| 3 | Middle | 1320 | 29.8 |
| 3 | Lower-middle | 1138 | 25.7 |
| 3 | Low | 883 | 19.9 |
| 3 | Upper-middle | 654 | 14.8 |
| 3 | High | 438 | 9.9 |
ggplot(clustered_df,
aes(x = cluster,
y = perceived_stress_score,
fill = cluster)) +
geom_boxplot(alpha = 0.7) +
labs(
title = "Stress by Cluster",
x = "Cluster",
y = "Perceived Stress Score"
) +
theme_minimal() +
theme(legend.position = "none")The relationship between age and perceived stress was analyzed across both clusters. In each cluster, stress levels show a slight upward trend as age increases, indicating a modest positive relationship between age and stress. However, the magnitude of this relationship is relatively small, suggesting that age alone does not strongly influence stress levels.
A more notable pattern is the clear separation between the two clusters. Cluster 2 consistently exhibits higher stress scores across all age groups compared to Cluster 1. This indicates that cluster membership is a stronger determinant of stress than age. Overall, the results suggest that while age has a minor effect on stress, the primary distinction between users lies in their overall stress levels rather than their age.
ggplot(clustered_df,
aes(x = age,
y = perceived_stress_score,
color = cluster)) +
geom_point(alpha = 0.05, size = 0.5) +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Stress vs Age by Cluster",
x = "Age",
y = "Perceived Stress Score",
color = "Cluster"
) +
theme_minimal()ggplot(clustered_df,
aes(x = daily_active_minutes_instagram,
y = perceived_stress_score,
color = factor(cluster))) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm") +
labs(title = "Time on Instagram vs Stress by Cluster",
x = "Daily Active Minutes on Instagram",
y = "Perceived Stress Score")`geom_smooth()` using formula = 'y ~ x'
This visualization shows the relationship between time spent on Instagram and perceived stress across two clusters. We observe a clear separation, where Cluster 1 consists of lower-usage individuals, while Cluster 2 represents higher-usage users. Across both clusters, there is a positive relationship between time spent and stress levels. Notably, Cluster 2 exhibits both higher variability and higher stress levels overall, suggesting that heavy Instagram usage may be associated with increased stress.
library(plotly)
cluster_profile <- clustered_df %>%
group_by(cluster) %>%
summarise(
stress = mean(perceived_stress_score, na.rm = TRUE),
happiness = mean(self_reported_happiness, na.rm = TRUE),
sleep = mean(sleep_hours_per_night, na.rm = TRUE),
daily_minutes = mean(daily_active_minutes_instagram, na.rm = TRUE),
feed_time = mean(time_on_feed_per_day, na.rm = TRUE),
reels_time = mean(time_on_reels_per_day, na.rm = TRUE)
) %>%
pivot_longer(
cols = -cluster,
names_to = "variable",
values_to = "average"
)
p_cluster_profile <- ggplot(
cluster_profile,
aes(
x = variable,
y = average,
fill = as.factor(cluster),
text = paste(
"Cluster:", cluster,
"<br>Variable:", variable,
"<br>Average:", round(average, 2)
)
)
) +
geom_col(position = "dodge") +
labs(
title = "Average Variable Values by Cluster",
x = "Variable",
y = "Average Value",
fill = "Cluster"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 35, hjust = 1))
ggplotly(p_cluster_profile, tooltip = "text")Conclusions
In conclusion the final analysis shows us that there is a relatively consistent positive relationship between Instagram usage and perceived stress, indicating that individuals who spend more time on the platform tend to report higher stress levels. This is consistent with previous articles reporting that more frequent use of social media can lead to more perceived stress as well as depression. We also see that both age and sleep hours per night are not good reasonings as to why someone may be more or less stressed with the relationship being nearly obsolete.
Future Studies
A future study into this niche would require a more in depth look into multiple social media platforms such as youtube, tiktok,facebook,etc. This would give us a more broad scope and a more accurate depiction on the effects of social media on one’s overall life. This study limits us strictly to instagram so we can’t necessarily generalize this analysis for all social media users.
The findings presented in this project are exclusive to this course and were not in this or previous semesters and will not be presented in any other courses during this semester.
Contact
Geoffrey Kirnon II: gkirnon@students.kennesaw.edu
Aamiri Ducksworth: aducksw2@students.kennesaw.edu