Έκδοση: 02 / 05 / 2024

Προετοιμασία περιβάλλοντος R
Οι παρακάτω εντολές, ελέγχουν αν έχουν εγκατασταθεί τα απαιτούμενα πακέτα για την εκτέλεση του συνόλου του κώδικα της ενότητας.

list.of.packages <- c("expss", "RColorBrewer", "plotrix", "dplyr", "ggplot2", "moments", "xtable", "gplots", "htmlTable", "purrr")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)

Όλες οι συναρτήσεις που χρησιμοποιούνται στην ενότητα αυτή βρίσκονται στο αρχείο της γλώσσας R: MyRFunctions.R.

Για να γίνουν διαθέσιμες για χρήση αρκεί να φορτωθούν στο περιβάλλον της R, εκτελώντας την εντολή

source("https://utopia.duth.gr/epdiaman/files/kedivim/MyRFunctions.R")

(Στην περίπτωση όπου γίνει λήψη τοπικά το αρχείο MyRFunctions.R, πρέπει να αλλαξει ανάλογα και η διεύθυνση του αρχείου)

1 Διαθέσιμα χρώματα

Η επιλογή κατάλληλων χρωμάτων για ένα διάγραμμα δεν είναι εύκολη υπόθεση. Ένας πλήρης κατάλογος με τα χρώματα που μπορούν να χρησιμοποιηθούν είναι διαθέσιμος εδώ. Επιπλέον, η R προσφέρει πολλές βιβλιοθήκες που επιλέγουν έτοιμους κατάλληλους χρωματικούς συνδυασμούς. Ένα παράδειγμα είναι η βιβλιοθήκη RColorBrewer. Το σύνολο των διαθέσιμων παλετών μπορεί να αναπαραχθεί με τον παρακάτω κώδικα

library(RColorBrewer)
par(mar=c(0,3,0,0))
display.brewer.all()

Η επιλογή ενός αριθμού χρωμάτων από μία παλέτα μπορεί να γίνει με τις παρακάτω εντολές:

cols = brewer.pal(5, name = "Set2")
print(cols)
## [1] "#66C2A5" "#FC8D62" "#8DA0CB" "#E78AC3" "#A6D854"

2 Περιγραφή μίας ποιοτικής μεταβλητής

Ρωτήθηκαν 20 νέοι για το αγαπημένο τους πρωινό και οι αποκρίσεις τους καταχωρήθηκαν ως το διάνυσμα breakfast στην R:

breakfast = c("Τοστ", "Τοστ", "Τοστ", "Καφέ", "Καφέ", "Αυγά", "Δημητριακά", "Τοστ", "Δημητριακά", "Δημητριακά", "Αυγά", "Δημητριακά", "Καφέ", "Καφέ", "Αυγά", "Καφέ", "Καφέ", "Αυγά", "Δημητριακά", "Δημητριακά")

2.1 Περιγραφικά στατιστικά για μία ποιοτική μεταβλητή

Για την παρουσίαση των τιμών μίας ποιοτικής μεταβλητής, ο πίνακας συχνοτήτων είναι η κατάλληλη επιλογή. Υπάρχει μεγάλη ποικιλία μεθόδων για τη δημιουργία ενός πίνακα συχνοτήτων. Στη συνέχεια, θα εφαρμοστεί η συνάρτηση my_frequency_table η οποία αποδίδει πίνακα συχνοτήτων τόσο για μεμονωμένο διάνυσμα τιμών όσο και για πολλές μεταβλητές ενός dataframe.

one.table = my_frequency_table(breakfast)
one.table$data
data
Value  Count   Valid percent   Percent   Responses, %   Cumulative responses, % 
 Αυγά  4 20 20 20 20
 Δημητριακά  6 30 30 30 50
 Καφέ  6 30 30 30 80
 Τοστ  4 20 20 20 100
 #Total  20 100 100 100
 <NA>  0 0

Μεταφορά του πίνακα σε έγγραφο κειμένου MS Word ή LibreOffice Writer
Το αποτέλεσμα της εντολής my_frequency_table, αποδίδει πίνακα που μπορεί να αντιγραφεί απευθείας σε έγγραφο κειμένου, διατηρώντας τη δομή του. Στη συνέχεια, στον κειμενογράφο απομένει να γίνουν περαιτέρω αισθητικές παρεμβάσεις.

2.2 Διαγράμματα για μία ποιοτική μεταβλητή

2.2.1 Ραβδόγραμμα

Για τη δημιουργία ραβδογράμματος συχνοτήτων μπορεί να χρησιμοποιηθεί η συνάρτηση my_bar_plot.

my_bar_plot(breakfast, colorbars = TRUE)

Εναλλακτικά, είναι δυνατή και η χρήση της συνάρτησης my_bar_plot2.

my_bar_plot2(breakfast)

Στο ίδιο στυλ, το ποσοστιαίο ραβδόγραμμα μπορεί να υλοποιηθεί με τη συνάρτηση my_bar_plot_percent.

my_bar_plot_percent(breakfast)

Μεταφορά του διαγράμματος σε έγγραφο κειμένου MS Word ή LibreOffice Writer
Η εξαγωγή του διαγράμματος σε ξεχωριστό αρχείο περιγράφεται στην παρατήρηση Αποθήκευση ενός γραφήματος σε αρχείο.

2.2.2 Κυκλικό διάγραμμα

Δύο συναρτήσεις που αξιοποιούν τη βιβλιοθήκη RColorBrewer για να δημιουργήσουν ευπαρουσίαστα κυκλικά διαγράμματα σε 2 ή 3 διαστάσεις είναι οι nice_pie_plot και nice_pie_3dplot.

