Περιγραφή του dataset και της πηγής του

Το 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 αναζητά συνεχώς δεδομένα συμπεριφοράς χρηστών. Πιο συγκεκριμένα:

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 αποτελείται από τις εξής μεταβλητές:

Υπολογισμός και παρουσίαση περιγραφικών στατιστικών:

# Επιλογή μόνο των αριθμητικών μεταβλητών
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)

# Δημιουργία του 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 μειώνεται καθώς ανεβαίνει το ακαδημαϊκό επίπεδο, πιθανώς λόγω αυξημένων υποχρεώσεων.​

Διάγραμμα Histogram

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) σε ορισμένες ομάδες. Τέλος παρατηρείται ότι οι άνδρες έχουν μεγαλύτερο ποσοστό εθισμού από τις γυναίκες.

Διάγραμμα Bar Chart

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 να κυριαρχούν, ιδιαίτερα στους νεότερους φοιτητές.