Από την σελίδα του Τομέα Μαθηματικών ΣΕΜΦΕ ΕΜΠ αντλήσαμε τις βαθμολογίες κάποιων φοιτητών του ΕΜΠ στο μάθημα Θεωρία Πιθανοτήτων και Στατιστική κατά την εξεταστική του Φεβρουαρίου του 2013. Τις περάσαμε σε ένα αρχείο Excel κι έχουμε διαθέσιμο το αρχείο bathmoi.xlsx. Αυτό το εισάγουμε στην R σύμφωνα με τις οδηγίες που έχουμε δει στην υποενότητα Αρχεία Excel (.xls, .xlsx) της Εισαγωγή αρχείων από άλλα προγράμματα, αφού πρώτα διαγράψαμε ό,τι είχαμε εισάγει μέχρι τώρα στην R:
| AM…1 | BATHMOS…2 | AM…3 | BATHMOS…4 | AM…5 | BATHMOS…6 | AM…7 | BATHMOS…8 | AM…9 | BATHMOS…10 | AM…11 | BATHMOS…12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 3094673 | 1 | 3108086 | 7 | 3110073 | 1 | 3110812 | 5 | 3111088 | 6 | 3111192 | 5 |
| 3098622 | 1 | 3108098 | 1 | 3110075 | 5 | 3111002 | 4 | 3111089 | 5 | 3111193 | 5 |
| 3100689 | 1 | 3108120 | 5 | 3110087 | 2 | 3111003 | 8 | 3111090 | 9 | 3111194 | 1 |
| 3102688 | 5 | 3108144 | 6 | 3110088 | 8 | 3111004 | 9 | 3111091 | 8 | 3111196 | 2 |
| 3103156 | 2 | 3108184 | 1 | 3110089 | 6 | 3111005 | 10 | 3111092 | 8 | 3111198 | 6 |
| 3103626 | 1 | 3108191 | 1 | 3110089 | 6 | 3111006 | 9 | 3111095 | 6 | 3111202 | 7 |
| 3103683 | 2 | 3108203 | 6 | 3110093 | 3 | 3111007 | 6 | 3111096 | 3 | 3111204 | 1 |
| 3103784 | 2 | 3108217 | 1 | 3110095 | 7 | 3111008 | 2 | 3111098 | 2 | 3111205 | 1 |
| 3104616 | 5 | 3108608 | 3 | 3110101 | 5 | 3111010 | 6 | 3111099 | 6 | 3111207 | 7 |
| 3104654 | 4 | 3108636 | 3 | 3110112 | 5 | 3111011 | 7 | 3111101 | 6 | 3111403 | 5 |
| 3104660 | 5 | 3108644 | 4 | 3110115 | 5 | 3111012 | 9 | 3111103 | 3 | 3111409 | 2 |
| 3104673 | 5 | 3108659 | 5 | 3110129 | 3 | 3111013 | 8 | 3111104 | 8 | 3111416 | 7 |
| 3104694 | 1 | 3108719 | 5 | 3110130 | 7 | 3111014 | 5 | 3111107 | 6 | 3111417 | 6 |
| 3104732 | 6 | 3108720 | 3 | 3110136 | 6 | 3111015 | 6 | 3111109 | 7 | 3111418 | 2 |
| 3104740 | 3 | 3108726 | 6 | 3110137 | 3 | 3111016 | 8 | 3111112 | 6 | 3111420 | 1 |
| 3104775 | 6 | 3108727 | 1 | 3110147 | 4 | 3111017 | 5 | 3111113 | 9 | 3111423 | 2 |
| 3105055 | 6 | 3108771 | 3 | 3110158 | 3 | 3111018 | 6 | 3111114 | 8 | 3111424 | 5 |
| 3105071 | 4 | 3108784 | 1 | 3110164 | 6 | 3111019 | 6 | 3111115 | 5 | 3111428 | 1 |
| 3105149 | 5 | 3108798 | 8 | 3110188 | 6 | 3111020 | 3 | 3111116 | 5 | 3111501 | 5 |
| 3105182 | 2 | 3109028 | 5 | 3110197 | 1 | 3111021 | 6 | 3111117 | 2 | 3111506 | 3 |
| 3105184 | 8 | 3109043 | 3 | 3110201 | 2 | 3111023 | 10 | 3111119 | 1 | 3111507 | 3 |
| 3105218 | 6 | 3109054 | 4 | 3110209 | 3 | 3111024 | 2 | 3111121 | 4 | 3111508 | 1 |
| 3105637 | 5 | 3109072 | 2 | 3110401 | 7 | 3111025 | 8 | 3111122 | 6 | 3111509 | 2 |
| 3105645 | 6 | 3109079 | 2 | 3110417 | 5 | 3111026 | 8 | 3111123 | 6 | 3111511 | 1 |
| 3105647 | 3 | 3109127 | 5 | 3110623 | 2 | 3111027 | 7 | 3111125 | 7 | 3111517 | 4 |
| 3105654 | 3 | 3109130 | 1 | 3110630 | 2 | 3111028 | 2 | 3111126 | 4 | 3111526 | 1 |
| 3105671 | 2 | 3109147 | 1 | 3110657 | 4 | 3111029 | 9 | 3111128 | 8 | 3111551 | 6 |
| 3105710 | 5 | 3109173 | 1 | 3110659 | 3 | 3111031 | 2 | 3111129 | 5 | 3111555 | 5 |
| 3105730 | 5 | 3109189 | 5 | 3110661 | 5 | 3111032 | 8 | 3111131 | 10 | 3111556 | 7 |
| 3105737 | 7 | 3109196 | 5 | 3110671 | 6 | 3111033 | 4 | 3111132 | 1 | 3111559 | 4 |
| 3105742 | 4 | 3109218 | 1 | 3110678 | 6 | 3111034 | 5 | 3111134 | 7 | 3111560 | 3 |
| 3105774 | 5 | 3109603 | 2 | 3110680 | 4 | 3111035 | 1 | 3111135 | 5 | 3111561 | 4 |
| 3105786 | 3 | 3109617 | 4 | 3110688 | 3 | 3111036 | 9 | 3111138 | 1 | 3111566 | 1 |
| 3106091 | 2 | 3109630 | 1 | 3110689 | 1 | 3111038 | 4 | 3111141 | 1 | 3111569 | 5 |
| 3106092 | 5 | 3109631 | 5 | 3110692 | 5 | 3111040 | 1 | 3111142 | 1 | 3111572 | 2 |
| 3106126 | 5 | 3109648 | 5 | 3110693 | 1 | 3111042 | 2 | 3111143 | 7 | 3111573 | 5 |
| 3106130 | 6 | 3109650 | 6 | 3110697 | 1 | 3111045 | 8 | 3111147 | 4 | 3111574 | 1 |
| 3106160 | 5 | 3109664 | 6 | 3110698 | 4 | 3111046 | 7 | 3111148 | 4 | 3111575 | 1 |
| 3106175 | 9 | 3109665 | 1 | 3110704 | 2 | 3111047 | 6 | 3111149 | 4 | 3111576 | 5 |
| 3106227 | 3 | 3109671 | 6 | 3110707 | 4 | 3111049 | 3 | 3111151 | 7 | 3111602 | 3 |
| 3106628 | 6 | 3109683 | 1 | 3110708 | 4 | 3111050 | 5 | 3111152 | 8 | 3111610 | 5 |
| 3106649 | 1 | 3109698 | 2 | 3110709 | 6 | 3111051 | 5 | 3111153 | 10 | 3111614 | 3 |
| 3106686 | 1 | 3109701 | 5 | 3110712 | 4 | 3111053 | 3 | 3111154 | 3 | 3111620 | 4 |
| 3106702 | 4 | 3109715 | 6 | 3110716 | 1 | 3111054 | 4 | 3111155 | 4 | 3111701 | 7 |
| 3106708 | 5 | 3109724 | 3 | 3110719 | 4 | 3111055 | 5 | 3111156 | 6 | 3111712 | 5 |
| 3106736 | 3 | 3109735 | 2 | 3110725 | 2 | 3111056 | 1 | 3111157 | 1 | 3111714 | 6 |
| 3106762 | 2 | 3109737 | 5 | 3110726 | 6 | 3111059 | 3 | 3111159 | 1 | 3111717 | 2 |
| 3106780 | 5 | 3109746 | 2 | 3110741 | 5 | 3111060 | 3 | 3111161 | 1 | 3111718 | 8 |
| 3106800 | 1 | 3109751 | 6 | 3110742 | 1 | 3111064 | 9 | 3111162 | 1 | 3111720 | 8 |
| 3106802 | 4 | 3109761 | 1 | 3110743 | 4 | 3111065 | 8 | 3111163 | 5 | 3111722 | 8 |
| 3107058 | 1 | 3109775 | 3 | 3110744 | 6 | 3111068 | 7 | 3111165 | 3 | 3111724 | 6 |
| 3107111 | 5 | 3109789 | 1 | 3110747 | 5 | 3111069 | 6 | 3111169 | 2 | 3111727 | 9 |
| 3107182 | 5 | 3109801 | 5 | 3110750 | 3 | 3111072 | 4 | 3111171 | 4 | 3111731 | 5 |
| 3107196 | 2 | 3110003 | 6 | 3110753 | 5 | 3111073 | 2 | 3111172 | 1 | 3111739 | 2 |
| 3107219 | 5 | 3110006 | 5 | 3110757 | 3 | 3111074 | 7 | 3111173 | 4 | 3111743 | 1 |
| 3107229 | 1 | 3110021 | 3 | 3110764 | 1 | 3111076 | 8 | 3111174 | 4 | 3111901 | 7 |
| 3107632 | 5 | 3110024 | 5 | 3110775 | 4 | 3111077 | 3 | 3111178 | 2 | 3111904 | 5 |
| 3107639 | 5 | 3110033 | 6 | 3110777 | 5 | 3111078 | 6 | 3111181 | 6 | 3111907 | 4 |
| 3107650 | 1 | 3110045 | 5 | 3110781 | 6 | 3111080 | 6 | 3111185 | 3 | 3112602 | 7 |
| 3107730 | 1 | 3110049 | 1 | 3110783 | 6 | 3111081 | 6 | 3111186 | 4 | NA | NA |
| 3107754 | 5 | 3110057 | 5 | 3110787 | 4 | 3111082 | 3 | 3111187 | 3 | NA | NA |
| 3107762 | 7 | 3110063 | 4 | 3110788 | 4 | 3111083 | 4 | 3111189 | 7 | NA | NA |
| 3107779 | 5 | 3110069 | 1 | 3110795 | 6 | 3111084 | 5 | 3111190 | 2 | NA | NA |
| 3107790 | 5 | 3110072 | 4 | 3110807 | 3 | 3111087 | 5 | 3111191 | 3 | NA | NA |
Φυσικά, οι Αριθμοί Μητρώου (στήλες ΑΜ) δεν έχουν κανένα
στατιστικό ενδιαφέρον, οπότε θα κρατήσουμε μόνο τους βαθμούς (στήλες
BATHMOS) γράφοντας:
bathmoi_synolo <- c(bathmoi$BATHMOS...2,
bathmoi$BATHMOS...4,
bathmoi$BATHMOS...6,
bathmoi$BATHMOS...8,
bathmoi$BATHMOS...10,
bathmoi$BATHMOS...12)Έτσι έχουμε μια λίστα με τις βαθμολογίες μας, ονόματι
bathmoi_synolo. Το πλήθος τους μπορούμε να το βρούμε μέσω
της συνάρτησης length(). Έτσι, εκτελώντας την εντολή:
## [1] 384
διαπιστώνουμε ότι έχουμε 384 βαθμολογίες.
Βέβαια, αν το δούμε προσεκτικά τον πίνακα bathmoi, διαπιστώνουμε
υπάρχουν κάποιες τιμές που δεν είναι βαθμολογίες. Είναι τα
NA (Not Avaliable) που προέκυψαν
επειδή οι δύο τελευταίες στήλες του αρχικού πίνακα είναι κοντύτερες από
τις υπόλοιπες. Τα NA τα απορρίπτουμε από τη λίστα γράφοντας:
Έτσι έχουμε τον πίνακα bathmoi_synolo χωρίς τα
NA. Πάμε τώρα να υπολογίσουμε πάλι το
πλήθος των καταγραφών μας:
## [1] 379
Εδώ η απάντηση είναι 379 βαθμολογίες, όπερ σημαίνει πως απορρίφθηκαν
από την αρχική λίστα bathmoi_synolo 5
NA.
Με μια πρόχειρη ανάγνωση του πίνακα βλέπουμε ότι κάποιοι βαθμοί (πχ το 1) είναι αρκετά συχνοί και κάποιοι άλλοι (πχ το 9) αρκετά σπάνιοι. Οδηγούμεστε, λοιπόν, στους κάτωθι ορισμούς.
| απόλυτη συχνότητα | σχετική συχνότητα |
|---|---|
| Η απόλυτη συχνότητα μιας τιμής μιας μεταβλητής είναι το πλήθος των εμφανίσεών της. | Η σχετική συχνότητα μιας τιμής μιας μεταβλητής είναι το ποσοστό των εμφανίσεών της. |
Πώς όμως μπορούν αυτές οι συχνότητες να υπολογιστούν μέσω της; Η
δουλειά θα γίνει μέσω των συναρτήσεων table() και
prop.table(). Γράφοντας:
## bathmoi_synolo
## 1 2 3 4 5 6 7 8 9 10
## 62 39 43 43 77 56 24 21 10 4
έχουμε τον πίνακα απόλυτων συχνοτήτων των βαθμολογιών που καταγράψαμε. Παρατηρούμε ότι όντως ο βαθμός 1 έχει πολύ μεγάλη συχνότητα (62 φοιτητές έγραψαν μονάδα), ενώ ο 9 είναι αρκετά πιο σπάνιος (10 μόνο φοιτητές έγραψαν 9).
Για τον πίνακα σχετικών συχνοτήτων γράφουμε:
## bathmoi_synolo
## 1 2 3 4 5 6 7 8
## 0.16358839 0.10290237 0.11345646 0.11345646 0.20316623 0.14775726 0.06332454 0.05540897
## 9 10
## 0.02638522 0.01055409
Παρατηρούμε ότι τα ποσοστά δίνονται με τη μορφή δεκαδικού αριθμού (η υποδιαστολή γράφεται ως τελεία). Έτσι διαπιστώνουμε ότι η σχετική συχνότητα του βαθμού 1 είναι περίπου 0.1636, άρα το 16,36% των φοιτητών έγραψε μονάδα. Από την άλλη, το άριστα (10) έχει σχετική συχνότητα περίπου 0.0106. Επομένως μόνο το 1,06% των εξεταζομένων έγραψαν άριστα.
Οι δυνατότητες της συνάρτησης table() δεν σταματάνε εδώ.
Γράφοντας:
##
## FALSE TRUE
## 365 14
προκύπτει ένας πίνακας όπου μας λέει πόσοι έγραψαν άριστα
(TRUE=14) και πόσοι όχι (FALSE=365).
Ενώ αν θέλουμε αυτούς που έγραψαν λίαν καλώς δεν έχουμε παρά να γράψουμε:
##
## FALSE TRUE
## 334 45
οπότε βλέπουμε ότι 45 έγραψαν λίαν καλώς και 334 κάτι άλλο (ανώτερο ή κατώτερο).
Στην περίπτωση που θέλουμε να μεταχειριστούμε τον έναν ή τον άλλον
πίνακα με όσα μάθαμε στις ενότητες Επιλογή
στοιχείων πίνακα, Προσθήκη
στοιχείων σε πίνακα και Αναδιαμόρφωση
πίνακα, τότε χρησιμοποιούμε τη συνάρτηση
as.data.frame.table(). Για παράδειγμα, αν θέλουμε ν’
ασχοληθούμε με τον πίνακα απόλυτων συχνοτήτων
ApolSyxnBathm, τότε γράφουμε:
| bathmoi_synolo | Freq |
|---|---|
| 1 | 62 |
| 2 | 39 |
| 3 | 43 |
| 4 | 43 |
| 5 | 77 |
| 6 | 56 |
| 7 | 24 |
| 8 | 21 |
| 9 | 10 |
| 10 | 4 |
κι έτσι έχουμε τον πίνακα στη μορφή που να μας βολεύει. Δεν είναι το ζήτημα εμφανισιακο. Απλώς έχουμε περισσότερες δυνατότητες πάνω του από προγραμματιστικής απόψεως στην R.
Σε πολλές περιπτώσεις μπορεί να μην έχουμε πρόσβαση στα πρωτογενή
δεδομένα, στις άμεσες μετρήσεις πάνω στο δείγμα μας. Μπορεί να έχουμε
απλά έναν πίνακα συχνοτήτων, όπως τον ASBdataframe, χωρίς
όμως να έχουμε πρόσβαση στα προηγούμενα στοιχεία που τον κατασκεύασαν.
Πώς μπορούμε να έχουμε τότε τον πίνακα σχετικών συχνοτήτων;
Γράφοντας:
καταλήγουμε στο κάτωθι σφάλμα:
Error in FUN(X[[i]], ...) :
only defined on a data frame with all numeric-alike variables
διότι, πολύ απλά, η R δεν καταλαβαίνει ότι η στήλη Freq
του ASBdataframe αναπαριστά συχνότητες. Απόλυτα λογικό εκ
μέρους της. Θα μπορούσε η στήλη αυτή να είναι τα ύψη από κάποιους
ανθρώπους ή οτιδήποτε άσχετο με συχνότητες.
Ως εκ τούτου το βάρος της δημιουργίας του πίνακα σχετικών συχνοτήτων πέφτει πάνω μας. Αλλά δεν πρόκειται για δύσκολο εγχείρημα. Η σχετική συχνότητα είναι η απόλυτη συχνότητα δια το συνολικό πλήθος των μετρήσεων. Έτσι υπολογίζουμε αρχικά το συνολικό πλήθος των μετρήσεων προσθέτοντας απλά όλες τις συχνότητες (βλ. Νέα λίστα και Κατασκευή λίστας ή πίνακα τιμών στην R):
και ακολούθως διαιρούμε κάθε στοιχείο της στήλης Freq με
το athrisma και συγχρόνως επισυνάπτοντας την
κατασκευασθείσα λίστα ως νέα στήλη ονόματι SxetSyxn σύμφωνα
με αυτά που μάθαμε στην υποενότητα Προσθήκη στήλης της Προσθήκη
στοιχείων σε πίνακα:
Οπότε γράφοντας:
έχουμε έναν πίνακα απόλυτων και σχετικών συχνοτήτων.
| bathmoi_synolo | Freq | SxetSyxn |
|---|---|---|
| 1 | 62 | 0.1635884 |
| 2 | 39 | 0.1029024 |
| 3 | 43 | 0.1134565 |
| 4 | 43 | 0.1134565 |
| 5 | 77 | 0.2031662 |
| 6 | 56 | 0.1477573 |
| 7 | 24 | 0.0633245 |
| 8 | 21 | 0.0554090 |
| 9 | 10 | 0.0263852 |
| 10 | 4 | 0.0105541 |
Συνολικά ο κώδικά μας είναι ο κάτωθι:
rm(list = ls())
bathmoi_synolo <- c(bathmoi$BATHMOS...2,
bathmoi$BATHMOS...4,
bathmoi$BATHMOS...6,
bathmoi$BATHMOS...8,
bathmoi$BATHMOS...10,
bathmoi$BATHMOS...12)
length(bathmoi_synolo)
bathmoi_synolo <- na.omit(bathmoi_synolo)
length(bathmoi_synolo)
ApolSyxnBathm <- table(bathmoi_synolo)
ApolSyxnBathm
SxetSyxnBathm <- prop.table(ApolSyxnBathm)
SxetSyxnBathm
arista <- table(bathmoi_synolo>=8.5)
arista
LianKalos <- table(bathmoi_synolo>=6.5 & bathmoi_synolo<8.5)
LianKalos
ASBdataframe <- as.data.frame.table(ApolSyxnBathm)
athrisma <- sum(ASBdataframe$Freq)
ASBdataframe$SxetSyxn <- (ASBdataframe$Freq)/athrisma
View(ASBdataframe)