`

Ακολουθούν ορισμένα παραδείγματα εφαρμογής των συναρτήσεων nice_pie_plot, nice_pie_3dplot.
Παράδειγμα 1

educational.level = as.factor(c(rep("Δευτεροβάθμια", 13), rep('AEI', 40), rep('Μεταπτυχιακό', 25), rep('Διδακτορικό', 5)))
my_pie_plot(educational.level, main = 'Μορφωτικό Επίπεδο')

my_pie_3dplot(educational.level, main = 'Μορφωτικό Επίπεδο')

Μεταφορά του διαγράμματος σε έγγραφο κειμένου MS Word ή LibreOffice Writer
Η εξαγωγή του διαγράμματος σε ξεχωριστό αρχείο περιγράφεται στην παρατήρηση Αποθήκευση ενός γραφήματος σε αρχείο.

3 Περιγραφή δύο ποιοτικών μεταβλητών

Είναι πολύ συνηθισμένο να υπάρχουν δύο ή περισσότερες ποιοτικές μεταβλητές σε ένα σύνολο δεδομένων οι οποίες να σχετίζονται με την ίδια ερευνητική υπόθεση. Στην περίπτωση αυτή, πριν από τις στατιστικές μεθόδους η σχέση τους αυτή αρμόζει να περιγραφεί με έναν διμεταβλητό πίνακας συχνοτήτων (contingency table) ή ένα κατάλληλο διάγραμμα.

sample.data <- tibble(
  success = factor(c(1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1), levels = c(0, 1), labels = c("Αποτυχία", "Επιτυχία")),
  gender = factor(c(0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), levels = c(0, 1), labels = c("Γυναίκα", "Άνδρας")),
  residence = factor(c(1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1), levels = c(0, 1), labels = c("Μικρή πόλη", "Μεγάλη πόλη")),
  married = factor(c(0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1), levels = c(0, 1), labels = c("Άλλο", "Παντρεμένος/η"))
)
library(Hmisc)
label(sample.data$success) = 'Επιτυχία'
label(sample.data$gender) = 'Φύλο'
label(sample.data$residence) = 'Τόπος Κατοικίας'
label(sample.data$married) = 'Οικογενειακή κατάσταση'

print(sample.data)
## # A tibble: 12 × 4
##    success  gender  residence   married      
##    <fct>    <fct>   <fct>       <fct>        
##  1 Επιτυχία Γυναίκα Μεγάλη πόλη Άλλο         
##  2 Επιτυχία Γυναίκα Μεγάλη πόλη Παντρεμένος/η
##  3 Αποτυχία Άνδρας  Μεγάλη πόλη Άλλο         
##  4 Επιτυχία Γυναίκα Μικρή πόλη  Παντρεμένος/η
##  5 Επιτυχία Άνδρας  Μεγάλη πόλη Παντρεμένος/η
##  6 Επιτυχία Γυναίκα Μικρή πόλη  Άλλο         
##  7 Αποτυχία Άνδρας  Μεγάλη πόλη Παντρεμένος/η
##  8 Επιτυχία Γυναίκα Μεγάλη πόλη Παντρεμένος/η
##  9 Επιτυχία Άνδρας  Μεγάλη πόλη Άλλο         
## 10 Αποτυχία Γυναίκα Μεγάλη πόλη Παντρεμένος/η
## 11 Επιτυχία Άνδρας  Μικρή πόλη  Άλλο         
## 12 Επιτυχία Γυναίκα Μεγάλη πόλη Παντρεμένος/η

3.1 Διμεταβλητός (ή πολυμεταβλητός) πίνακας συχνοτήτων

Παράδειγμα 1
Για τη δημιουργία ενός διμεταβλητού πίνακα συχνοτήτων, εκτελούμε την εντολή:

cont.table = table(sample.data$gender,sample.data$success)
cont.table.full = addmargins(cont.table)
print(cont.table.full)
##          
##           Αποτυχία Επιτυχία Sum
##   Γυναίκα        1        6   7
##   Άνδρας         2        3   5
##   Sum            3        9  12

Αν επιθυμούμε ο πίνακας να περιέχει ποσοστά, επιπλέον εκτελούμε:

cont.table.prop = prop.table(cont.table)
cont.table.prop.full = addmargins(round(cont.table.prop*100, 1))
print(cont.table.prop.full)
##          
##           Αποτυχία Επιτυχία   Sum
##   Γυναίκα      8.3     50.0  58.3
##   Άνδρας      16.7     25.0  41.7
##   Sum         25.0     75.0 100.0

Εναλλακτικά, μπορεί να χρησιμοποιηθεί απευθείας η συνάρτηση my_contigency_table.

my_contigency_table(sample.data, c('gender', 'success'))
Cross tabulation of Φύλο, Επιτυχία
success  
Αποτυχία Επιτυχία   Sum
gender
  Γυναίκα 1 6   7
  Άνδρας 2 3   5
  Sum 3 9   12
my_contigency_table(sample.data, c('gender', 'success', 'residence'))
Cross tabulation of Φύλο, Επιτυχία, Τόπος Κατοικίας
success_residence  
Αποτυχία_Μικρή πόλη Αποτυχία_Μεγάλη πόλη Επιτυχία_Μικρή πόλη Επιτυχία_Μεγάλη πόλη   Sum
gender
  Γυναίκα 0 1 2 4   7
  Άνδρας 0 2 1 2   5
  Sum 0 3 3 6   12
my_contigency_table(sample.data, c('gender', 'success', 'residence', 'married'), row.vars = c(1, 3))
Cross tabulation of Φύλο, Επιτυχία, Τόπος Κατοικίας, Οικογενειακή κατάσταση
success_married  
Αποτυχία_Άλλο Αποτυχία_Παντρεμένος/η Επιτυχία_Άλλο Επιτυχία_Παντρεμένος/η   Sum
gender_residence
  Γυναίκα_Μικρή πόλη 0 0 1 1   2
  Γυναίκα_Μεγάλη πόλη 0 1 1 3   5
  Άνδρας_Μικρή πόλη 0 0 1 0   1
  Άνδρας_Μεγάλη πόλη 1 1 1 1   4
  Sum 1 2 4 5   12

3.2 Διαγράμματα δύο ποιοτικών μεταβλητών

Μία απλή επιλογή είναι το διάγραμμα τύπου “μωσαϊκό”.

mosaicplot(cont.table, cex = 1.1, main = "Διάγραμμα συμπτώσεων μεταξύ φύλου και επιτυχίας", xlab = "Φύλο", ylab = "Επιτυχία")

Εναλλακτικά, η συνάρτηση my_stack_plot προσφέρει τη δυνατότητα δημιουργίας κατάλληλων διαγραμμάτων.

my_stack_plot(sample.data, 'gender', 'success', type = 1, size = 20)

my_stack_plot(sample.data, 'gender', 'success', type = 2)

Στην περίπτωση που είναι επιθυμητό το διάγραμμα να είναι οριζόντιο, αρκεί να προστεθεί η παράμετρος flip.plot = TRUE.

my_stack_plot(sample.data, 'gender', 'success', type = 3, flip.plot = TRUE)

Μεταφορά του διαγράμματος σε έγγραφο κειμένου MS Word ή LibreOffice Writer
Η εξαγωγή του διαγράμματος σε ξεχωριστό αρχείο περιγράφεται στην παρατήρηση Αποθήκευση ενός γραφήματος σε αρχείο.

4 Περιγραφή ομάδας δίτιμων μεταβλητών

Πολλές φορές σε ένα σύνολο δεδομένων υπάρχουν πολλές δίτιμες μεταβλητές που εκφράζουν χαρακτηριστικά ενός αντικειμένου. Στην περίπτωση αυτή είναι επιθυμητή η συλλογική περιγραφή των στοιχείων με κατάλληλους πίνακες ή διαγράμματα. Η συνάρτηση my_tab_fun μπορεί να βοηθήσει να δημιουργηθεί ένας τέτοιος πίνακας.
(Πηγή: https://stackoverflow.com/questions/69031717/horizontal-table-for-many-variables-with-the-same-categories)

Ακολουθεί ένα παράδειγμα εφαρμογής:

data.for.plot = data.frame(Χαρακτηριστικό1 = c(0, 0, 0, 1, 1, 0), Χαρακτηριστικό2 = c(1, 0, 1, 0, 0, 1), Χαρακτηριστικό3 = c(1, 1, 1, 0, 1, 0))
my_tab_fun(data.for.plot)
##                 X0 X1 Sum
## Χαρακτηριστικό1  4  2   6
## Χαρακτηριστικό2  3  3   6
## Χαρακτηριστικό3  2  4   6

Στη συνέχεια με τη συνάρτηση my_binary_vars_plot, μπορουν τα ίδια δεδομένα να αναπαρασταθούν γραφικά.

Παράδειγμα 1

data.for.plot = data.frame(Χαρακτηριστικό1 = c(0, 0, 0, 1, 1, 0), Χαρακτηριστικό2 = c(1, 0, 1, 0, 0, 1), Χαρακτηριστικό3 = c(1, 1, 1, 0, 1, 0))
my_binary_vars_plot(data.for.plot, xlab = 'Χαρακτηριστικό', labels = colnames(data.for.plot) )

5 Περιγραφή μίας ποσοτικής μεταβλητής

Η κατανομή μίας ποσοτικής μεταβλητής περιγράφεται από τα γεωμετρικά της χαρακτηριστικά, όπως είναι το κέντρο της, η διασπορά της, η τυπική της απόκλιση, η συμμετρία της και η κυρτότητά της.

Μία πολύ καλή γεωμετρική αναπαράσταση της τυπικής απόκλισης και του τρόπου που αυτή μεταβάλλεται σε ένα πλήθος 16 παρατηρήσεων είναι διαθέσιμη εδώ: https://www.geogebra.org/m/y2Hz5uAp .

Η αναπαράσταση των γεωμετρικών χαρακτηριστικών της συμμετρίας και της κυρτότητας είναι δυνατόν να γίνει αντιληπτή από τις θεωρητικές κατανομές πιθανότητες. Ένα αρχείο (LibreOffice Calc) που μπορεί να χρησιμοποιηθεί για το σκοπό αυτό είναι διαθέσιμο εδώ: https://utopia.duth.gr/epdiaman/files/kedivim/geometric_characteristics.ods

Η πλήρης περιγραφή μίας κατανομής απαιτεί και τα 4 χαρακτηριστικά. Ενδεικτικά, στο παρακάτω διάγραμμα εμφανίζονται 4 κατανομές με ίδιο κέντρο (10) και διαφορετικά τα υπόλοιπα χαρακτηριστικά.

Παράδειγμα
Η μέση βαθμολογία των γραπτών εξετάσεων 100 μαθητών καταχωρήθηκαν στην R, στη μεταβλητή score.

score = c(15.6, 18.4, 13.0, 16.8, 15.0, 17.8, 8.4, 19.0, 12.0, 17.6,
          14.6, 17.4, 13.6, 18.2, 15.8, 10.8, 16.4, 19.2, 14.2, 18.0,
          17.0, 12.6, 15.4, 11.6, 18.6, 13.8, 16.0, 14.8, 19.4, 13.2,
          16.2, 14.4, 18.8, 13.4, 15.2, 11.0, 16.6, 11.8, 19.6, 14.0,
          17.2, 12.2, 19.8, 12.8, 9.4, 10.4, 9.0, 10.0, 11.0, 12.0,
          13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 19.6, 18.8,
          17.4, 16.4, 15.2, 14.2, 13.2, 12.2, 11.2, 10.2, 9.2, 8.2,
          7.2, 6.2, 5.2, 4.2, 3.2, 2.2, 1.2, 0.2, 1.0, 2.0)

Η μέση τιμή, η τυπική απόκλιση, το 95% διάστημα εμπιστοσύνης και μία ανάφορά για τις απούσες τιμές, μπορούν να υπολογιστούν με τη συνάρτηση my_mean_sd

my_mean_sd(score) 
## [1] "M = 13.4 (4.94), 95% C.I. 12.3 - 14.4"

Μία σύντομη επεξήγηση για το 95% Διάστημα Εμπιστοσύνης (Confidence Interval)
Το δείγμα των 10 τιμών της perform.A είναι ένα από τα πολλά δείγματα μεγέθους 10 που μπορούμε να πάρουμε από τον πληθυσμό. Για κάθε ένα από αυτά τα δείγματα είναι δυνατόν να υπολογίσουμε ένα διάστημα εμπιστοσύνης. Αυτό θεωρείται ως μία εκτίμηση σε διάστημα για την άγνωστη μέση τιμή του πληθυσμού γιατί έχει την εξής ιδιότητα:

Για κάθε 100 δείγματα μεγέθους 10, το διάστημα αυτό αναμένεται στις 95 φορές να περιέχει την άγνωστη μέση τιμή του πληθυσμού.

Φανερά, η παραπάνω ιδιότητα είναι ασυμπτωτική, δηλαδή μπορεί να μας δώσει σημαντικές πληροφορίες για την άγνωστη μέση τιμή μόνο αν πάρουμε μεγάλο πλήθος δειγμάτων. Ωστόσο, έχει επικρατήσει στη Στατιστική να υπολογίζεται το διάστημα εμπιστοσύνης για ένα μόνο δείγμα και να το αναφέρουμε ως εκτίμηση σε διάστημα για την άγνωστη μέση τιμή του πληθυσμού από τον οποίο προήλθε το εν λόγω δείγμα.

Μία πολύ καλή και διδακτική αναπαράσταση είναι διαθέσιμη εδώ: https://www.zoology.ubc.ca/~whitlock/Kingfisher/CIMean.htm

Σε περίπτωση όπου είναι επιθυμητή η περιγραφή πολλών μεταβλητών τότε μπορεί να χρησιμοποιηθεί η συνάρτηση my_explore_vars.

perform.A = c(63.3, 68.3, 86.7, 52.8, 75, 58, 69.5, 32.7, 60.9, 58.2)
perform.B = c(72.8, 88.2, 80.8, 71.3, 81.5, 47.6, 81, 81.4, 83, 76)
perform.C = c(82.3, 89.7, 81, 85.1, 74.1, 75.9, 74.7, 81.1, 76.4, 81.8)
my.df = data.frame(perform.A, perform.B, perform.C)
my_explore_vars(my.df) 
Descriptive statistics of perform.A, perform.B, perform.C
Variable N Missing Valid M (SD) CI95
1 perform.A 10 0 10 62.5 (14.3) 52.3 - 72.8
2 perform.B 10 0 10 76.4 (11.3) 68.3 - 84.4
3 perform.C 10 0 10 80.2 (4.98) 76.6 - 83.8

5.1 Γραφική αναπαράσταση κατανομής

Για την γραφική αναπαράσταση των δεδομένων περιγράφεται η δημιουργία:
• Θηκογράμματος
• Ιστογράμματος

5.1.1 Θηκόγραμμα (Boxplot)

Το θηκόγραμμα είναι ένα απλό γράφημα που δημιουργείται από τους αριθμούς:
• Μέγιστη τιμή
• Τρίτο τεταρτημόριο (Q3)
• Διάμεσος
• Πρώτο τεταρτημόριο (Q1)
• Ελάχιστη τιμή.
Αποτελείται από ένα ορθογώνιο που ξεκινά από το Q1 και τελειώνει στο Q3, άρα έχει ύψος ίσο με το ενδοτεταρτημοριακό εύρος Q3 - Q1, το οποίο δείχνει το εύρος μέσα στο οποίο βρίσκονται οι μισές από τις παρατηρήσεις. Η διάμεσος σχεδιάζεται ως μία έντονη γραμμή ενώ επιπλέον, έχει δύο ευθύγραμμα τμήματα που ξεκινούν από το μέσο της πλευράς του ορθογωνίου και τελειώνουν στη μέγιστη και στην ελάχιστη τιμή. Ένας προσεκτικός αναγνώστης με την παρατήρηση του θηκογράμματος μπορεί να αντιληφθεί τη μορφή της κατανομής των τιμών. Το θηκόγραμμα χρησιμοποιείται για την ανίχνευση ιδιαζόντων (outliers) και ακραίων (extreme) τιμών, καθώς πάνω σε αυτό σημειώνονται με ειδικό τρόπο οι παρατηρήσεις που είναι πολύ μικρές είτε πολύ μεγάλες.
Στη γλώσσα R, το θηκόγραμμα δημιουργείται με την εντολή boxplot.

boxplot(score, col = c("salmon3"), main = 'Θηκόγραμμα βαθμολογιών')

5.1.2 Ιστόγραμμα Συχνοτήτων

Στην R, το ιστόγραμμα συχνοτήτων μπορεί να δημιουργηθεί με την εντολή hist.

H = hist(score, breaks = c(0, 2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20), plot = FALSE)
plot(H, labels = TRUE, ylim=c(0, 1.2*max(H$counts)), col = 'skyblue3', main = "Ιστόγραμμα συχνοτήτων", ylab = "Συχνότητα", xlab = "Βαθμολογία")

5.1.3 Ιστόγραμμα Σχετικών Συχνοτήτων

Με τη συνάρτηση my_histPercent παίρνουμε ένα αντίστοιχο ιστόγραμμα σχετικών συχνοτήτων.

Το διάγραμμα που δημιουργείται είναι το παρακάτω:

my_histPercent(score, xlab = "Βαθμός", breaks = c(0, 2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20))

Μεταφορά του διαγράμματος σε έγγραφο κειμένου MS Word ή LibreOffice Writer
Η εξαγωγή του διαγράμματος σε ξεχωριστό αρχείο περιγράφεται εδώ.

5.2 Συμμετρία μίας κατανομής (Skewness)

Μία κατανομή συχνοτήτων (ή σχετικών συχνοτήτων) ονομάζεται συμμετρική όταν είναι φανερό πως υπάρχει ένας κατακόρυφος άξονας ο οποίος λειτουργεί ως καθρέπτης της μισής κατανομής στην άλλη μισή. Στη γλώσσα R, η διαφοροποίηση της κατανομής από την υπόθεση της συμμετρίας εκφράζεται με τον συντελεστή ασυμμετρίας που υπολογίζεται με την εντολή skewness του πακέτου moments.

library(moments)
skewness(score)
## [1] -0.9575063

Παρατηρούμε, πως ο συντελεστής ασυμμετρίας της βαθμολογίας είναι 0,48, δηλαδή πως η κατανομή είναι αριστερά ασύμμετρη, γεγονός που επιβεβαιώνεται και από το ιστόγραμμα των τιμών.

library(sjPlot)
library(ggplot2)
library(Hmisc)

set_theme(base = theme_light())

vector1 <- rnorm(length(score), mean = mean(score), sd = sd(score))
label(vector1) = "N(mean(score), var(score))"
label(score) = "Score"

plot1 = plot_frq(vector1, type = "hist", show.mean = TRUE)
plot2 = plot_frq(score, type = "hist", show.mean = TRUE)

require(gridExtra)
grid.arrange(plot1, plot2, ncol=2)

5.3 Κυρτότητα μίας κατανομής (Kurtosis)

Η κανονική κατανομή είναι το μέτρο σύγκρισης για την κυρτότητα μίας κατανομής. Αν κάποια κατανομή έχει περισσότερο «οξεία» κορυφή από αυτή της κανονικής κατανομής τότε ονομάζεται λεπτόκυρτη, ενώ όταν έχει περισσότερο “πλατιά” κορυφή τότε ονομάζεται πλατύκυρτη. Η κυρτότητα μίας κατανομής αποτυπώνεται στην τιμή του συντελεστή κυρτότητας του Pearson.
Αποδεικνύεται πως στην κανονική κατανομή ο παραπάνω συντελεστής είναι ίσος με τον αριθμό 3. Στην περίπτωση της πλατύκυρτης κατανομής παίρνει τιμές μεγαλύτερες του 3 ενώ στην περίπτωση της λεπτόκυρτης κατανομής παίρνει τιμές μικρότερες του 3.

Στη γλώσσα R, ο συντελεστής κυρτότητας υπολογίζεται με την εντολή kurtosis του πακέτου moments.

library(moments)
kurtosis (score)
## [1] 3.346505

Παρατηρούμε, ότι ο συντελεστής ασυμμετρίας της βαθμολογίας είναι 3,34, δηλαδή πως η κατανομή των βαθμών έχει κυρτότητα μεγαλύτερη από αυτήν της κανονικής κατανομής.

6 Περιγραφή μίας ποσοτικής μεταβλητής μεταξύ των επιπέδων μίας ποιοτικής μεταβλητής

Μία συνηθισμένη ανάγκη σε μία στατιστική ανάλυση είναι η περιγραφή των τιμών μίας ποσοτικής μεταβλητής μεταξύ των επιπέδων μίας ποιοτικής μεταβλητής.

Παράδειγμα
Μια επιχείρηση επιχειρώντας να βρει την απαραίτητη διάρκεια εκπαίδευσης των πωλητών της για την προώθηση ενός νέου προϊόντος επιλέγει με τυχαίο τρόπο 31 πωλητές τους οποίους χωρίζει σε τρεις ομάδες (Α, n = 34), (Β, n = 34), (Γ, n = 32), τους εκπαιδεύει για 1, 2 και 3 ημέρες αντίστοιχα και παρακολουθεί τις πωλήσεις τους τον επόμενο μήνα. Τα δεδομένα καταχωρούνται στην R με τον παρακάτω κώδικα.

group.data = factor(rep(c(1, 2, 3), each = 34)[1:100], levels = c(1, 2, 3), labels = c("Ομάδα Α", "Ομάδα Β", "Ομάδα Γ"))

sales.data <- data.frame(
  employeeID = 1:100,
  group = group.data,
  sales = c(130, 45, 80, 110, 60, 75, 100, 35, 120, 90,
    140, 55, 70, 95, 40, 85, 130, 50, 110, 75,
    120, 65, 90, 130, 55, 75, 100, 45, 80, 110,
    140, 60, 85, 120, 50, 70, 95, 35, 100, 130,
    110, 65, 75, 120, 40, 90, 55, 70, 140, 85,
    75, 50, 100, 45, 80, 130, 60, 110, 95, 35,
    140, 70, 120, 55, 90, 75, 85, 40, 130, 100,
    110, 45, 60, 95, 70, 50, 80, 75, 140, 35,
    120, 85, 130, 55, 100, 70, 40, 90, 110, 60,
    75, 95, 50, 120, 35, 80, 140, 45, 110, 85)
)

Hmisc::label(sales.data$group) = 'Ομάδα'
Hmisc::label(sales.data$sales) = 'Πωλήσεις'

print(sales.data)
##     employeeID   group sales
## 1            1 Ομάδα Α   130
## 2            2 Ομάδα Α    45
## 3            3 Ομάδα Α    80
## 4            4 Ομάδα Α   110
## 5            5 Ομάδα Α    60
## 6            6 Ομάδα Α    75
## 7            7 Ομάδα Α   100
## 8            8 Ομάδα Α    35
## 9            9 Ομάδα Α   120
## 10          10 Ομάδα Α    90
## 11          11 Ομάδα Α   140
## 12          12 Ομάδα Α    55
## 13          13 Ομάδα Α    70
## 14          14 Ομάδα Α    95
## 15          15 Ομάδα Α    40
## 16          16 Ομάδα Α    85
## 17          17 Ομάδα Α   130
## 18          18 Ομάδα Α    50
## 19          19 Ομάδα Α   110
## 20          20 Ομάδα Α    75
## 21          21 Ομάδα Α   120
## 22          22 Ομάδα Α    65
## 23          23 Ομάδα Α    90
## 24          24 Ομάδα Α   130
## 25          25 Ομάδα Α    55
## 26          26 Ομάδα Α    75
## 27          27 Ομάδα Α   100
## 28          28 Ομάδα Α    45
## 29          29 Ομάδα Α    80
## 30          30 Ομάδα Α   110
## 31          31 Ομάδα Α   140
## 32          32 Ομάδα Α    60
## 33          33 Ομάδα Α    85
## 34          34 Ομάδα Α   120
## 35          35 Ομάδα Β    50
## 36          36 Ομάδα Β    70
## 37          37 Ομάδα Β    95
## 38          38 Ομάδα Β    35
## 39          39 Ομάδα Β   100
## 40          40 Ομάδα Β   130
## 41          41 Ομάδα Β   110
## 42          42 Ομάδα Β    65
## 43          43 Ομάδα Β    75
## 44          44 Ομάδα Β   120
## 45          45 Ομάδα Β    40
## 46          46 Ομάδα Β    90
## 47          47 Ομάδα Β    55
## 48          48 Ομάδα Β    70
## 49          49 Ομάδα Β   140
## 50          50 Ομάδα Β    85
## 51          51 Ομάδα Β    75
## 52          52 Ομάδα Β    50
## 53          53 Ομάδα Β   100
## 54          54 Ομάδα Β    45
## 55          55 Ομάδα Β    80
## 56          56 Ομάδα Β   130
## 57          57 Ομάδα Β    60
## 58          58 Ομάδα Β   110
## 59          59 Ομάδα Β    95
## 60          60 Ομάδα Β    35
## 61          61 Ομάδα Β   140
## 62          62 Ομάδα Β    70
## 63          63 Ομάδα Β   120
## 64          64 Ομάδα Β    55
## 65          65 Ομάδα Β    90
## 66          66 Ομάδα Β    75
## 67          67 Ομάδα Β    85
## 68          68 Ομάδα Β    40
## 69          69 Ομάδα Γ   130
## 70          70 Ομάδα Γ   100
## 71          71 Ομάδα Γ   110
## 72          72 Ομάδα Γ    45
## 73          73 Ομάδα Γ    60
## 74          74 Ομάδα Γ    95
## 75          75 Ομάδα Γ    70
## 76          76 Ομάδα Γ    50
## 77          77 Ομάδα Γ    80
## 78          78 Ομάδα Γ    75
## 79          79 Ομάδα Γ   140
## 80          80 Ομάδα Γ    35
## 81          81 Ομάδα Γ   120
## 82          82 Ομάδα Γ    85
## 83          83 Ομάδα Γ   130
## 84          84 Ομάδα Γ    55
## 85          85 Ομάδα Γ   100
## 86          86 Ομάδα Γ    70
## 87          87 Ομάδα Γ    40
## 88          88 Ομάδα Γ    90
## 89          89 Ομάδα Γ   110
## 90          90 Ομάδα Γ    60
## 91          91 Ομάδα Γ    75
## 92          92 Ομάδα Γ    95
## 93          93 Ομάδα Γ    50
## 94          94 Ομάδα Γ   120
## 95          95 Ομάδα Γ    35
## 96          96 Ομάδα Γ    80
## 97          97 Ομάδα Γ   140
## 98          98 Ομάδα Γ    45
## 99          99 Ομάδα Γ   110
## 100        100 Ομάδα Γ    85

6.1 Περιγραφικά στατιστικά

Η παρουσίαση των τιμών των πωλήσεων ανά εκπαιδευτική ομάδα μπορεί να γίνει με τη συνάρτηση my_explore_vars_by_group. Ενδεικτική εφαρμογή

my_explore_vars_by_group(sales.data, 'sales', 'group')
Descriptive Statistics of Πωλήσεις among levels of Ομάδα
Group N M (SD) 95% C.I.
1 34 87.4 (30.7) 76.6 - 98.1
2 34 81.9 (30.7) 71.2 - 92.6
3 32 83.9 (31.4) 72.6 - 95.2
Total 100 84.4 (30.7) 78.3 - 90.5
Tukeys HSD Post Hoc Test for variable: Πωλήσεις
The Tukey HSD is not a Post Hoc Test per se. It may provide valuable results as an independent test as well.
Difference Lower Upper p
2-1 -5.441 -23.292 12.41 0.749
3-1 -3.447 -21.574 14.681 0.893
3-2 1.994 -16.133 20.122 0.963

Σχόλιο για το 95% Διάστημα Εμπιστοσύνης (95% C.I.)
Το επίπεδο εμπιστοσύνης 95% έχει ευρεία χρήση στη Στατιστική ως μία εκτίμηση σε διάστημα για την άγνωστη μέση τιμή του πληθυσμού.

Ερμηνευεται ως εξής:

Εάν πάρουμε πολλά τυχαία δείγματα του ίδιου μεγέθους και δημιουργήσουμε ένα διάστημα εμπιστοσύνης από κάθε δείγμα, τότε 95 στα 100 διαστήματα αυτού του είδους θα περιέχουν την άγνωστη μέση τιμή του πληθυσμού.

6.2 Διαγράμματα

Τα ίδια δεδομένα σε διαγραμματική μορφή μπορεί να αναπαρασταθούν είτε με ένα ευθειόγραμμα είτε με ένα πολλαπλό ιστόγραμμα

6.2.1 Ευθειόγραμμα

Ένα ευθειόγραμμα μπορεί να δημιουργηθεί με τον παρακάτω κώδικα:

library(gplots)
plotmeans(sales~group,xlab="Ομάδα",ylab="Πωλήσεις", main="Πωλήσεις ανά ομάδα (95% C.I.)", data = sales.data)

Εναλλακτικά, μπορεί να χρησιμοποιηθεί και ο παρακάτω κώδικας (βιβλιοθήκη ggplot2)

data <- data.frame(
  Group = c(1, 2, 3),
  Mean_Sales = c(87.4, 81.9, 83.9),
  CI_Lower = c(76.6, 71.2, 72.6),
  CI_Upper = c(98.1, 92.6, 95.2)
)

ggplot(data, aes(x = Group, y = Mean_Sales)) +
  geom_line() +
  geom_point() +
  theme_bw() + ggtitle("theme_bw()") +
  geom_errorbar(aes(ymin = CI_Lower, ymax = CI_Upper), width = 0.2) +
  scale_x_continuous(breaks = c(1, 2, 3)) +
  geom_text(aes(label = Mean_Sales), vjust = -0.5, hjust = -0.7, size = 4) +
  labs(
    title = "Πωλήσεις ανά ομάδα (95% C.I.)",
    x = "Ομάδα",
    y = "Πωλήσεις"
  ) +
  theme(axis.text = element_text(size = 12)) 

Λίγα λόγια για το 95% διάστημα εμπιστοσύνης
Στο διάγραμμα που δημιουργήθηκε παρουσιάζονται οι μέσες τιμές των πωλήσεων για κάθε μία ομάδα όπως και το 95% διάστημα εμπιστοσύνης. Αυτό το διάστημα δίνει μία απλή απάντηση στην ερώτηση:
Θεωρώντας το δείγμα κάθε ομάδας ως αντιπροσωπευτικό του πληθυσμού που της αντιστοιχεί, που περιμένουμε να βρίσκεται η μέση τιμή των πωλήσεων για όλη την ομάδα;

Η παρουσίαση του 95% διαστήματος εμπιστοσύνης είναι μία καλή πρακτική, καθώς μεταφέρει στον αναγνώστη της έρευνας, τόσο την κατάσταση του δείγματος όσο και μία γενικότερη εκτίμηση για τον πληθυσμό που αντιπροσωπευεται από αυτόν.

6.2.2 Πολλαπλό ιστόγραμμα

Το πολλαπλό ιστόγραμμα προσφέρει τη δυνατότητα σύγκρισης δύο ή περισσότερων κατανομών. Είναι κατάλληλο για μεγάλο πλήθος παρατηρήσεων, άρα δεν αποτελεί την ιδανική επιλογή για τα δεδομένα πωλήσεων.

Η συνάρτηση hist_multiple μπορεί να χρησιμοποιηθεί για σκοπό αυτό.

7 Περιγραφή δύο ποσοτικών μεταβλητών

Για δύο ποσοτικές μεταβλητές η καλύτερη επιλογή για την οπτικοποίηση της σχέσης τους είναι το διάγραμμα διασποράς.

Παράδειγμα
Από ιστορικά στοιχεία 24 διαφημιστικών εκστρατειών, καταγράφηκε το μέγεθος της διαφήμισης για ένα προϊόν (μεταβλητή advert), όπως επίσης και οι τελικές πωλήσεις (μεταβλητή sales) αυτού του προϊόντος. Τα στοιχεία καταχωρούνται στις αντίστοιχες μεταβλητές με τις παρακάτω εντολές.

advert = c(4.69, 6.41, 5.47, 3.43, 4.39, 2.15, 1.54, 2.67, 1.24, 1.77, 4.46, 1.83, 5.15, 5.25, 1.72, 3.04, 4.92, 4.85, 3.13, 2.29, 4.9, 5.75, 3.61, 4.62)
sales = c(12.23, 11.84, 12.25, 11.1, 10.97, 8.75, 7.75, 10.5, 6.71, 7.6, 12.46, 8.47, 12.27, 12.57, 8.87, 11.15, 11.86, 11.07, 10.38, 8.71, 12.07, 12.74, 9.82, 11.51)
my.df = data.frame(advert, sales)

library(Hmisc)
Hmisc::label(my.df$advert) = "Διαφήμιση"
Hmisc::label(my.df$sales) = "Πωλήσεις"

Το διάγραμμα διασποράς προκύπτει με την εντολή:

library(sjPlot)
library(ggplot2)
set_theme(base = theme_light())
sjPlot::plot_scatter(my.df, advert, sales)

Στο διάγραμμα διασποράς, υπάρχουν 24 σημεία, ένα για κάθε μία από τις 24 παρατηρήσεις. Κάθε ένα σημείο έχει ως τετμημένη Χ τον αριθμό που αντιστοιχεί στη διαφημιστική δαπάνη (Διαφήμιση) ενώ τεταγμένη του είναι οι πωλήσεις του προϊόντος στη ανάλογη διαφημιστική περίοδο (Πωλήσεις).
Είναι εμφανές πως τα σημεία βρίσκονται «κοντά» σε κάποια ευθεία, γεγονός που ερμηνεύεται ως υψηλή αναλογικότητα μεταξύ των Χ και Y.

Η συσχέτιση μεταξύ των μεταβλητών ποσοτικοποιείται από το συντελεστή συσχέτισης του Pearson. Αυτός μπορεί να υπολογιστεί με την εντολή cor.test, ωστόσο μία πιο οργανωμένη παρουσίαση είναι δυνατή με τη συνάρτηση my_cor_table

my_cor_table(my.df, c('sales', 'advert'))
Pearson Correlation Coefficients (*:p<.05, **:p<.01, ***:p<.001)
Πωλήσεις Διαφήμιση
Πωλήσεις - .916***
Διαφήμιση .916*** -

Ο συντελεστής συσχέτισης αξιολείται σύμφωνα με τον παρακάτω πίνακα.

Μέτρο συντελεστή r Είδος σχέσης
\[0 ≤ |r| < 0,3\] Μη γραμμική σχέση
\[0,3 ≤ |r| < 0,7\] Ασθενής γραμμική σχέση \[0,3 ≤ r < 0,7\] Ασθενής θετική γραμμική σχέση
\[ \] \[-0,7 ≤ r < -0,3\] Ασθενής αρνητική γραμμική σχέση
\[0,7 ≤ |r| ≤ 1\] Ισχυρή γραμμική σχέση \[0,7 ≤ r ≤ 1\] Ισχυρή θετική γραμμική σχέση
\[-1 ≤ r ≤ -0,7\] Ισχυρή αρνητική γραμμική σχέση

Παρατηρούμε πως: r(24) = 0,916, p < 0,001, άρα επαληθεύεται η ισχυρή θετική γραμμική σχέση μεταξύ της διαφημιστικής δαπάνης και των πωλήσεων του προϊόντος που παρατηρήθηκε στο διάγραμμα διασποράς.

8 Παρατηρήσεις

8.1 Το θηκόγραμμα ως μέσο σύγκρισης δύο κατανομών

Το θηκόγραμμα είναι χρήσιμο για την οπτική σύγκριση δύο κατανομών. Ένα παράδειγμα που αναδεικνύει αυτή του την ιδιότητα είναι οι παρακάτω εντολές που δημιουργούν συγκριτικό θηκόγραμμα της βαθμολογίας δύο τμημάτων Α και Β.

scoreA = c(12, 14, 17, 13, 19, 28, 20, 9, 3, 6, 5, 11, 12, 17, 16, 8, 6, 2) 
scoreB = c(13, 4, 7, 3, 15, 38, 20, 9, 3, 6, 5, 11, 2, 27, 6, 8, 6, 2) 
boxplot(scoreA, scoreB, col = c("orange", "olivedrab"), horizontal = TRUE, names = c("Τμήμα A", "Τμήμα B"))

Από το τελευταίο διάγραμμα είναι εμφανές πως το τμήμα Α είναι καλύτερο από το τμήμα Β στο οποίο υπάρχουν δύο βαθμοί ιδιαίτερα μεγαλύτεροι από τους υπόλοιπους του τμήματος (ιδιάζοντες βαθμολογίες). Αυτές, οι βαθμολογίες μπορούν να εντοπιστούν με την εντολή

boxplot.stats(scoreB)$out
## [1] 38 27

8.2 Γεωμετρική ερμηνεία μέσης τιμής και τυπικής απόκλισης

Η μέση τιμή σε συνδυασμό με την τυπική απόκλιση δίνουν μια απλή και σύντομη εκτίμηση της κατανομής όλων των τιμών της μεταβλητής. Η εκτίμηση αυτή βασίζεται στην εμπειρική παρατήρηση πως οι τιμές μιας μεταβλητής θα βρίσκονται γύρω από τη μέση τιμή, σε απόσταση τριών τυπικών αποκλίσεων πριν και μετά τη μέση τιμή. Ποιο αναλυτικά:
• Σε απόσταση μίας τυπικής απόκλισης από τη μέση τιμή αναμένουμε να βρίσκεται το 68% των παρατηρήσεων.
• Σε απόσταση δύο τυπικών αποκλίσεων από τη μέση τιμή αναμένουμε να βρίσκεται το 95% των παρατηρήσεων.
• Σε απόσταση τριών τυπικών αποκλίσεων από τη μέση τιμή αναμένουμε να βρίσκεται το 99,6% των παρατηρήσεων.

Οι παραπάνω παρατηρήσεις καταδεικνύουν την ουσία της στατιστικής επιστήμης η οποία είναι η μετάδοση όσο το δυνατόν περισσότερων πληροφοριών σχετικά με ένα σύνολο αριθμών με τον περισσότερο σύντομο και εύληπτο τρόπο. Ιδιαίτερα για τις συνεχείς μεταβλητές, είναι απαραίτητο να αναφέρονται η μέση τιμή και τη τυπική απόκλιση κάποιας μεταβλητής καθώς με αυτά τα δύο μέτρα, ο αναγνώστης αποκτά τις βασικότερες πληροφορίες για τη μορφή της κατανομής.

8.3 Διαχείριση ακραίων παρατηρήσεων

Μία παρατήρηση χαρακτηρίζεται ως ακραία όταν είναι υπερβολικά μικρή ή υπερβολικά μεγάλη σε σχέση με τις υπόλοιπες παρατηρήσεις του δείγματος. Οι ακραίες παρατηρήσεις μίας μεταβλητής εντοπίζονται κυρίως με τους έξης δύο τρόπους:
• με τη μέση τιμή και την τυπική απόκλιση s: όλες οι παρατηρήσεις που βρίσκονται σε απόσταση μεγαλύτερη από 3∙s από τη μέση τιμή χαρακτηρίζονται ως ακραίες.
• με το θηκόγραμμα: οι παρατηρήσεις που βρίσκονται μακρύτερα από τον εσωτερικό φράκτη χαρακτηρίζονται ως ιδιάζουσες παρατηρήσεις (outliers) ενώ όσες βρίσκονται μακρύτερα από τον εξωτερικό φράκτη ονομάζονται ακραίες παρατηρήσεις (extreme values).
Ο χαρακτηρισμός μίας παρατήρησης ως ακραίας πρέπει να προβληματίσει τον ερευνητή, σχετικά με την ακρίβεια με την οποία μετρήθηκε ή καταγράφηκε η συγκεκριμένη παρατήρηση. Αν η μέτρηση και η καταγραφή δεν έχει σφάλμα τότε ο ερευνητής μπορεί να επιλέξει την εξαίρεση της από τη συνέχιση της ανάλυσης αναλαμβάνοντας και το αντίστοιχο κόστος ως προς τη γενίκευση του τελικού αποτελέσματος, καθώς θα περιορίσει το δείγμα του σε ένα υποσύνολο περισσότερο «βολικών» τιμών ως προς τις στατιστικές διαδικασίες εκτίμησης ή πρόβλεψης τιμών.

8.4 Καταγραφή περιγραφικών στατιστικών

Ως προς τα περιγραφικά στατιστικά υπάρχουν κάποιες συμβάσεις στην καταγραφή τους που υιοθετούνται από τα περισσότερα περιοδικά. Πιο συγκεκριμένα:
• M: Μέση τιμή (mean).
• SD: Τυπική απόκλιση (standard deviation).
• SE: Τυπικό σφάλμα (standard error).
Ως προς τους αριθμούς που εμφανίζονται σε μία δημοσίευση ή διατριβή αρκεί να παρουσιάζονται όσα δεκαδικά ψηφία είναι απαραίτητα για την σωστή ερμηνεία των αποτελεσμάτων. Αν ωστόσο ο συγγραφέας δεν είναι σίγουρος για την επιλογή του τότε μπορεί να συμβουλευθεί τον παρακάτω πίνακα:

Είδος αριθμού Δεκαδικά ψηφία που πρέπει να εμφανιστούν Παράδειγμα Παρουσίαση
Μεγαλύτερος του 100 Κανένα Μέση τιμή 1322,58 M = 1323
Μεταξύ 10 και 100 1 Μέση τιμή 34,133 M = 34,1
Μεταξύ 0,1 και 10 2 Μέση τιμή 6,5555 Μ = 6,56
Μικρότερος από 0,1 Όσα πρέπει ώστε να μην εμφανίζεται μηδέν. Μέση τιμή 0,003278 Μ = 0,003

8.5 Παρουσίαση αριθμητικών δεδομένων

Η μέση τιμή και η τυπική απόκλιση μπορούν να παρουσιάζονται είτε μέσα στο κείμενο είτε σε έναν πίνακα αλλά δεν συνιστάται και με τους δύο τρόπους. Παραδείγματα είναι τα εξής:

• Η μέση ηλικία των ερωτώμενων του δείγματος ήταν 25,5 χρόνια (SD = 7.94).

• Η ηλικία των ερωτώμενων ήταν από 18 έως 70 έτη (M = 25.5, SD = 7.94). Η ηλικία δεν ήταν κανονικά κατανεμημένη καθώς ο συντελεστής ασυμμετρίας υπολογίστηκε 1.87 (SE = 0.05) και ο συντελεστής κυρτότητας 3.93 (SE = 0.10)

• Οι συμμετέχοντες ήταν 98 άνδρες και 132 γυναίκες ηλικίας 17 έως 25 ετών (άνδρες: M = 19.2, SD = 2.32, γυναίκες: M = 19.6, SD = 2.54).

9 Δραστηριότητα

Στα πλαίσια διπλωματικής εργασίας με τίτλο “Ψυχολογικά Χαρακτηριστικά Γονέων με Παιδιά με Αναπηρία” καταγράφηκαν ορισμένα δημογραφικά και ψυχομετρικά χαρακτηριστικά γονεων από 100 οικογένειες δύο νομων της χώρας. Τα δεδομένα είναι σε ένα αρχείο Excel διαθέσιμα για λήψη εδώ.
1) Να κάνετε λήψη τα δεδομένα.
2) Να εισάγετε τα δεδομένα στο R Studio ως data.frame με όνομα parents.
3) Εκτελέστε την εντολή head(parents)
4) Μετατρέψτε όσες στήλες πρέπει από αλφαριθμητικές (character) σε παράγοντες (factors), αξιοποιώντας τη συνάρτηση η συνάρτηση create_factors:

parents = create_factors(parents)
  1. Εκτελέστε την εντολή summary(parents) για να εξοικειωθείτε με τα περιεχόμενα του αρχείου
summary(parents)
  1. Μεταβάλετε τις ετικέτες του παράγοντα child_gender από “αγορι” και “κορη” σε “Αγόρι” και “Κορίτσι¨αντίστοιχα, με τις εντολές
parents$child_gender = plyr::revalue(parents$child_gender, c("αγορι"="Αγόρι", "κορη"="Κορίτσι"))
  1. Μεταβάλετε τη σειρά των επιπέδων του παράγοντα child_disease με την εντολή:
parents$child_disease = ordered(parents$child_disease, levels = c('Σε αρχικά στάδια η νόσος', 2, 3, 4, 'Πολύ βαριά'))
  1. Εισάγετε ετικέτες στις μεταβλητές που θα χρησιμοποιήσουμε στη συνέχεια.
library(Hmisc)
label(parents$gender) = 'Φύλο'
label(parents$marital) = 'Οικογενειακή κατάσταση'
label(parents$job) = 'Εργασιακή κατάσταση'
label(parents$age_category) = 'Ηλικιακή κατηγορία'
label(parents$schico) = 'Καταφυγή σε ψυχολόγο'
label(parents$schico_drugs) = 'Λήψη φαρμάκων'
label(parents$child_gender) = 'Φύλο Παιδιού'
label(parents$child_disease) = 'Εκτίμηση ασθένειας παιδιού'
label(parents$hdhq.total) = 'Επιθετικότητα (HDHQ)'
label(parents$scl_90_gen_deikt_sympt) = 'Ψυχοπαθολογία (GSI)'
label(parents$oas_total_score) = 'Εξωτερική Ντροπή'
label(parents$ess_total) = 'Εσωτερική Ντροπή'
label(parents$stai_present) = 'Άγχος ως κατάσταση'
label(parents$stai_general) = 'Άγχος ως χαρακτηριστικό της προσωπικότητας'
label(parents$grad_level_new) = 'Εκπαιδευτικό επίπεδο'
  1. Δημιουργήστε πίνακες συχνοτήτων για τους παράγοντες του αρχείου parents. Αυτό, μπορείτε να το πετύχετε, αξιοποιώντας τη συνάρτηση my_frequency_table, εκτελώντας τις εντολές
cols <- c("age_category", "gender", "marital", "place_live", "grad_level_new", "job", "schico", "schico_drugs", "child_gender", "child_disease")
my_frequency_table(parents, cols)
  1. Χρησιμοποιείστε την my_bar_plot_percent, για να δημιουργήσετε ένα ποσοστιαίο ραβδόγραμμα για την εργασιακή κατάσταση, με την εντολή:
my_bar_plot_percent(parents$job, xlab = "Εργασιακή Κατάσταση")
  1. Χρησιμοποιείστε την my_bar_plot2, για να δημιουργήσετε ραβδόγραμμα συχνοτήτων για την οικογενειακή κατάσταση, με την εντολή:
my_bar_plot2(parents$marital, xlab = "Οικογενειακή Κατάσταση")
  1. Αξιοποιείστε τη συνάρτηση my_bar_plot_percent, για να δημιουργήσετε ένα ραβδόγραμμα σχετικών συχνοτήτων για τον τόπο διαμονής, με την εντολή:
my_bar_plot_percent(parents$place_live, xlab = "Τόπος διαμονής")
  1. Δημιουργήστε κυκλικά διαγράμματα για την εργασιακή κατάσταση, το μορφωτικό επίπεδο και το φύλο του παιδιού, με τις παρακάτω εντολές:
my_pie_plot(parents$job, main = 'Εργασιακή κατάσταση')
my_pie_plot(parents$grad_level_new, main = 'Μορφωτικό επίπεδο')
my_pie_3dplot(parents$child_gender, main = 'Φύλο παιδιού')
  1. Να δημιουργηθεί πίνακας συμπτώσεων μεταξύ του φύλου και της οικογενειακής κατάστασης, με την εντολή:
my_contigency_table(parents, c('gender', 'marital'))
  1. Δημιουργήστε τα αντίστοιχα ραβδογράμματα στοίβας με τις εντολές:
my_stack_plot(parents, 'gender', 'marital')
my_stack_plot(parents, 'gender', 'job')
  1. Ελέγξτε την ψυχοπαθολογία των γονέων εκτελώντας την παρακάτω εντολή.
my_explore_vars(parents, c("hdhq.total", "scl_90_gen_deikt_sympt", "oas_total_score", "ess_total", "stai_present", "stai_general"  ))
  1. Δημιουργήστε ιστόγραμμα συχνοτήτων για τις μεταβλητές ess_total και scl_90_gen_deikt_sympt των parents:
hist(parents$ess_total, main = "Ιστόγραμμα τιμών του ESS", col = 'skyblue3', xlab = "External Shame", ylab = "Συχνότητα")
hist(parents$scl_90_gen_deikt_sympt, main = "Ιστόγραμμα τιμών του GSI", col = 'skyblue3', xlab = "General Symptom Index", ylab = "Συχνότητα")
my_histPercent(parents$ess_total, xlab = "External Shame")
  1. Μελετήστε την ψυχοπαθολογία ανά φύλο με τις εντολές:
my_explore_vars_by_group(parents, c('scl_90_gen_deikt_sympt', 'ess_total', 'hdhq.total', 'oas_total_score', 'stai_present', 'stai_general'), 'gender')
  1. Εκτελέστε τις παρακάτω εντολές και σχολιάστε τα αποτελέσματα:
gplots::plotmeans(scl_90_gen_deikt_sympt ~ age_category,xlab="Ηλικιακή κατηγορία",ylab="Γενικός Δείκτης Συμπτωμάτων", main="Γενικός Δείκτης ανά ηλικιακή ομάδα (95% C.I.)", data = parents)

gplots::plotmeans(hdhq.total ~ age_category,xlab="Ηλικιακή κατηγορία",ylab="Επιθετικότητα", main="Επιθετικότητα ανά ηλικιακή ομάδα (95% C.I.)", data = parents)
  1. Εκτελέστε τις παρακάτω εντολές και σχολιάστε τα αποτελέσματα:
my_hist_multiple(parents$scl_90_gen_deikt_sympt, parents$gender, xlab = "Γενικός Δείκτης Συμπτωμάτων")
my_hist_multiple(parents$stai_general, parents$gender, xlab = "Άγχος ως χαρακτηριστικό της προσωπικότητας")

  1. Επικοινωνία: Επαμεινώνδας Διαμαντοπουλος, Τμήμα ΗΜ/ΜΥ, Δ.Π.Θ. Email: . Τηλ: 25410 79757, 6944683327↩︎