Το dataset “Student’s Social Media Addiction” περιλαμβάνει ανωνυμοποιημένα δεδομένα που αφορούν τη συμπεριφορά μαθητών και φοιτητών (ηλικίας 16-25 ετών) στα μέσα κοινωνικής δικτύωσης. Καλύπτει διάφορες χώρες και ακαδημαϊκές βαθμίδες, εστιάζοντας στην ένταση χρήσης, τις προτιμήσεις στις πλατφόρμες και τη δυναμική των διαπροσωπικών τους σχέσεων.
Αρχικά τα δεδομένα πάρθηκαν από το kaggle με link: https://www.kaggle.com/datasets/aminasalamt/social-media-dataset-2025. Τα δεδομένα συλλέχθηκαν το πρώτο τρίμηνο (Q1) του 2025 μέσω διαδικτυακής έρευνας. Το ερωτηματολόγιο βασίστηκε σε έγκυρες κλίμακες μέτρησης (π.χ. Bergen Social Media Addiction Scale). Περιλαμβάνει ελέγχους ποιότητας (π.χ. αφαίρεση διπλότυπων εγγραφών, έλεγχο εύρους τιμών) και δεν περιέχει προσωπικά αναγνωρίσιμα στοιχεία.
Η επιλογή του συγκεκριμένου dataset είναι ιδιαίτερα σχετική με την επιχειρηματική αναλυτική, καθώς ο κλάδος της τεχνολογίας, του EdTech (εκπαιδευτική τεχνολογία) και του Digital Health αναζητά συνεχώς δεδομένα συμπεριφοράς χρηστών. Πιο συγκεκριμένα:
Εταιρείες Social Media & Marketing: Μπορούν να κατανοήσουν ποια κοινά (ανά ηλικία ή πλατφόρμα) έχουν τη μεγαλύτερη αλληλεπίδραση (engagement), βοηθώντας στη στόχευση διαφημίσεων.
Εφαρμογές Ψυχικής Υγείας (Mental Health Apps): Εντοπίζοντας τα τμήματα της αγοράς (market segments) με υψηλό σκορ εθισμού ή χαμηλή ποιότητα ύπνου, μπορούν να προσφέρουν στοχευμένες premium υπηρεσίες “ψηφιακής αποτοξίνωσης” (digital detox).
Εκπαιδευτικοί Οργανισμοί: Με την ανάλυση του αντίκτυπου στην ακαδημαϊκή απόδοση, τα πανεπιστήμια μπορούν να αναπτύξουν στοχευμένα προγράμματα συμβουλευτικής, βελτιώνοντας το ποσοστό επιτυχίας των φοιτητών τους.
Υπάρχει συγκεκριμένη πλατφόρμα (π.χ. TikTok vs LinkedIn) που οδηγεί σε υψηλότερα επίπεδα εθισμού;
Μπορούμε να προβλέψουμε ποιοι χρήστες θα αναφέρουν μείωση της ακαδημαϊκής τους απόδοσης βάσει των ωρών χρήσης;
Πώς συσχετίζονται οι ώρες ύπνου με το σκορ εθισμού και πώς μπορούν επιχειρήσεις wearable devices (π.χ. smartwatches) να αξιοποιήσουν αυτά τα όρια για health alerts;
library(readr)
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
students_data <- read_csv("Students_Social_Media_Addiction.csv")
## Rows: 705 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (6): Gender, Academic_Level, Country, Most_Used_Platform, Affects_Academ...
## dbl (7): Student_ID, Age, Avg_Daily_Usage_Hours, Sleep_Hours_Per_Night, Ment...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(students_data)
glimpse(students_data)
## Rows: 705
## Columns: 13
## $ Student_ID <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13…
## $ Age <dbl> 19, 22, 20, 18, 21, 19, 23, 20, 18, 21, 1…
## $ Gender <chr> "Female", "Male", "Female", "Male", "Male…
## $ Academic_Level <chr> "Undergraduate", "Graduate", "Undergradua…
## $ Country <chr> "Bangladesh", "India", "USA", "UK", "Cana…
## $ Avg_Daily_Usage_Hours <dbl> 5.2, 2.1, 6.0, 3.0, 4.5, 7.2, 1.5, 5.8, 4…
## $ Most_Used_Platform <chr> "Instagram", "Twitter", "TikTok", "YouTub…
## $ Affects_Academic_Performance <chr> "Yes", "No", "Yes", "No", "Yes", "Yes", "…
## $ Sleep_Hours_Per_Night <dbl> 6.5, 7.5, 5.0, 7.0, 6.0, 4.5, 8.0, 6.0, 6…
## $ Mental_Health_Score <dbl> 6, 8, 5, 7, 6, 4, 9, 6, 7, 7, 5, 6, 8, 5,…
## $ Relationship_Status <chr> "In Relationship", "Single", "Complicated…
## $ Conflicts_Over_Social_Media <dbl> 3, 0, 4, 1, 2, 5, 0, 2, 1, 1, 3, 2, 1, 4,…
## $ Addicted_Score <dbl> 8, 3, 9, 4, 7, 9, 2, 8, 5, 4, 7, 8, 4, 9,…
summary(students_data)
## Student_ID Age Gender Academic_Level
## Min. : 1 Min. :18.00 Length:705 Length:705
## 1st Qu.:177 1st Qu.:19.00 Class :character Class :character
## Median :353 Median :21.00 Mode :character Mode :character
## Mean :353 Mean :20.66
## 3rd Qu.:529 3rd Qu.:22.00
## Max. :705 Max. :24.00
## Country Avg_Daily_Usage_Hours Most_Used_Platform
## Length:705 Min. :1.500 Length:705
## Class :character 1st Qu.:4.100 Class :character
## Mode :character Median :4.800 Mode :character
## Mean :4.919
## 3rd Qu.:5.800
## Max. :8.500
## Affects_Academic_Performance Sleep_Hours_Per_Night Mental_Health_Score
## Length:705 Min. :3.800 Min. :4.000
## Class :character 1st Qu.:6.000 1st Qu.:5.000
## Mode :character Median :6.900 Median :6.000
## Mean :6.869 Mean :6.227
## 3rd Qu.:7.700 3rd Qu.:7.000
## Max. :9.600 Max. :9.000
## Relationship_Status Conflicts_Over_Social_Media Addicted_Score
## Length:705 Min. :0.00 Min. :2.000
## Class :character 1st Qu.:2.00 1st Qu.:5.000
## Mode :character Median :3.00 Median :7.000
## Mean :2.85 Mean :6.437
## 3rd Qu.:4.00 3rd Qu.:8.000
## Max. :5.00 Max. :9.000
missing_table <- data.frame(
Missing_Values = colSums(is.na(students_data)),
Percentage = (colSums(is.na(students_data)) / nrow(students_data)) * 100
)
print("--- Έλεγχος Κενών Τιμών ανά Στήλη ---")
## [1] "--- Έλεγχος Κενών Τιμών ανά Στήλη ---"
print(missing_table)
## Missing_Values Percentage
## Student_ID 0 0
## Age 0 0
## Gender 0 0
## Academic_Level 0 0
## Country 0 0
## Avg_Daily_Usage_Hours 0 0
## Most_Used_Platform 0 0
## Affects_Academic_Performance 0 0
## Sleep_Hours_Per_Night 0 0
## Mental_Health_Score 0 0
## Relationship_Status 0 0
## Conflicts_Over_Social_Media 0 0
## Addicted_Score 0 0
Το dataset αποτελείται από τις εξής μεταβλητές:
Student_ID: Ακέραιος. Μοναδικό αναγνωριστικό.
Age: Ακέραιος (16–25). Ηλικία σε έτη.
Gender: Κατηγορική (“Male” / “Female”).
Academic_Level: Κατηγορική. Βαθμίδα (High School / Undergraduate / Graduate).
Country: Κατηγορική. Χώρα διαμονής.
Avg_Daily_Usage_Hours: Αριθμητική (Συνεχής, 0-24). Μέσες ημερήσιες ώρες χρήσης.
Most_Used_Platform: Κατηγορική. Κύρια πλατφόρμα (π.χ. Instagram, TikTok).
Affects_Academic_Performance: Λογική (Boolean - Yes/No). Επιρροή στις ακαδημαϊκές επιδόσεις.
Sleep_Hours_Per_Night: Αριθμητική (Συνεχής). Μέσες ώρες ύπνου τη νύχτα.
Mental_Health_Score: Ακέραιος (1–10). Αυτοαξιολόγηση ψυχικής υγείας (1 = κακή, 10 = άριστη).
Relationship_Status: Κατηγορική. Κατάσταση σχέσης.
Conflicts_Over_Social_Media: Ακέραιος. Αριθμός συγκρούσεων λόγω social media.
Addicted_Score: Ακέραιος (1–10). Σκορ εθισμού στα social media.
# Επιλογή μόνο των αριθμητικών μεταβλητών
numeric_vars <- students_data %>%
select(Age, Avg_Daily_Usage_Hours, Sleep_Hours_Per_Night, Mental_Health_Score, Conflicts_Over_Social_Media, Addicted_Score)
# Κεντρική Τάση
get_mode <- function(v) {
uniqv <- unique(na.omit(v))
uniqv[which.max(tabulate(match(v, uniqv)))]
}
ct_table <- data.frame(
Variable = colnames(numeric_vars),
Mean = round(sapply(numeric_vars, mean, na.rm = TRUE), 2),
Median = sapply(numeric_vars, median, na.rm = TRUE),
Mode = sapply(numeric_vars, get_mode)
)
print(ct_table)
## Variable Mean Median Mode
## Age Age 20.66 21.0 20.0
## Avg_Daily_Usage_Hours Avg_Daily_Usage_Hours 4.92 4.8 4.7
## Sleep_Hours_Per_Night Sleep_Hours_Per_Night 6.87 6.9 7.2
## Mental_Health_Score Mental_Health_Score 6.23 6.0 6.0
## Conflicts_Over_Social_Media Conflicts_Over_Social_Media 2.85 3.0 3.0
## Addicted_Score Addicted_Score 6.44 7.0 7.0
# Διασπορά
disp_table <- data.frame(
Variable = colnames(numeric_vars),
Std_Dev = round(sapply(numeric_vars, sd, na.rm = TRUE), 2),
Variance = round(sapply(numeric_vars, var, na.rm = TRUE), 2),
Range = sapply(numeric_vars, function(x) diff(range(x, na.rm = TRUE)))
)
print(disp_table)
## Variable Std_Dev Variance Range
## Age Age 1.40 1.96 6.0
## Avg_Daily_Usage_Hours Avg_Daily_Usage_Hours 1.26 1.58 7.0
## Sleep_Hours_Per_Night Sleep_Hours_Per_Night 1.13 1.27 5.8
## Mental_Health_Score Mental_Health_Score 1.11 1.22 5.0
## Conflicts_Over_Social_Media Conflicts_Over_Social_Media 0.96 0.92 5.0
## Addicted_Score Addicted_Score 1.59 2.52 7.0
# Υπολογισμός μήτρας συσχέτισης
cor_matrix <- cor(numeric_vars, use = "complete.obs")
print(cor_matrix)
## Age Avg_Daily_Usage_Hours
## Age 1.0000000 -0.1136823
## Avg_Daily_Usage_Hours -0.1136823 1.0000000
## Sleep_Hours_Per_Night 0.1252654 -0.7905825
## Mental_Health_Score 0.1602780 -0.8010576
## Conflicts_Over_Social_Media -0.1844815 0.8045823
## Addicted_Score -0.1663957 0.8320002
## Sleep_Hours_Per_Night Mental_Health_Score
## Age 0.1252654 0.1602780
## Avg_Daily_Usage_Hours -0.7905825 -0.8010576
## Sleep_Hours_Per_Night 1.0000000 0.7074387
## Mental_Health_Score 0.7074387 1.0000000
## Conflicts_Over_Social_Media -0.6772658 -0.8935720
## Addicted_Score -0.7648580 -0.9450507
## Conflicts_Over_Social_Media Addicted_Score
## Age -0.1844815 -0.1663957
## Avg_Daily_Usage_Hours 0.8045823 0.8320002
## Sleep_Hours_Per_Night -0.6772658 -0.7648580
## Mental_Health_Score -0.8935720 -0.9450507
## Conflicts_Over_Social_Media 1.0000000 0.9335859
## Addicted_Score 0.9335859 1.0000000
# Δημιουργία του Scatterplot
ggplot(head(students_data, 100), aes(x = Avg_Daily_Usage_Hours, y = Sleep_Hours_Per_Night, color = Student_ID)) +
geom_point(alpha = 0.7, size = 3) +
labs(
title = "Συσχέτιση Μέσης Χρήσης και Ωρών ύπνου ανά Νύχτα",
x = "Average Daily Usage (Hours)",
y = "Sleep Hours per Night",
color = "Student"
) +
theme_minimal()
Με βάση πάραπανω γράφημα διασποράς βγαίνουμε στο συμπέρασμα ότι με σταθερό ρυθμό οι μαθητές που χρησιμοποιούν πιο λιγές ώρες τα social media κοιμούνται περισσότερο χρόνο, ενώ οι μαθητές που χρησιμοποιούν περισσότερες ώρες τα social media κοιμούνται λιγότερο ## Διάγραμμα Boxplot
ggplot(students_data, aes(x = Academic_Level, y = Avg_Daily_Usage_Hours, fill = Academic_Level)) +
geom_boxplot(outlier.colour = "red", outlier.shape = 16, outlier.size = 2) +
labs(
title = "Ημερήσιες Ώρες Χρήσης Social Media ανά Επίπεδο Σπουδών",
x = "Επίπεδο Σπουδών",
y = "Μέσες Ημερήσιες Ώρες Χρήσης"
) +
theme_minimal() +
theme(legend.position = "none")
Από το dataset φαίνεται ότι οι φοιτητές HighSchool και Undergraduate παρουσιάζουν υψηλότερη ημερήσια χρήση (~4.5–6 ώρες διάμεσος) σε σχέση με τους Graduate (~2.5–3.5 ώρες). Αυτό υποδηλώνει ότι η χρήση social media μειώνεται καθώς ανεβαίνει το ακαδημαϊκό επίπεδο, πιθανώς λόγω αυξημένων υποχρεώσεων.
ggplot(students_data, aes(x = Addicted_Score, fill = Gender)) +
geom_histogram(binwidth = 1, color = "white", alpha = 0.7,
position = "dodge") +
scale_fill_manual(values = c("Female" = "#F4A7B9", "Male" = "#7FB3D3")) +
labs(
title = "Κατανομή Βαθμού Εθισμού ανά Φύλο",
x = "Addicted Score",
y = "Αριθμός Φοιτητών",
fill = "Φύλο"
) +
theme_minimal()
Το position = "dodge" τοποθετεί τις μπάρες δίπλα-δίπλα
ώστε να συγκρίνεις άμεσα γυναίκες και άνδρες σε κάθε βαθμίδα εθισμού.
Παρατηρείται τάση υψηλότερου score (7–9) σε ορισμένες ομάδες. Τέλος
παρατηρείται ότι οι άνδρες έχουν μεγαλύτερο ποσοστό εθισμού από τις
γυναίκες.
students_data %>%
count(Most_Used_Platform) %>%
arrange(desc(n)) %>%
ggplot(aes(x = reorder(Most_Used_Platform, n), y = n, fill = Most_Used_Platform)) +
geom_bar(stat = "identity", show.legend = FALSE) +
geom_text(aes(label = n), hjust = -0.3, size = 4) +
coord_flip() +
labs(
title = "Δημοφιλέστερες Πλατφόρμες Social Media",
x = "Πλατφόρμα",
y = "Αριθμός Φοιτητών"
) +
theme_minimal()
Το reorder() ταξινομεί τις μπάρες κατά φθίνουσα σειρά
για καλύτερη αναγνωσιμότητα. Αναμένεται
το Instagram και το TikTok να
κυριαρχούν, ιδιαίτερα στους νεότερους φοιτητές.