Διαφορά ιστογράμματος-ραβδογράμματος με την R

Η διαφορά είναι λεπτή αλλά σημαντική.

Σας δίνονται τα αποτελέσματα σε τρία διαγωνίσματα (τεστ) που έγραψαν φοιτητές σε ένα μάθημα.

Μπορείτε να πάρετε το αρχείο σε μορφή .csv από εδώ.

Η τελική βαθμολογία βρίσκεται ως σταθμισμένος μέσος όρος:

  1. 25% για το πρώτο τεστ
  2. 35% για το δεύτερο τεστ
  3. 40% για το τρίτο τεστ

Να υπολογίσετε την τελική βαθμολογία και να κάνετε το ιστόγραμμα συχνοτήτων για τα διαστήματα βαθμολογίας [0-5], (5-6,5], (6,5-8,5] και (8.5-10]

Λήψη των δεδομένων και υπολογισμός της τελικής βαθμολογίας:

grades <- read.csv("http://stavrakoudis.econ.uoi.gr/stavrakoudis/R-graphics/grades3.csv", sep=";")

Το αρχείο περιέχει τρεις στήλες με ονόματα test1, test2, test3:

names(grades)
[1] "test1" "test2" "test3"

Μπορούμε να παράγουμε τα τελικά αποτελέσματα ως εξής:

w <- c(0.25, 0.35, 0.40)
final <- grades$test1*w[1] + grades$test2*w[2] + grades$test3*w[3]

Μπορούμε να ορίσουμε τις κλάσεις και να βρούμε τις συχνότητες εμφάνισης της κάθε κλάσης:

classes <- c(0,5,6.5,8.5,10)
cnt <- table(cut(final, classes, include.lowest=TRUE))

Η εντολή cut θα βρεί για κάθε στοιχείο της final σε ανάμεσα σε ποια στοιχεία της classes βρίσκεται. Η επιλογή include.lowest=TRUE ορίζει την επιλογή του μικρότερου στοιχείου, δηλαδή κάνει το διάστημα της πρώτης κλάσης κλειστό από αριστερά (όλα τα διαστήματα κλάσεων είναι κλειστά από δεξιά εξ' ορισμού). Η εισαγωγή του αποτελέσματος της cut στη συνάρτηση table (πινακοποίηση) κάνει την απαραίτητη καταμέτρηση: πόσες φορές εμφανίζεται η κάθε κλάση, επομένως βρίσκει τον πίνακα συχνοτήτων. Τα αποτελέσματα αποθηκεύονται στη μεταβλητή cnt:

cnt
    [0,5]   (5,6.5] (6.5,8.5]  (8.5,10] 
        5         5        22        12

Δηλαδή 5 βαθμοί βρίσκονται στο διάστημα [0,5], 5 στο διάστημα (5,6.5], 22 στο διάστημα (6.5,8.5] και 12 στο διάστημα (8.5,10]. Διαγραμματικά, τα αποτελέσματα μπορούν να παρασταθούν με ένα ραβδόγραμμα:

277a

Το ραβδόγραμμα μπορεί να κατασκευαστεί ως εξής:

cnames <- c("0-5", "5-6.5", "6.5-8.5", "8.5-10");
barplot(cnt, names.arg=cnames)

Το ραβδόγραμμα (bar plot) δεν είναι ιστόγραμμα! Το ιστόγραμμα μπορεί να γίνει ως:

hist(final, classes, col=5)

Το ιστόγραμμα είναι:

277b

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

Βέβαια, ιστόγραμμα μπορεί να γίνε πιο εύκολα με ισαπέχουσες κλάσεις που το πρόγραμμα υπολογίζει αυτόματα:

hist(final, col=5)

277c

Μπορείτε να συγκρίνετε τα δύο ιστογράμματα μεταξύ τους και να βγάλετε τα συμπεράσματά σας.

Μπορείτε επίσης να προσπαθήσετε να κάνετε το ιστόγραμμα με το Excel. Θα δεινοπαθήσετε! (Το ιστόγραμμα και όχι το ραβδόγραμμα).

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.