Στατισιτκά Προγράμματα II

Μάθημα 1: Εισαγωγή

Αλέξανδρος Ρέκκας

2026-03-17

Στόχοι του Μαθήματος

Θα εστιάσουμε σε:

  1. Δυνατότητα αναπαραγωγής των αποτελεσμάτων (Reproducibility): Ο κώδικας να τρέχει παντού, όχι μόνο στο δικό μας μηχάνημα.
  2. Ροές εργασίας (Workflows): Αποδοτική διαχείριση projects.
  3. Μοντέρνες τεχνικές: tidyverse, purrr, ggplot2
  4. Παρουσίαση: Δημιουργία αναφορών και παρουσιάσεων υψηλής ποιότητας.

Έλεγχος προγραμματιστικού περιβάλλοντος

Θα χρησιμοποιήσουμε το πακέτο renv το οποίο:

  1. Δημιουργεί μια απομονωμένη βιβλιοθήκη για κάθε project.
  2. Καταγράφει τις ακριβείς εκδόσεις στο renv.lock.


# Ενεργοποίηση στο project
renv::init()

# Εγκατάσταση πακέτων

renv::install()

# Αποθήκευση κατάστασης βιβλιοθηκών
renv::snapshot()

# Ανάκτηση περιβάλλοντος (σε άλλο υπολογιστή)
renv::restore()

Καθαρισμός και επεξεργασία των δεδομέων

Θα χρησιμοποιήσουμε τη συλλογή βιβλιοθηκών tidyverse που μοιράζονται κοινή φιλοσοφία σχεδιασμού:

  • dplyr: Γραμματική επεξεργασίας δεδομένων.
  • tidyr: Αναδιάταξη για “καθαρά” (tidy) δεδομένα.
  • stringr: Διαχείριση κειμένου.

Σημείωση

Θα χρησιμοποιούμε εκτενώς τον pipe operator |> (και όχι τον %>%) για να γράφουμε ευανάγνωστο κώδικα.

Δημιουργία γραφημάτων

ggplot2: The Grammar of Graphics

Βασικά Συστατικά:

  • Data: Τα δεδομένα μας.
  • Aesthetics (aes): Τι βλέπουμε (x, y, color).
  • Geoms: Το είδος (points, bars).

data |> 
  ggplot2::ggplot(ggplot2::aes(x = displ, y = hwy)) +
  ggplot2::geom_point(ggplot2::aes(color = class)) +
  ggplot2::geom_smooth() +
  ggplot2::theme_minimal()

Συναρτησιακός προγραμματισμός

  • Το πακέτο purrr για συναρτησιακό προγραμματισμό
  • Η R είναι μια συναρτησιακή γλώσσα. Στόχος μας είναι να αποφύγουμε τα περίπλοκα:
final_data <- data.frame()

for (i in seq_along(files)) {
  temp <- read_csv(files[i])
  final_data <- rbind(final_data, temp) 
}


final_data <- files |> 
  purrr::map(readr::read_csv) |> 
  purrr::list_rbind()

Η λογική του Map: Αντί να γράφουμε λούπες, “χαρτογραφούμε” μια συνάρτηση πάνω σε μια λίστα δεδομένων.

Δημιουργία αναφορών

  • Το Quarto είναι η εξέλιξη του Rmarkdown:
  • Ενοποιεί κείμενο, κώδικα και αποτελέσματα.
  • Παράγει: HTML, PDF, Word, e-books και παρουσιάσεις.
  • Ο κώδικας και η ανάλυση πρέπει να ζουν μαζί σε ένα ζωντανό έγγραφο.