Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής"

Transcript

1 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Ανάλυση δεδομένων συστάσεων (Compositional Data Analysis) με τη στατιστική γλώσσα R και εφαρμογή σε δεδομένα τεχνολογίας λογισμικού. Μπανιώρας Αναστάσιος Αλέξανδρος (ΑΕΜ: 1411) Επιβλέπων: Αναπληρωτής Καθηγητής κ. Αγγελής Ελευθέριος Σεπτέμβριος 2012

2 Στους γονείς μου Μιχάλη, Ξανθίππη Στα αδέρφια μου Χρήστο, Άννα, Δημήτρη 1

3 Το όλον είναι μεγαλύτερο από το άθροισμα των μερών του. Αριστοτέλης 4 ος αιώνας π.χ. 2

4 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...5 Εισαγωγή Εισαγωγή στην Co.D.A. και βασικές στατιστικές έννοιες Βασικές έννοιες Ορισμός Δειγματοχώρος Γεωμετρία Aitchison (Aitchison Geometry) Πράξη διατάραξης (Perturbation) Δυναμικός μετασχηματισμός (Power transformation) Ανεξαρτησία κλίμακας (Scale Invariance) Γεωμετρικός μέσος (Geometric mean) Υποσύνολα στα δεδομένα συστάδων. (Subcompositions) Μετασχηματισμοί (Transformations) Μετασχηματισμός alr (Additive log ratio transformation) Μετασχηματισμός clr (Centered log ratio transformation) Μετασχηματισμός ilr (Isometric log ratio transformation) Το πρόβλημα με τα μηδενικά Διαγράμματα Biplots diagrams Τριμερή διαγράμματα (Ternary diagrams) Δενδρογράμματα (dendrograms) Ανάλυση Συστάδων Συσταδοποίηση (Cluster Analysis) Ιεραρχική Ανάλυση Συστάδων (Hierarchical Cluster Analysis) Παρουσίαση της στατιστικής γλώσσας R Εισαγωγή Βασικές έννοιες Αντικείμενα δεδομένων Διανύσματα (vector) Πίνακες (matrix) Πίνακες πολλαπλών διαστάσεων (Arrays) Λίστες (lists) Παράγοντες (factors) Πλαίσια δεδομένων (data frames) Μαθηματικές συναρτήσεις Βασικές συναρτήσεις και αριθμητικές πράξεις Διαφορικός και ολοκληρωτικός λογισμός με την R Άλλες χρήσιμες μαθηματικές εντολές και συναρτήσεις γενικού σκοπού Γραφικά με την R Εντολές υψηλού επιπέδου για γραφήματα Ορίσματα για τις συναρτήσεις υψηλού επιπέδου Χαμηλού επιπέδου συναρτήσεις γραφημάτων (low level plotting graphical functions) Παράμετροι γραφικών Εισαγωγή και εξαγωγή δεδομένων Είσοδος- Έξοδος δεδομένων με πακέτα (packages) της R Το πακέτο RExcelInstaller Συναρτήσεις του RExcelInstaller

5 2.6 Το πακέτο Rcommander Πρακτική εφαρμογή σε σύνολο δεδομένων της ISBSG R Περιγραφή του συνόλου δεδομένων Φόρτωση πακέτου Εισαγωγή δεδομένων Μετατροπή του συνόλου δεδομένων Μετασχηματισμοί της Co.D.Analysis και R Το πρόβλημα με τα μηδενικά στην Ανάλυση συστάσεων δεδομένων και η συνάρτηση zeroreplace του πακέτου compositions Γραφική αναπαράσταση των δεδομένων Τριμερή (Τernary) διαγράμματα Επιπλέον πληροφορίες στα τριμερή διαγράμματα Τριμερή (Ternary) διαγράμματα με το πακέτο robcompositions Biplots Δενδρογράμματα Σχολιασμός των γραφημάτων και συμπεράσματα Σχολιασμός των τριμερών διαγραμμάτων (ternary) Σχολιασμός των Biplot Σωλήνωση εντολών και η έκδοση RED-R RED-R και Ανάλυση δεδομένων συστάσεων (Co.Da. Analysis)...85 Επίλογος...91 Βιβλιογραφία

6 Πρόλογος Στην παρούσα εργασία θα ασχοληθούμε με την Ανάλυση δεδομένων συστάσεων (compositional data analysis). Πρόκειται για δεδομένα που έχουν να κάνουν με ποσοστά. Αυτά αθροίζοντας τα μας δίνουν ένα σταθερό αριθμό, συνήθως την μονάδα ή το 100. Ο λόγος για τον οποίο μας ενδιαφέρουν τα ποσοστά και η ανάλυσή τους είναι γιατί τόσο στην εργασία μας αλλά και γενικότερα σε πολλές έρευνες δεν μας βοηθάνε οι απόλυτοι αριθμοί για την παραγωγή συμπερασμάτων αλλά οι σχέσεις, δηλαδή τα ποσοστά, μεταξύ των δεδομένων. Αφού παρουσιάσουμε τις βασικές αρχές της ανάλυσης δεδομένων συστάσεων κατόπιν θα παρουσιάσουμε τη στατιστική γλώσσα R. Η R είναι μία δυναμική και εξελισσόμενη γλώσσα, ανοικτού λογισμικού η οποία ολοένα κερδίζει έδαφος στις προτιμήσεις χρηστών για την ανάλυση δεδομένων. Ακόμη, θα εφαρμόσουμε συγκεκριμένα πακέτα της R σε συγκεκριμένο σύνολο δεδομένων. Αυτά είναι τα πακέτα compositions και robcompositions, δύο πακέτα που έχουν αναπτυχθεί για να υποστηρίζουν πράξεις και εντολές της R που αφορούν την ανάλυση δεδομένων συστάσεων. Το σύνολο δεδομένων με το οποίο θα εργαστούμε αποτελεί κομμάτι της ISBGR R11 (International Software Benchmarking Standards Groups), μία από τις πιο πλούσιες και χρήσιμες αποθήκες από έργα λογισμικού η οποία έχει ιδιαίτερο ενδιαφέρον και χρησιμότητα στο πεδίο της εκτίμησης κόστους. Τέλος, από τα αποτελέσματα που θα μας δώσει η R και τα πακέτα που εφαρμόζουμε επί του συνόλου δεδομένων μας θα εξάγουμε τα συμπεράσματα της εργασίας μας. 5

7 Εισαγωγή Όπως αναφέραμε στον πρόλογο η δυνατότητα να γνωρίζουμε ποια εργαλεία λογισμικού μας είναι χρήσιμα για την περάτωση κάποιας εργασίας γίνεται μέσω αξιολόγησης. Το πιο σύνηθες φαινόμενο είναι η αξιολόγηση μέσω ερωτηματολογίων. Έτσι και στην εργασία μας έχουν δοθεί ερωτηματολόγια σε ανθρώπους οι οποίοι εργάζονται για την ολοκλήρωση κάποιων έργων λογισμικού. Η αξιολόγηση γίνεται με ποσοστά. ηλαδή, ο κάθε ερωτώμενος δίνει ποσοστό που επιλέγει ο ίδιος στην κάθε λειτουργία του λογισμικού. Το άθροισμα των ποσοστών αυτών πρέπει να δίνει ως αποτέλεσμα την μονάδα. Μπορεί να ακούγεται απλό όμως έχει αναπτυχθεί ξεχωριστός κλάδος των μαθηματικών, ο οποίος μας παρέχει εργαλεία και τεχνικές για την ανάλυση σε δεδομένα με ποσοστά. Ο κλάδος αυτός είναι η Ανάλυση δεδομένων συστάσεων (Co.D.A.) την οποία εισήγαγε και θεμελίωσε ο John Aitchison το Με απλά λόγια έχουμε δεδομένα τα οποία όταν τα προσθέσουμε μας δίνουν ένα σταθερό αριθμό. Συνήθως, αυτός ο αριθμός είναι η μονάδα ή το εκατό. Σήμερα, υπάρχουν πολλές επιστήμες πέραν της Πληροφορικής, οι οποίες χρησιμοποιούν αυτήν την μέθοδο. Όσον αφορά το πρακτικό κομμάτι της εργασίας μας, χρησιμοποιήσαμε τη στατιστική γλώσσα R. Είναι μία γλώσσα ελεύθερου λογισμικού η οποία πέραν των μαθηματικών και προγραμματιστικών δυνατοτήτων της προσφέρει πληθώρα πακέτων (packages), εξειδικευμένα για το πεδίο εφαρμογών που μας ενδιαφέρει. Εμείς χρησιμοποιήσαμε τα πακέτα compositions και robcompositions όσον αφορά την Co.D.A. Φυσικά για την πλήρη αξιοποίηση αυτών των πακέτων χρειάστηκε να εγκαταστήσουμε και διάφορα άλλα, δευτερεύοντα πακέτα. Αρχικά θα γίνει αναφορά στο θεωρητικό υπόβαθρο και τις έννοιες της Compositional Data Analysis. Κατόπιν γίνεται μία παρουσίασης της γλώσσας R καθώς και των πακέτων που προαναφέραμε. Μέσω αυτών των πακέτων θα τρέξουμε συναρτήσεις και εντολές στο σύνολο των δεδομένων. Τέλος αφού προκύψουν τα αποτελέσματα και τα γραφήματα που θέλουμε θα εξάγουμε συμπεράσματα από αυτά. 6

8 1.Εισαγωγή στην Co.D.A. και βασικές στατιστικές έννοιες. Τα δεδομένα συστάσεων (Compositionals Data) είναι δεδομένα τα οποία αθροίζονται δίνοντας πάντα ως αποτέλεσμα ένα σταθερό αριθμό(συνήθως αυτός ο αριθμός είναι η μονάδα). Οι εφαρμογές τους ολοένα και αυξάνονται ενώ το φάσμα των επιστημών που αυτά χρησιμοποιούνται διευρύνεται συνεχώς. Ενδεικτικά μπορούμε να αναφέρουμε πως εφαρμογές της Compositional Data Analysis βρίσκουμε σήμερα στις παρακάτω επιστήμες: Πληροφορική Γεωλογία Χημεία Αρχαιολογία Οικονομία-Επιχειρήσεις Βιολογία Ψυχολογία-Ιατρική Ωστόσο στην παρούσα εργασία θα μελετήσουμε αυτά τα δεδομένα από την σκοπιά της Επιστήμης των Υπολογιστών και πιο συγκεκριμένα θα γίνει ανάλυση και εφαρμογή της μεθόδου Co.D.A. σε συγκεκριμένο σύνολο δεδομένων με χρήση της στατιστικής γλώσσας R. 1.1 Βασικές έννοιες Σε αυτή την ενότητα θα παρουσιαστούν κάποιες από τις βασικές ιδιότητες και γνωρίσματα των συστάσεων δεδομένων (compositional data) Ορισμός (1.1) οθέντων των στοιχείων x1, x2,..., x D όπου xi 0 ισχύει x1+ x x D = 1 D Λέμε ότι το διάνυσμα x=[ x1, x2,..., x D ] S αποτελεί ένα -μέρος δεδομένων (D-part composition). Όπως προαναφέρθηκε τα δεδομένα δεν αθροίζονται υποχρεωτικά στην μονάδα αλλά σε έναν σταθερό αριθμό. Ακόμη υπάρχουν περιπτώσεις όπου τα δεδομένα μας αρχικώς μπορεί να μην δίνουν το ίδιο αποτέλεσμα k, σε αυτή την περίπτωση πρέπει να γίνουν κατάλληλες μετατροπές ώστε όλα τα διανύσματα να μας δίνουν το ίδιο σταθερό αποτέλεσμα. Είναι πολύ σημαντικό να κατανοήσουμε πως στα δεδομένα συστάσεων (compositional data) δεν μας ενδιαφέρουν τόσο οι απόλυτες τιμές των δεδομένων αλλά οι σχέσεις w / w μεταξύ των. Εστιάζουμε δηλαδή στις αναλογίες (ratios) των στοιχείων που εξετάζονται. j k 7

9 1.1.2 ειγματοχώρος Ο δειγματοχώρος (sample space) είναι ο simplex και ορίζεται ως: D S = { x= [ x, x,..., x ] x > 0, i = 1, 2,..., D; x = k} 1 2 D i i i= 1 D (1.2) Γεωμετρία Aitchison (Aitchison Geometry) Στα δεδομένα συστάσεων (compositional data) δεν ισχύουν οι ιδιότητες και σχέσεις (π.χ. άθροισμα διανυσμάτων, πολλαπλασιασμός με αριθμό ή διάνυσμα, υπολογισμός απόστασης) που γνωρίζουμε από τους Ευκλείδειους χώρους στους οποίους και είμαστε εξοικειωμένοι. Για να γίνει πιο εύκολα κατανοητό παραθέτουμε ένα μικρό παράδειγμα. Έστω έχουμε τα ακόλουθα δεδομένα [5, 65, 30], [10, 60, 30], [50, 20, 30] και [55, 15, 30]. Συγκρίνοντας τις διαφορές μεταξύ των [5, 65, 30], [10, 60, 30] και [50, 20, 30] και [55, 15, 30] βλέπουμε πως η Ευκλείδεια απόσταση μεταξύ των δύο πρώτων στοιχείων είναι η ίδια και είναι 5. Ωστόσο παρατηρούμε πως στα δύο πρώτα διανύσματα αυτή η διαφορά ισοδυναμεί με τον διπλασιασμό των τιμών ενώ στα δύο τελευταία διανύσματα η διαφορά αυτή είναι μόλις 10%. Για αυτό, αλλά και για άλλους λόγους εισήχθηκε από τον John Aitchison μία νέα γεωμετρία. Παρακάτω ορίζονται κάποιες από τις βασικές πράξεις που ισχύουν στην Aitchison γεωμετρία Πράξη διατάραξης (Perturbation) 1 D Έστω διάνυσμα p= [ p1... pd ] S το οποίο επενεργεί στο διάνυσμα D x = [ x... x ] S και παράγεται το διάνυσμα X το οποίο δίνεται από: D X p x px 1 1 pdxd px 1 1 pdxd = = [... ] / ( ) = Cp [ 1x1... px D D]. (1.3) Όπου C ο συμβολισμός για την πράξη της κλειστότητας (closure) η οποία διαιρεί κάθε στοιχείο του composition με το άθροισμα των στοιχείων αυτών υναμικός μετασχηματισμός (Power transformation) Ορίζεται ως δυναμικός μετασχηματισμός ενός διανύσματος x = [ x1... x ] S με έναν αριθμό a R η πράξη, D D a a a X = a x= C[ x1, x2,..., x D ] (1.4) 8

10 D Ο χώρος simplex [ S, ], μαζί με τις πράξεις διατάραξης(perturbation) και δυναμικού μετασχηματισμού(power transformation) που ορίστηκαν, ορίζουν έναν διανυσματικό χώρο. Έτσι απορρέουν οι παρακάτω ιδιότητες. Ιδιότητες της διατάραξης (perturbation) Επιμεριστική ιδιότητα x y = y x (1.5) Προσεταιριστική ( x y) z = x ( y z) (1.6) Ουδέτερο στοιχείο 1 Αντιστροφή του x: x = Cx [, x,..., x ] με n = C[1,1,...,1] = [,,..., ] D D D όπου n το βαρύκεντρο. (1.7) D 1 x x = n (1.8) Ιδιότητες του δυναμικού μετασχηματισμού(power transformation) Associative a ( b x) = ( a b) x (1.9) Distributive 1 a ( x y) = ( a x) ( a y) (1.10) Distributive 2 ( a+ b) x = ( a x) ( b y) (1.11) Μοναδιαίο στοιχείο 1 x = x (1.12) Ορίζεται γραμμικός διανυσματικός χώρος με εσωτερικό γινόμενο: D Εσωτερικό γινόμενο x, y S, D D 1 xi y x, y ln ln i a 2D x y = (1.13) i= 1 j= 1 j j D Νόρμα x, y S, x a 1 2D x x D D i 2 = (ln ) (1.14) i= 1 j= 1 j Και απόσταση μεταξύ x και y D S ως: 1 x y da ( x, y) = (ln ln ) 2D x y D D i i 2 (1.15) i= 1 j= 1 j j Ανεξαρτησία κλίμακας (Scale Invariance) Στα δεδομένα συστάσεων μπορεί πολύ συχνά να υπάρχει σαφής αναλογία ανάμεσα στα δεδομένα. Έστω για παράδειγμα W=[1, 2, 4] και w=[1.5, 3, 6] στον δύο διανύσματα τα οποία εκφράζουν το βάρος τριών στοιχείων σε γεωλογικές μετρήσεις. Το βάρος συνολικά είναι 7g και 10.5g αντίστοιχα. Παρατηρούμε πως 3 R + υπάρχει σχέση αναλογίας W=(3/2)w. Γενικότερα δύο διανύσματα W και w στον D R + είναι ισοδύναμα (compositionally equivalent), και γράφονται W ~ w, όταν υπάρχει 9

11 θετική σταθερά p για την οποία να ισχύει W = pw. Λέμε ότι για κάθε συνάρτηση f ενός δείγματος διανυσμάτων πρέπει να ισχύει f ( W) = f ( w) όταν W ~ w, ή ισοδύναμα, f ( pw) = f ( w), για κάθε p>0 (1.16) Ουσιαστικά συμπεραίνουμε πως η συνάρτηση f είναι αμετάβλητη σε σχέση με την κλιμάκωση (scalar) των μετασχηματισμών. Αν συνυπολογίσουμε ότι ισχύει και η σχέση hw ( ) = ( w1/ wd,..., wd 1/ wd) τότε συνάγεται το συμπέρασμα: Οποιαδήποτε καλώς ορισμένη συνάρτηση από δεδομένα συστάσεων (composition) δεδομένα μπορεί να εκφραστεί σε όρους αναλογιών των στοιχείων ενός δεδομένου συστάσεων (composition) Γεωμετρικός μέσος (Geometric mean) Γεωμετρικός μέσος των στοιχείων ενός διανύσματος δεδομένων συστάδων ορίζεται ακολούθως ως εξής: gw= w w D (1.17) 1/ ( ) ( 1,..., ) D Ένα παράδειγμα της πρακτικής χρησιμότητας του γεωμετρικού μέσου είναι η εφαρμογή του σε δεδομένα όπως τα παραπάνω (scale invariant) χρησιμοποιώντας αναλογίες όπως w/g(w) Υποσύνολα στα δεδομένα συστάδων. (Subcompositions) Τα υποσύνολα (subcompositions) χρησιμοποιούνται σε περιπτώσεις όπου θέλουμε να εξετάσουμε κάποια από τα στοιχεία ενός συνόλου δεδομένων και όχι όλο το σύνολο αυτό καθεαυτό. Για παράδειγμα ένας Γεωλόγος ο οποίος ενδιαφέρεται μόνο σε κάποια συγκεκριμένα στοιχεία όπως ( Na2O, K2O, Al2O 3 ) από ένα σύνολο δέκα στοιχείων ενός composition που αναφέρεται στη χημική σύσταση δείγματος γεωλογικών πετρωμάτων. Γενικά ένα υποσύνολο βασισμένο στα μέρη (1,2,,C) ενός -διάστασης διάνυσμα (D-part composition) [ x 1,..., x D ] είναι το (1,2,,C)- υποσύνολο(subcomposition) [ s1,..., s C ] ορίζεται ως [ s1,..., sc ] = [ x1,..., xc] / ( x xc) (1.18) 1.2 Μετασχηματισμοί (Transformations) Τις τελευταίες δεκαετίες έχει επικρατήσει σε πολλές επιστήμες σχεδόν καθολικά η αντίληψη πως είναι πιο εύκολος και πρακτικός ο χειρισμός κάποιων 10

12 δεδομένων σε λογαριθμική μορφή αντί της κλασματικής. Έτσι και στην Compositional Data Analysis έχουν επινοηθεί διάφοροι μετασχηματισμοί οι οποίοι και χρησιμοποιούν λογαρίθμους Μετασχηματισμός alr (Additive log ratio transformation) D Έστω x = [ x1... xd ] S ένα τυπικό -διαστάσεων διάνυσμα(d-part composition). Η λεγόμενη ως προσθετική λογαριθμική μετατροπή (additive logratio transformation) ορίζεται ως η ακόλουθη σχέση: alr : S D D 1 R y = alr( x) = [log( x / x )log( x / x )...log( x / x )] (1.19) 1 D 2 D D 1 D Όπου οι λόγοι περιέχουν την διαίρεση του καθενός από τα πρώτα D-1 στοιχεία με το τελικό στοιχείο του διανύσματος. Ο αντίστροφος μετασχηματισμός: (1.20) 1 D 1 D alr : R S με Όπου C η πράξη της κλειστότητας (closure). = ( ) = [exp( )exp( )...exp( 1)] 1 x alr y C y1 y1 y D Μετασχηματισμός clr (Centered log ratio transformation) Γνωρίζουμε πως ο alr μετασχηματισμός δεν είναι συμμετρικός. Ενώ συχνό είναι το φαινόμενο να θέλουμε να επεξεργαστούμε τα δεδομένα μας με συμμετρικό τρόπο. Έτσι δημιουργήθηκε ο clr μετασχηματισμός που ορίζεται παρακάτω: clr : S z= clrx ( ) = [log{ x/ gx ( )}log{ x/ gx ( )}...log{ x / gx ( )}] D D U με 1 2 D (1.21) D Όπου U = {[ u... u ]: u u = 0} ένα υπερπλάνο της 1 D 1 ο αντίστροφος μετασχηματισμός: D 1 D D clr : U S x C z1 z2 z D παίρνει την μορφή D R. Αντιστοίχως δίνεται και = [exp( )exp( )...exp( )] (1.22) Αξίζει να σημειωθεί πως το μέσο διάνυσμα (mean vector) m = E{alr( x)} και ο πίνακας συνδιακύμανσης (covariance matrix) Σ = cov{ alr( x)} από το διάνυσμα alr(x) παίζει σημαντικό ρόλο στην Cο.D.A. όπως και στον clr μετασχηματισμό οι ποσότητες I = Eclrx { ( )} και cov{ clr( x)}. Η φιλοσοφία της λογαριθμικής ανάλυσης μπορεί να διατυπωθεί απλά: 1. Μετέτρεψε το πρόβλημα σε όρους των στοιχείων των δεδομένων συστάσεων. 2. Μετάφραση της παραπάνω μετατροπής σε όρους λογαριθμικούς του διανύσματος. 3. Μετασχηματισμός των δεδομένων συστάσεων σε λογαριθμικά διανύσματα. 4. Ανάλυση των λογαριθμικών δεδομένων σε κατάλληλη μορφή πολυμεταβλητών στατιστικών μεθόδων. 11

13 5. Μετάφραση σε απλούς όρους της ανάλυσης δεδομένων συστάσεων των αποτελεσμάτων του βήματος Μετασχηματισμός ilr (Isometric log ratio transformation) Ο ilr μετασχηματισμός μετατρέπει ένα διάνυσμα δεδομένων από τον D διάστασης Aitchison simplex χώρο σε ένα ισομετρικό D-1 διαστάσεων ευκλείδειο διάνυσμα. Τα δεδομένα μπορούν μέσω αυτού του μετασχηματισμού να αναλυθούν με όλα τα κλασσικά πολυμεταβλητά εργαλεία. Παρά το γεγονός πως η ερμηνεία των αποτελεσμάτων μπορεί μερικές φορές να είναι δύσκολη εξαιτίας του ότι δεν υπάρχει σχέση ένα -προς- ένα μεταξύ των αρχικών δεδομένων και αυτών που προέκυψαν μετά την εφαρμογή του μετασχηματισμού, θεωρείται χρήσιμο εργαλείο. Ο μαθηματικός τύπος του ilr μετασχηματισμού είναι: ilr( x) = V ^ t( clr( x)) (1.23), όπου x το σύνολο δεδομένων και V ένας πίνακας του οποίου οι στήλες σχηματίζουν μία ορθοκανονική βάση του clr επιπέδου. 12

14 1.3 Το πρόβλημα με τα μηδενικά Ένα σημαντικό πρόβλημα στην ανάλυση συστάσεων δεδομένων έχει να κάνει με τιμές οι οποίες είναι μηδενικές. Το πρόβλημα έγκειται στο γεγονός πως στην λογαριθμική μεθοδολογία παρουσιάζεται διαίρεση με μηδέν κάτι που είναι προφανώς μη επιτρεπτή πράξη. Ενώ παράλληλα υπάρχει δυσκολία και στην ερμηνεία των μηδενικών τιμών καθώς υπάρχουν δύο κατηγορίες μηδενικών: 1. Ουσιώδη μηδενικά(essential zeros): ανύπαρκτη τιμή 2. Στρογγυλοποιημένα μηδενικά(rounded zeros): μη μετρήσιμη αναλογία (από το όργανο μέτρησης) Προκειμένου να ξεπεραστούν αυτές οι δυσκολίες έχουν προταθεί διάφορες τεχνικές για τον χειρισμό ή την αντικατάσταση των μηδενικών. Όσον αφορά τα στρογγυλοποιημένα μηδενικά που θα μας απασχολήσουν στην έρευνα μας μπορούμε να θεωρήσουμε τα μηδενικά σαν χαμένες τιμές (missing values) ή να χρησιμοποιήσουμε κάποια μέθοδο αντικατάστασης αυτών των τιμών. Το πιο σύνηθες είναι να λαμβάνουν τη θέση των μηδενικών πολύ μικρές τιμές κοντά στο μηδέν και να γίνεται αναπροσαρμογή των υπολοίπων στοιχείων του διανύσματος δεδομένων προκειμένου να διατηρηθεί το άθροισμα στην μονάδα. Χρησιμοποιείται μια μέθοδος γνωστή ως Πολλαπλασιαστική στρατηγική αντικατάστασης (Multiplicative replacement strategy): Κάθε διάνυσμα p = [ p1... p k ] που έχει c μηδενικά μπορεί να αντικατασταθεί από διάνυσμα r = [ r1... r k ] όπου r j = δ (if p = 0 ) or j j rj = pj 1 δl (if p > j 0 ) όπου δ j μία πολύ μικρή τιμή. (1.24) lpl : = 0 13

15 1.4 ιαγράμματα Στην ανάλυση των συστάσεων δεδομένων θα μας απασχολήσουν και κάποια διαγράμματα. Προφανώς τα διαγράμματα τα χρειαζόμαστε για τη γραφική αναπαράσταση των δεδομένων που μελετούμε. Κατόπιν μπορούμε να εξάγουμε συμπεράσματα μέσω αυτών των διαγραμμάτων. Εκτός από τα δενδρογράμματα που είναι ευρέως γνωστά στην compositional data analysis εργαζόμαστε και με διαγράμματα όπως τα biplots και τα τριμερή διαγράμματα (ternary diagrams). Τα διαγράμματα προφανώς είναι αρκετά χρήσιμα στην κατανόηση των δεδομένων που μελετούμε καθώς και στην εξαγωγή συμπερασμάτων από αυτά Biplots diagrams Το biplot είναι ένα γραφικό εργαλείο που χρησιμοποιείται σε πολλές, στατιστικές, κυρίως εφαρμογές. Πιο συγκεκριμένα όσον αφορά την ανάλυση δεδομένων συστάσεων το biplot είναι μια γραφική απεικόνιση των γραμμών και των στηλών ενός ορθογώνιου n x k πίνακα δεδομένων Χ. η εφαρμογή ενός biplot γίνεται αφού ο αρχικός πίνακας με τα δεδομένα Χ μετασχηματίζεται σε Ζ μέσω του clr μετασχηματισμού. Στην ανάλυση συστάσεων δεδομένων το biplot το βρίσκουμε μέσω του πίνακα Ζ=[ z ij ] όπου z ij xij 1 xij = log{ } log{ } (1.25) g( x ) n g( x ) i Παρακάτω δίνεται ένα απλό παράδειγμα από biplot και αναφέρονται τα κυριότερα χαρακτηριστικά του. Γραμμές( lines ή rays) : Αναπαριστούν τις μεταβλητές των δεδομένων (στο εν λόγω σχήμα A, B και C). Κάθε γραμμή ξεκινά από το κέντρο Ο που συμβολίζει το κέντρο του συνόλου δεδομένων. Ένα άλλο χαρακτηριστικό των biplots είναι οι γωνίες που σχηματίζονται μεταξύ των γραμμών. Το μήκος της γραμμής υποδεικνύει τη διακύμανση της αντίστοιχης μεταβλητής. Πιο συγκεκριμένα το τετράγωνο του μήκους της γραμμής είναι ανάλογο με τη διακύμανση του clr μετασχηματισμού της αντίστοιχης μεταβλητής. = (1.26) 2 Oi var[log{ xi / g( x)}] Μία γραμμή που ενώνει δύο άκρα των γραμμών (rays) καλείται σύνδεση (link). Για δύο μεταβλητές x, x το τετράγωνο του μήκους της σύνδεσης (link) είναι μία i j i 14

16 εκτίμηση της ποσότητας var{log( xi / x j)} η οποία δείχνει την διαφορά μεταξύ των x i και x j. Αξίζει να τονιστεί πως όσον αφορά την ανάλυση δεδομένων συστάσεων, το πιο σημαντικό χαρακτηριστικό ενός biplot είναι οι συνδέσεις και όχι οι γραμμές. Αυτό συμβαίνει αφού όπως προαναφέραμε δεν μας ενδιαφέρουν τόσο οι απόλυτες τιμές των δεδομένων όσο οι αναλογίες μεταξύ των τιμών. Το συνημίτονο της γωνίας μεταξύ δύο γραμμών(rays) δίνει μια συσχέτιση των μεταβλητών που αναπαριστώνται. Εφόσον η γωνία σχηματίζει γωνία κοντά στις 90 ή ο 270 τόσο μικρότερη η συσχέτιση. Ενώ αν η γωνία μεταξύ των μεταβλητών είναι 0 η συσχέτιση είναι πολύ δυνατή. Αντίθετα όταν η γωνία μεταξύ των μεταβλητών είναι ο 180 η συσχέτιση είναι αρνητική. Τελείες (dots): Αναπαριστούν τις τιμές των μεταβλητών. Φυσικά η ερμηνεία τους εξαρτάται από το σύνολο δεδομένων που δουλεύουμε την εκάστοτε φορά. Στην εργασία μας, οι τελείες εκφράζουν τα έργα (projects). Σε ένα διαφορετικό σύνολο δεδομένων θα μπορούσε να εκφράζει τη συγκέντρωση χημικών στοιχείων σε ένα ίζημα. Στο σχήμα που 1-1 που βλέπουμε παρακάτω έχουμε ένα biplot. Το εν λόγω γράφημα έχει τρεις μεταβλητές, τις A,B και C. Επίσης έχουμε και τέσσερις κουκίδες αριθμημένες οι οποίες όπως αναφέραμε νωρίτερα εκφράζουν τις τιμές των μεταβλητών. Τέλος μπορούμε εύκολα να διακρίνουμε τη γωνία (angle) που σχηματίζεται ανάμεσα στις γραμμές (rays) των μεταβλητών Α και C. Επίσης φαίνονται και οι συνδέσεις (links) μεταξύ των γραμμών, είναι σημειωμένες με διακεκομμένες γραμμές. Παρατηρούμε πως η γραμμή που ενώνει το O με την κορυφή C και εκφράζει την μεταβλητή C είναι μεγαλύτερη από τις άλλες δύο γραμμές. Αυτό σημαίνει πως παρουσιάζει και την μεγαλύτερη διακύμανση. Ακόμη βλέπουμε πως η σύνδεση ανάμεσα στην μεταβλητή Α και την μεταβλητή C είναι μεγαλύτερη άρα έχει και μεγαλύτερη διακύμανση για τους λογαριθμικούς μετασχηματισμούς (logratios). Τέλος όσον αφορά τις κουκίδες (dots) βλέπουμε την κουκίδα 1 να είναι πολύ κοντά στην γραμμή που εκφράζει την μεταβλητή Α και πολύ μακριά από τις άλλες δύο μεταβλητές και ειδικότερα την C. Αυτό σημαίνει πως η τιμή της κουκίδας 1 είναι μεγαλύτερη για την μεταβλητή Α και μικρότερη για την μεταβλητή C. Αντιστοίχως η κουκίδα 4 πρέπει να έχει υψηλότερη τιμή σε σχέση με την μεταβλητή C και μικρότερη όσον αφορά τις μεταβλητές Α και Β. ο 15

17 Εικ Τριμερή διαγράμματα (Ternary diagrams) Ένας άλλος τρόπος γραφικής αναπαράστασης που χρησιμοποιείται κατά κόρον στην ανάλυση δεδομένων συστάσεων είναι τα τριμερή διαγράμματα(ternary diagrams). Μία σημαντική διαφορά από το biplot είναι πως στα τριμερή διαγράμματα μπορούν να αναπαρασταθούν κάθε φορά 3 από τις μεταβλητές των δεδομένων μας. Η επιλογή των μεταβλητών βρίσκεται στην ευχέρεια μας. Ανάλογα με το ποιες μεταβλητές θέλουμε ή χρειαζόμαστε να δούμε τι είδους συσχέτιση έχουν μεταξύ τους επιλέγουμε κάθε φορά ποιες τρεις μεταβλητές θα συμπεριληφθούν στο διάγραμμα. Ορισμός τριμερούς διαγράμματος: Ορίζεται ως διάγραμμα τριμερές (ternary diagram)να είναι ένα ισόπλευρο τρίγωνο έτσι ώστε το δείγμα p = [ p, p, p] να a b c σχηματιστεί σε απόσταση p a από την απέναντι πλευρά της κορυφής Α, σε απόσταση p b από την απέναντι κορυφή Β και σε απόσταση p c από την απέναντι κορυφή C. Η «τριπλέτα» [ pa, pb, p c] καλείται και «βαρυκεντρικές συντεταγμένες». Παρακάτω δίνεται ένα ενδεικτικό τριμερές διάγραμμα. Εικ

18 Προφανώς οι κορυφές A, B και C του ισόπλευρου αυτού τριγώνου αναπαριστούν τις τρεις μεταβλητές από τις οποίες μας ενδιαφέρει η μεταξύ τους συσχέτιση. Οι κουκίδες εντός του τριγώνου εκφράζουν τις τιμές των μεταβλητών (στη δική μας περίπτωση τα έργα-projects που εξετάζουμε). Οι τιμές που παίρνουν εξαρτώνται από τις μεταβλητές. Oι τιμές αυτές όταν αθροιστούν δίνουν ως αποτέλεσμα την μονάδα. Πιο συγκεκριμένα, η απόσταση της κουκίδας από την απέναντι πλευρά μιας κορυφής, μας δίνει την τιμή του έργου (project) για αυτήν την μεταβλητή. Όσο πιο μεγάλη είναι η απόσταση τόσο μεγαλύτερη είναι και η αντίστοιχη τιμή. Στο παραπάνω σχήμα βλέπουμε πως η απόσταση p 1 είναι μεγάλη, άρα η τιμή που παίρνει το συγκεκριμένο έργο (project) είναι μεγαλύτερη στην μεταβλητή Α, πιο μικρή στην μεταβλητή Β και την μικρότερη τιμή στην μεταβλητή C ενδρογράμματα (dendrograms) Ένας άλλος γραφικός τρόπος αναπαράστασης των δεδομένων είναι τα δενδρογράμματα. Αξίζει να αναφερθεί πως τα δενδρογράμματα χρησιμοποιούνται σε πολλές επιστημονικές αναλύσεις πέραν της ανάλυσης δεδομένων συστάσεων (Βιολογία, Στατιστική ανάλυση ομάδων και άλλα). Το δενδρόγραμμα ακριβώς όπως προϊδεάζει το όνομα του στην ουσία είναι ένα δένδρο που κατανέμει τα δεδομένα ανάλογα με τις παρατηρήσεις που μας ενδιαφέρουν. Στην ουσία μιλάμε για μία ιεραρχική δομή δεδομένων. Σε αυτό, οι κάθετες γραμμές δηλώνουν συνδυασμούς ομάδων παρατηρήσεων (clusters), ενώ το μήκος κάθε γραμμής δηλώνει την απόσταση κατά την οποία οι ομάδες συνδυάζονται. ιαφορετική ομάδα σχηματίζεται όταν εμφανίζεται κενό στο δενδρόγραμμα και η απόσταση είναι μικρότερη ή ίση μιας τιμής κατωφλίου όπως ονομάζεται (συνηθίζεται αυτή η τιμή να υπολογίζεται μέσω της Ευκλείδειας απόστασης). Η τιμή κατωφλίου ορίζεται ανάλογα με το πρόβλημα που μελετάμε και είναι σημαντική μια και μετά από αυτή την τιμή οι αποστάσεις-συντελεστές είναι μεγάλοι. Μπορούμε να διακρίνουμε τις συστάδες αν φέρουμε μία κάθετη γραμμή στην κλίμακα των αποστάσεων. Παρακάτω βλέπουμε ενδεικτικά κάποια δενδρογράμματα Εικ.1-3 Εικ

19 1.5 Ανάλυση Συστάδων Συσταδοποίηση (Cluster Analysis) Μία στατιστική έννοια η οποία είναι ευρύτερη και δεν ανήκει στην Ανάλυση δεδομένων συστάσεων αλλά χρησιμεύει στην εργασία μας όπως και σε πολλές σύγχρονες εφαρμογές είναι η ανάλυση συστάδων. Γενικά μπορούμε να πούμε πως η ανάλυση συστάδων, συνήθως αναφέρεται ως Cluster Analysis, είναι η διαδικασία η οποία επιτυγχάνει τη διαμέριση του συνόλου των δεδομένων σε συστάδες (ομάδες). Ουσιαστικά, μιλάμε για μία διαδικασία ταξινόμησης η οποία προσπαθεί να ανακαλύψει ομοιότητες στα δεδομένα, άρα να τα ομαδοποιήσει σύμφωνα με αυτές τις ομοιότητες. Κάθε αντικείμενο του συνόλου δεδομένων μας ανήκει σε μία και μοναδική συστάδα. Προφανώς, το σύνολο των συστάδων που έχουν σχηματιστεί περιέχει όλα τα δεδομένα. Αξίζει να αναφερθεί πως σαν λύση μπορεί να θεωρηθεί και η αδυναμία σχηματισμού ομάδων. Συστάδες μπορούν να σχηματιστούν είτε με ποσοτικά είτε με ποιοτικά δεδομένα. Στην παρούσα εργασία μας ενδιαφέρουν τα ποσοτικά δεδομένα. Οι ιδιότητες που μας ενδιαφέρουν συνήθως είναι η εσωτερική συνοχή (homogeneity) και η εξωτερική απομόνωση (separation). Ενώ σημαντικό ρόλο στην αναγνώριση των ομάδων έχουν οι σχετικές αποστάσεις ανάμεσα στα σημεία του αντίστοιχου χώρου. Επομένως η αναγνώριση των ομάδων γίνεται λαμβάνοντας υπόψη το πόσο κοντά η μακριά βρίσκονται τα αντικείμενα μεταξύ τους. Αυτό υπολογίζεται μέσω ενός n x n πίνακα αποστάσεων. Το κριτήριο είναι η εγγύτητα (proximity) που στην ουσία μας λέει πόσο κοντά είναι τα αντικείμενα μεταξύ τους Ιεραρχική Ανάλυση Συστάδων (Hierarchical Cluster Analysis) Η ιεραρχική ανάλυση συστάδων (HCA) είναι μία πολυμεταβλητή στατιστική διαδικασία η οποία προσπαθεί μέσω αλγορίθμων να αναγνωρίσει κοινά χαρακτηριστικά στα δεδομένα και να τα ομαδοποιήσει. Αυτό γίνεται με διάφορες μεθόδους τις οποίες και θα αναφέρουμε. Αυτές οι μέθοδοι κατηγοριοποιούνται σε δύο είδη. Τις μεθόδους συσσώρευσης (agglomerative methods), που θα μας απασχολήσουν και στην παρούσα εργασία, και τις μεθόδους διαίρεσης (division methods). Οι συσσωρευτικές μέθοδοι χρησιμοποιούνται συχνότερα από τις μεθόδους διαίρεσης. Η γενική φιλοσοφία είναι πως ξεκινάμε από κάθε αντικείμενο δεδομένων ξεχωριστά (στην περίπτωση μας από κάθε έργο) σαν αυτόνομη ομάδα και βήμαβήμα σχηματίζονται μεγαλύτερες ομάδες (clusters) μέχρι όλα τα έργα να ανήκουν σε μία και μοναδική ομάδα. Ο συνδυασμός των αντικειμένων σε ομάδες «παρόμοιων» ή «κοντινών» αντικειμένων γίνεται με βάση τον πίνακα εγγύτητας (proximity matrix). 18

20 Ενώ στις μεθόδους διαίρεσης συμβαίνει το αντίθετο. Ενδεικτικά αναφέρουμε κάποιες μεθόδους υπολογισμού της απόστασης ανάμεσα στις ομάδες: Μέθοδος κοντινότερου γείτονα (nearest neighbor) ή του απλού συνδέσμου (simple linkage), Μέθοδος του μακρινότερου γείτονα (furthest neighbor), Μέθοδος του πλήρους συνδέσμου (complete linkage), Μέθοδος του κεντροειδούς (Ευκλείδειας απόστασης), Μέθοδος μέσης απόστασης (average link method), Μέθοδος Ward και τέλος, Μέθοδος της διαμέσου (median method). Στην εργασία μας η μέθοδος που θα χρησιμοποιήσουμε για να δημιουργήσουμε τα δενδρογράμματα που θέλουμε είναι η Ward μέθοδος. Σε αυτή την μέθοδο βρίσκουμε την απόσταση των κέντρων των ομάδων R και Q η οποία πολλαπλασιάζεται με έναν παράγοντα. Ο μαθηματικός τύπος της μεθόδου του Ward είναι ο εξής: 2 RQ DRQ = x( R) x( Q) R + Q 2 (1.27) Η μέθοδος αυτή εφαρμόζεται μόνο σε ποσοτικά δεδομένα. Βασίζεται στην ελαχιστοποίηση της «απώλειας πληροφορίας» η οποία προκύπτει όταν δύο συστάδες συγχωνεύονται. Ως «απώλεια πληροφορίας» ορίζεται ένα άθροισμα τετραγώνων σφαλμάτων. Ένα από τα πλεονεκτήματα της ιεραρχικής ανάλυσης συστάδων (HCA) είναι πως η διαδικασία που μόλις περιγράψαμε είναι δυνατόν να μας δώσει ένα δενδρόγραμμα. Νωρίτερα αναφέραμε τα χαρακτηριστικά και τις ιδιότητες ενός δενδρογράμματος. Ουσιαστικά δείχνει τη διαδικασία ένωσης των ομάδων. Έτσι βλέπουμε στην πράξη την ομαδοποίηση των δεδομένων βάση της ομοιότητας τους. Με αυτό τον τρόπο μπορούμε να δούμε ποια έργα (projects) έχουν ομοιότητες ή κοινά χαρακτηριστικά μεταξύ τους, μέσω των ομάδων (clusters) που σχηματίζονται. Αξίζει να αναφερθεί πως με τον ίδιο τρόπο μπορεί να επιτευχθεί η ομαδοποίηση των μεταβλητών. Μέχρι τώρα αναφερόμασταν στο σύνολο των δεδομένων έχοντας ως σκοπό την ομαδοποίηση των αντικειμένων, δηλαδή των έργων λογισμικού όπως θα δούμε αργότερα. Όμως, μπορούμε να αναζητήσουμε και συστάδες των μεταβλητών. Σε αυτή την περίπτωση μέτρο απόστασης είναι ο συντελεστής συσχέτισης. Ενώ για να μη θεωρηθεί η αρνητική συσχέτιση σαν ανομοιότητα παίρνουμε τις απόλυτες τιμές των συσχετίσεων. 19

21 2. Παρουσίαση της στατιστικής γλώσσας R. 20

22 2.1 Εισαγωγή Η R είναι μία ελεύθερη γλώσσα η οποία παρέχει ένα δυναμικό περιβάλλον για στατιστικούς υπολογισμούς, γραφικά καθώς και ανάλυση δεδομένων. Ανήκει στην κατηγορία του ανοικτού και ελεύθερου λογισμικού (GNU) και πρόκειται για το αντίστοιχο πακέτο της γλώσσας S που έχει αναπτυχθεί ως εμπορικό προϊόν. Μπορεί να μεταγλωττιστεί και να τρέξει σε πολλές πλατφόρμες UNIX, όπως οι εκδόσεις Linux, Windows και MacOs. Η R και η S έχουν κάποιες διαφορές, ωστόσο τα κοινά τους σημεία είναι πολλά περισσότερα αφού πολλές εντολές καθώς και κομμάτια κώδικα της S μπορούν να χρησιμοποιηθούν στην R ακόμα και αυτούσια. Οι δυνατότητες της R είναι υψηλού επιπέδου και συνεχώς εξελίσσονται. Η R παρέχει μια μεγάλη ποικιλία στατιστικών (γραμμικά και μη γραμμικά μοντέλα, στατιστικά τεστ, ανάλυση χρονοσειρών και άλλα) και γραφικών δυνατοτήτων και μεθόδων. Γενικότερα μπορούμε να πούμε πως μας παρέχει ένα περιβάλλον για χειρισμό δεδομένων, υπολογισμούς και γραφήματα. Το περιβάλλον αυτό περιέχει: Αποτελεσματικό τρόπο διαχείρισης δεδομένων Εντολές και τελεστές για πράξεις πινάκων Γραφικές δυνατότητες για ανάλυση δεδομένων και παρουσίασή τους Απλές και αποτελεσματικές προγραμματιστικές μεθόδους όπως: συνθήκες, βρόγχους επανάληψης, συναρτήσεις ορισμένες από τους χρήστες, αναδρομή καθώς και δυνατότητες εισόδου-εξόδου. Ένα πολύ σημαντικό πλεονέκτημα της R είναι πως μπορεί και επεκτείνει τις δυνατότητές ενσωματώνοντας πακέτα (packages). Τα πακέτα προσθέτουν στην R νέες εντολές, συναρτήσεις και σύνολα δεδομένων που αφορούν συγκεκριμένα επιστημονικά πεδία ή συγκεκριμένες μεθόδους. Στην αρχική διανομή της R υπάρχουν οκτώ πακέτα ενσωματωμένα για τις βασικές λειτουργίες που αυτή υποστηρίζει. Όσον αφορά την Ανάλυση δεδομένων συστάσεων (Compositional Data Analysis) στην R, υπάρχουν δύο πακέτα. Το πακέτο compositions το οποίο είναι πλήρες και το πακέτο robcompositions το οποίο παρέχει κάποιες χρήσιμες εντολές αλλά δεν είναι τόσο πλούσιο σε εντολές όσο το πρώτο πακέτο. Ωστόσο μέχρι στιγμής έχουν αναπτυχθεί περισσότερα από 3150 πακέτα τα οποία μπορούμε να εγκαταστήσουμε και αφορούν πολλές και διαφορετικές λειτουργίες και επιστημονικά πεδία. 21

23 Εικ Βασικές έννοιες Η R είναι μία διερμηνέας γλώσσα προγραμματισμού. Αυτό σημαίνει πως αφού διαβαστεί μία εντολή εκτελείται αμέσως. Αντιθέτως, γλώσσες όπως η C και η Java τρέχουν ολοκληρωμένα προγράμματα σε έναν μεταγλωττιστή. Το πλεονέκτημα στις γλώσσες που διερμηνεύονται είναι η σταδιακή ανάπτυξη ενός προγράμματος. Από την άλλη το μειονέκτημα είναι η ταχύτητα, καθώς γλώσσες που μεταγλωττίζονται είναι σαφώς ταχύτερες αλλά και οι μεγάλες απαιτήσεις σε αποθηκευτικό χώρο. Η αλληλεπίδραση της γλώσσας R γίνεται χρησιμοποιώντας εκφράσεις τις οποίες ο διερμηνέας αξιολογεί και εκτελεί. Τέλος αξίζει να αναφερθεί πως η R είναι γλώσσα Case Sensitive, δηλαδή η έκφραση x είναι διαφορετική από την έκφραση X. 2.2 Αντικείμενα δεδομένων Η R υποστηρίζει 6 διαφορετικούς τύπους αντικειμένων δεδομένων. Οι μορφές αυτές είναι οι ακόλουθες: ιάνυσμα (vector) 22

24 Πίνακας (matrix) Πίνακας πολλαπλών διαστάσεων (arrays) Λίστα (list) Παράγοντας (factor) Πλαίσιο δεδομένων(data frames) Αξίζει να τονίσουμε πως ο διερμηνευτής της R αφού αξιολογήσει μία έκφραση επιστρέφει μία τιμή η οποία μπορεί να είναι: Λογική (logical) Αριθμητική (arithmetic) Μιγαδική (complex) Κειμένο (character) ιανύσματα (vector) Η πιο απλή μορφή αντικειμένου δεδομένων είναι το διάνυσμα. Το διάνυσμα είναι ένα διατεταγμένο σύνολο τιμών σε σειρά. Ο πιο απλός τρόπος να δημιουργήσουμε ένα διάνυσμα είναι μέσω της εντολής c. Για τη δημιουργία και την αρχικοποίηση ενός διανύσματος με τις τιμές 1,2,3,4 η εντολή που πληκτρολογούμε είναι: > a<-c(1,2,3,4) Με την παρακάτω εντολή επιστρέφεται το μήκος του διανύσματος, δηλαδή το πλήθος των στοιχείων του a: > length(a) Αν θέλω να βρω τον τύπο του διανύσματος a η εντολή είναι: > mode(a) Όσον αφορά τη δημιουργία μίας ακολουθίας, χρησιμοποιώ τον τελεστή άνω-κάτω τελεία «:» > 1:n Η παραπάνω εντολή δίνει ως αποτέλεσμα τους αριθμούς από 1 έως n. Εφόσον χρειάζεται να επαναληφθούν κάποιες τιμές σε ένα διάνυσμα τότε μπορούμε να χρησιμοποιήσουμε τη συνάρτηση rep(). Παρακάτω βλέπουμε πως θα δημιουργηθεί ένα διάνυσμα στο οποίο το a θα επαναληφθεί n φορές > rep(a,n) Μία άλλη συνάρτηση η οποία μπορεί να μας φανεί χρήσιμη είναι η seq() η οποία δημιουργεί ακολουθίες. Έτσι για να παραχθεί μία ακολουθία με πρώτο όρο τον αριθμό a και τελευταίο τον n με βήμα 1, πληκτρολογώ: > seq(a,n) 23

25 Το βήμα ισχύει ακόμα και αν ο a είναι δεκαδικός. Σε εντολές και συναρτήσεις όπως η seq() και η rep() αλλά και γενικότερα στις συναρτήσεις της R υπάρχουν διάφορα κοινά ορίσματα που μπορούν να ενσωματωθούν ώστε να είναι πιο εξειδικευμένο το αποτέλεσμά μας. Αν θέλουμε λοιπόν σε μία ακολουθία να ορίσουμε εμείς το βήμα τότε χρησιμοποιούμε το όρισμα by. Παρακάτω δημιουργείται ακολουθία με αρχική τιμή το 0.2 και βήμα το 0.5 (by 0.5) > seq(0,2,by=0.5) Ενώ για να ορίσω τον αριθμό των στοιχείων χρησιμοποιώ το όρισμα length. ημιουργείται ακολουθία 12 στοιχείων (length=12), με αρχική τιμή το 4 και βήμα το 0.5 (by 0.5) : > seq(4,0.5,length=12) Πίνακες (matrix) Οι πίνακες χρησιμοποιούνται για να διατάξουμε δεδομένα σε γραμμές και σε στήλες. Οι πίνακες μπορούν να είναι είτε μονοδιάστατοι (στήλη ή σειρά) είτε παραπάνω διαστάσεων. Ξεχωρίζει η εντολή dim() η οποία επιστρέφει τις διαστάσεις του πίνακα καθώς επίσης και διατάσσει τα στοιχεία. Παρακάτω ένα συνοπτικό παράδειγμα Αρχικά, δημιουργώ έναν πίνακα(σειρά) όπου επαναλαμβάνονται τα στοιχεία 1 έως 4, συνεχόμενα το καθένα για τρεις φορές. > matr<-rep(1:4,rep(3,4)) Ύστερα, με την εντολή dim() η προηγούμενη σειρά μετατρέπεται σε δισδιάστατο πίνακα μεγέθους 3x4 και τα στοιχεία κατανέμονται κατάλληλα > dim(matr)<-c(3,4) Για τη δημιουργία πινάκων μπορεί να χρησιμοποιηθεί και η συνάρτηση seq() που είδαμε νωρίτερα: > newmatr<-seq(-1,1,length=16) Με την ακόλουθη εντολή δείχνουμε με ποιον τρόπο ορίζουμε εμείς την μορφή που θέλουμε να έχει ο πίνακας (4x4). > dim(newmatr)<-c(4,4) Με τις εντολές cbind() και rbind() μπορούμε να διατάξουμε τα στοιχεία ενός πίνακα ανά στήλη και ανά γραμμή αντίστοιχα. ιάταξη ανά γραμμή: > matr<-rbind(c(1,3,5),c(2,4,6)) ιάταξη ανά στήλη. > matr<-cbind(c(1,3,5),c(2,4,6)) 24

26 Σε περίπτωση που συνδυαστούν διανύσματα διαφορετικού μεγέθους για να μας δώσουν έναν πίνακα τότε οι τιμές των διανυσμάτων επαναλαμβάνονται κυκλικά ώστε να γεμίσει ο πίνακας με στοιχεία Πίνακες πολλαπλών διαστάσεων (Arrays) Τα δεδομένα σε αυτή την περίπτωση όπως υποδηλώνουν και το όνομα τους είναι πίνακες με διαστάσεις μεγαλύτερες του δύο. Στην ουσία μιλάμε για πίνακεςπινάκων, δηλαδή το κάθε στοιχείο σε έναν πίνακα είναι και αυτό με τη σειρά του ένας άλλος πίνακας. Ακριβώς όπως επεκτείνεται η έννοια των πινάκων (matrix) το ίδιο συμβαίνει και με την συνάρτηση dim() στην περίπτωση των αντικειμένων τύπου arrays. ημιουργία 3 πινάκων με διαστάσεις 2x4. Ο πρώτος πίνακας περιέχει τα στοιχεία 1 έως 8 δηλαδή, τα στοιχεία του πρώτου ορίσματος. Αντίστοιχα ο δεύτερος και ο τρίτος τα στοιχεία 10 έως 18 και 20 έως 28 > arr<-array(c(1:8,10:18,20:20),dim=c(2,4,3)) Η συνάρτηση dim() στην ουσία καθορίζει το μέγεθος του πίνακα πολλαπλών διαστάσεων (array). Στην προκειμένη περίπτωση με την εντολή dim(2,4,3) δημιουργείται array το οποίο έχει τρεις πίνακες δύο γραμμών και τεσσάρων στηλών (2x4). Στην επόμενη εντολή θα δημιουργήσουμε 4 πίνακες διαστάσεων 2x4. Τα στοιχεία κατανέμονται συνεχόμενα στους πίνακες αφού και οι 4 μαζί θεωρούνται ένα αντικείμενο, το arr, που είναι αντικείμενο τύπου array. > arr<-array(c(1:8,10:18,200:214),dim=c(2,4,4)) Ισχύουν και εδώ οι ίδιες συναρτήσεις με τους πίνακες, όσον αφορά το μέγεθος, τις διαστάσεις και το είδος των τιμών τους. H length() μας δίνει το πλήθος των στοιχείων ενός array. > length(arr) H mode() μας δίνει ως αποτέλεσμα τον τύπο των στοιχείων του array. > mode(arr) Ενώ η συνάρτηση dim() τις διαστάσεις του array. > dim(arr) Λίστες (lists) Συχνά υπάρχει ανάγκη για αντικείμενα δεδομένων διαφόρων ειδών τιμών. Οι λίστες (lists) εισάγουν αυτά τα δεδομένα τα οποία αποτελούνται από διάφορες συνιστώσες κάθε μία από τις οποίες μπορεί να έχει διαφορετική μορφή. 25

27 Θα δούμε τώρα τον τρόπο για τη δημιουργία λιστών διαφόρων αντικειμένων δεδομένων. ημιουργία λίστας με αριθμητικές τιμές. Συγκεκριμένα θα επαναληφθεί η ακολουθία 1 έως 3, τέσσερις φορές. > lista1<-c(rep(1:3,4)) ημιουργία λίστας λογικών τιμών True ή False. > lista2<-c(t,f,f,t) Ομαδοποίηση των δύο παραπάνω λιστών που δημιούργησα και προσθήκη μίας τρίτης, της descrip που είναι string. >group<-list(test=lista1,exer=lista2,descrip="a simple example + for lists in R") Εφόσον θέλουμε να εξετάσουμε μία συγκεκριμένη συνιστώσα της λίστας μπορούμε να χρησιμοποιήσουμε τον τελεστή δολάριο ($) ή τη διπλή αγκύλη [[]] για να την εξάγουμε. Στην ουσία οι τελεστές αυτοί λειτουργούν σαν δείκτες. Για την εξαγωγή της συνιστώσας της exer από την group έχουμε: > group$exer Ενώ για την εξαγωγή του 3 ου στοιχείου της group, δηλαδή της descrip: > group[[3]] Προφανώς, οι συνιστώσες της λίστας είναι διατεταγμένες σε αύξουσα σειρά. Επίσης, ισχύουν και σε αυτή την περίπτωση οι συνήθεις πλέον συναρτήσεις length(), mode() καθώς και μία νέα η names() η οποία ως αποτέλεσμα μας δίνει τα ονόματα των επιμέρους διανυσμάτων ή αντικειμένων που αποτελούν την λίστα > length(group) > mode(group) > names(group) Στην προκειμένη περίπτωση το αποτέλεσμα που επιστρέφει η R αφού πληκτρολογήσουμε την names, είναι τα ονόματα των τριών συνιστωσών, δηλαδή "test", "exer" και "descrip" Παράγοντες (factors) Σε πολλές μελέτες ή προβλήματα οι μεταβλητές εκτός από ποσοτικές μπορεί να είναι κατηγορικές ή ποιοτικές. Τέτοια παραδείγματα είναι το φύλο ενός ανθρώπου το οποίο μπορεί να είναι «άνδρας» ή «γυναίκα» ή οι κατευθύνσεις στις τελευταίες τάξεις του λυκείου οι οποίες παίρνουν τις τιμές «θεωρητική», «τεχνολογική» και «θετική». Στην R τέτοια αντικείμενα δεδομένων καλούνται παράγοντες (factors) και μοντελοποιούνται εφαρμόζοντας τη συνάρτηση factor(). Βλέπουμε αρχικά την δημιουργία ενός διανύσματος μέσω της εντολής c() με τιμές arren και ginaika. 26

28 Κατόπιν με εφαρμογή στο διάνυσμα της εντολής factor, το έχουμε μετατρέψει σε αντικείμενο δεδομένων τύπου παράγοντα. > fyllo<-c("arren","arren","ginaika","arren") > factor(fyllo) Σε περίπτωση που μας ενδιαφέρει η διάταξη των παραγόντων τότε χρησιμοποιούμε τη συνάρτηση ordered. > diataksi<-ordered(c("hi","med","lo","lo","hi")) Άλλες χρήσιμες εντολές όσον αφορά τους παράγοντες είναι οι ακόλουθες: > length(diataksi) > mode(diataksi) > names(diataksi) Η class() μας δίνει ως αποτέλεσμα τις συναρτήσεις που χρησιμοποιήθηκαν. > class(diataksi) Ενώ η εντολή levels() μας δίνει τις τιμές που περιέχει ο παράγοντας μας. > levels(diataksi) Πλαίσια δεδομένων (data frames) Τα πλαίσια δεδομένων είναι ένας πολύ δημοφιλής και χρήσιμος τρόπος αναπαράστασης δεδομένων στην R. Πιο συγκεκριμένα ένα πλαίσιο δεδομένων προσφέρει τη δυνατότητα να συνδυαστούν διαφορετικές μορφές αντικειμένων σε ένα μόνο αντικείμενο δεδομένων. Η εσωτερική οργάνωση των δεδομένων σε ένα πλαίσιο δεδομένων λειτουργεί ταξινομώντας κάθε μεταβλητή ανά στήλη ανεξάρτητα από την μορφή της εκάστοτε μεταβλητής. Ένα παράδειγμα μπορούμε να δούμε από το σύνολο δεδομένων AMSsurvey το οποίο βρίσκεται ενσωματωμένο στο πακέτο car. Αρχικά φορτώνουμε το σύνολο των δεδομένων, κατόπιν πληκτρολογούμε το όνομα του συνόλου ώστε να παρουσιαστούν τα δεδομένα. > data(amssurvey) > AMSsurvey Εικ

29 Παρατηρούμε πως η μεταβλητή count είναι συνεχής και αριθμητική ενώ οι υπόλοιπες μεταβλητές είναι τύπου factor. Για να κατασκευάσω ένα data frame χρησιμοποιώ τις εξής εντολές: data.frame() όπου ομαδοποιούνται αντικείμενα διαφορετικών μορφών as.data.frame() όπου μετατρέπει ένα αντικείμενο σε μορφή πλαισίου δεδομένων read.table() διαβάζει δεδομένα από εξωτερικό αρχείο. Με τις παρακάτω εντολές δημιουργώ και αρχικοποιώ τρία νέα αντικείμενα δεδομένων διαφορετικού τύπου το καθένα> > my.logic<-sample(c(t,f),size=10,replace=t) > my.numeric<-rnorm(10) # παράγει διάνυσμα 10 αριθμών > my.matrix<-matrix(rnorm(20),ncol=2) Ενοποιώ τα τρία παραπάνω αντικείμενα σε ένα data frame. Η πρώτη στήλη περιέχει τα στοιχεία του my.logic και ακολουθούν η δεύτερη με το my.numeric και τέλος ο πίνακας my.matrix > my.dataframe<-data.frame(my.logic,my.numeric,my.matrix) Μπορούμε και εδώ να εφαρμόσουμε τις εντολές rbind και cbind ώστε να διαταχθούν τα στοιχεία ανά γραμμή ή ανά στήλη. Όπως και οι συνήθεις εντολές για το μέγεθος διανύσματος ή τις διαστάσεις ενός πλαισίου δεδομένων. > length(my.dataframe) > dim(my.dataframe) > is.data.frame(my.dataframe) # Το αποτέλεσμα θα είναι T ή F > is.list(my.dataframe) # Το αποτέλεσμα θα είναι T ή F > is.matrix(my.dataframe) # Το αποτέλεσμα θα είναι T ή F > names(my.dataframe) Αφού είδαμε κάποιες βασικές έννοιες καθώς και τα αντικείμενα της R αξίζει να αναφέρουμε κάποιες σύντομες βοηθητικές εντολές οι οποίες θεωρούνται γενικής χρήσης και χρησιμοποιούνται από όλους τους προγραμματιστές της R. Αυτό συμβαίνει όπως θα δούμε γιατί οι περισσότερες αν όχι όλες οι συναρτήσεις της R έχουν online documentation στην οποία εξηγείται αναλυτικά η λειτουργία τους καθώς και οι παράμετροι που δέχεται κάθε συνάρτηση. Χρησιμοποιώντας την εντολή: > help(topic) Όπου topic η εντολή που μας ενδιαφέρει, μας παρέχεται το documentation της εντολής. Αντίστοιχη είναι και η εντολή: > help.search( topic ) 28

30 Όπως και η παρακάτω εντολή η οποία όμως μας κατευθύνει στην κεντρική HTML σελίδα της βοήθειας και όχι σε κάποια συγκεκριμένη εντολή. Από αυτή τη σελίδα μπορούμε να αναζητήσουμε στα περιεχόμενα εντολές ή πακέτα που χρειαζόμαστε κάποια περαιτέρω βοήθεια. > help.start() Τέλος αξίζει να αναφέρουμε πως μπορούμε να κατευθυνθούμε στο help της R απλά πληκτρολογώντας το ερωτηματικό και την εντολή που μας ενδιαφέρει. >? merge(a,b) Επίσης υπάρχουν και εντολές οι οποίες μας βοηθάνε να δούμε ποια αντικείμενα και ποιές μεθόδους χρησιμοποιούμε σε κάποια εργασία. > ls() Η οποία μας δίνει ως αποτέλεσμα όλα τα αντικείμενα objects που έχουν δημιουργηθεί μέχρι στιγμής. > dir() Μας δίνει τα αρχεία στο directory το οποίο δουλεύουμε. 29

31 2.3 Μαθηματικές συναρτήσεις Η R ως γλώσσα προγραμματισμού με έμφαση τις στατιστικές εφαρμογές και τους μαθηματικούς υπολογισμούς παρέχει έτοιμες πολλές εντολές και συναρτήσεις που αφορούν αυτά τα πεδία. Ενώ παράλληλα με την επεκτάσιμη μορφή που έχει εξαιτίας των πακέτων που μπορούμε να εγκαταστήσουμε και τρέξουμε ενσωματώνει συνεχώς νέες και πιο εξειδικευμένες δυνατότητες. Παρακάτω θα δούμε μερικές από τις πιο βασικές λειτουργίες που μας παρέχει η R όσον αφορά τις μαθηματικές συναρτήσεις Βασικές συναρτήσεις και αριθμητικές πράξεις Στον παρακάτω πίνακα μπορούμε να δούμε τους τελεστές τους οποίους χρειαζόμαστε προκειμένου να επιτελέσουμε τις βασικές αριθμητικές πράξεις. Τελεστής Πράξη + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / ιαίρεση ^ Ύψωση σε δύναμη %/% Ακέραια διαίρεση %% Ακέραιο υπόλοιπο Οι παραπάνω τελεστές εκτός από αριθμούς μπορούν να εφαρμοστούν και σε διανύσματα ή πίνακες. Οι υπολογισμοί σε πίνακες και διανύσματα συνηθίζεται να γίνονται ανά στοιχείο υποθέτοντας πάντα πως οι διαστάσεις των πινάκων είναι συμβατές μεταξύ τους. Ωστόσο αυτό πολλές φορές δε συμβαίνει. Έτσι όταν έχουμε πράξεις επί διανυσμάτων ή πινάκων που δεν έχουν ίσες διαστάσεις τότε το μικρότερο διάνυσμα επαναλαμβάνει τα στοιχεία του κυκλικά μέχρι να έχει ίδια διάσταση με το μεγαλύτερο και να παραχθεί το αποτέλεσμα. Γενικότερα οι μαθηματικοί υπολογισμοί μεταξύ διανυσμάτων και πινάκων μπορεί να επιφέρουν προβλήματα και μη προσδοκώμενα αποτελέσματα για αυτό και η R παρέχει συγκεκριμένες συναρτήσεις για τις βασικές πράξεις πινάκων που συναντάμε και στην Γραμμική Άλγεβρα. 30

32 Εντολή-Συνάρτηση Πράξη %*% Πολλαπλασιασμός πινάκων ή εσωτερικό γινόμενο διανυσμάτων t() Ανάστροφος πίνακας (transposal) solve() Αποτέλεσμα ο αντίστροφος πίνακας εφόσον υπάρχει, χρησιμοποιείται ευρέως για επίλυση γραμμικών συστημάτων diag() Κατασκευή διαγώνιου πίνακα ή εξαγωγή της διαγωνίου από έναν ήδη ορισμένο πίνακα eigen() Ιδιοτιμές και ιδιοδιανύσματα ενός πίνακα > x+y # Το διάνυσμα x επαναλαμβάνει κυκλικά τις τιμές του μέχρι να είναι ίδιας διάστασης με το y > A%*%B # Πολλαπλασιασμός πινάκων > w%*%x # Εσωτερικό γινόμενο διανυσμάτων > t(b) # Ανάστροφος πίνακας (transposal matrix) > solve(b) # Αντίστροφος του Β > solve(a) # Ο αντίστροφος του Α δεν υπάρχει και άρα παίρνω # μήνυμα λάθους > diag(a) # Εξαγωγή διαγώνιου από τον πίνακα Α > I3<-diag(3) # Δημιουργία μοναδιαίου πίνακα Ι 3 > sum(diag(a)) # Άθροισμα της διαγώνιου ενός πίνακα > eigen(a) # Ιδιοτιμές και κατόπιν ιδιοδιανύσματα Για να βρω την ορίζουσα ενός πίνακα Α πληκτρολογώ την ακόλουθη εντολή. Αν ο Α δεν είναι τετραγωνικός παίρνω μήνυμα λάθους. > prod(eigen(a)$values) ιαφορικός και ολοκληρωτικός λογισμός με την R. Η R όπως γνωρίζουμε έχει ευρεία εφαρμογή σε στατιστικές μεθόδους. Ωστόσο πάντα θα χρειάζονται λίγο η πολύ βασικές λειτουργίες του λογισμού. Όσον αφορά την παραγώγιση υπάρχουν δύο τρόποι. Ο πρώτος είναι με τον τελεστή που μας παρέχει η γλώσσα, D. Για παράδειγμα αν θέλω την παράγωγο της συνάρτησης 2x 3 ως προς x πρέπει να πληκτρολογήσω και να εκτελέσω την κάτωθι εντολή: 31

33 > D(expression(2*x^3), x ) Το αποτέλεσμα που θα μου δώσει η R προφανώς είναι 2 23x Ακόμη μπορώ για λόγους απλότητας πρώτα να αναθέσω τη συνάρτηση σε μια μεταβλητή και ύστερα να παραγωγίσω την μεταβλητή αυτή. > trig.exp<-expression(sin(cos(x+y^2))) > D(trig.exp, x ) Ένας δεύτερος τρόπος για να πραγματοποιήσω παραγώγιση συναρτήσεων στο περιβάλλον της R είναι με την εντολή deriv. Αυτή η εντολή λειτουργεί με τον ίδιo τρόπου που λειτουργεί και η D. Σε αυτό το σημείο θα φέρουμε και ένα παράδειγμα για να κατανοήσουμε με ποιον τρόπο γίνεται η παραγώγιση συναρτήσεων πολλών μεταβλητών. > deriv((y ~ sin(cos(x) * y)), c("x","y"), func = TRUE) Όσον αφορά την ολοκλήρωση συναρτήσεων έχουμε τη συνάρτηση integrate. Η σύνταξή της είναι απλή και μπορούμε να την καταλάβουμε ευκολότερα με το παρακάτω σύντομο παράδειγμα: > integrand <- function(x) {1/((x+1)*sqrt(x))} > integrate(integrand, lower = 0, upper = Inf) Στην πρώτη εντολή καταχωρούμε στην μεταβλητή integrand τη συνάρτηση που επιθυμούμε να ολοκληρώσουμε. Στη δεύτερη εντολή όπου και χρησιμοποιούμε την εντολή integrate, τοποθετούμε στο πρώτο όρισμα την μεταβλητή που περιέχει τη συνάρτηση μας, στο δεύτερο όρισμα έχουμε lower = 0 που είναι και το κάτω όριο ολοκλήρωσης ενώ στο τρίτο και τελευταίο όρισμα upper = Inf που είναι το άνω όριο ολοκλήρωσης και είναι προφανώς το άπειρο. Στο αποτέλεσμα η R δίνει και μία τιμή για ενδεχόμενο δεκαδικό σφάλμα. Στο παράδειγμά μας το αποτέλεσμα είναι: with absolute error < 2.7e Άλλες χρήσιμες μαθηματικές εντολές και συναρτήσεις γενικού σκοπού Η R όπως γνωρίζουμε παρέχει πολλές προγραμματιστικές δυνατότητες αλλά αρχικά αναπτύχθηκε για στατιστικούς υπολογισμούς. Έτσι, παρέχει πληθώρα μαθηματικών συναρτήσεων με ευρεία εφαρμογή. Aκόμη θα δούμε κάποιες εντολές για διαχείριση συμβολοσειρών, ημερομηνίες, γραφήματα και διαχείριση δεδομένων. 32

34 Εντολή Συνάρτηση Πράξη max(x), min(x) Εύρεση μεγίστου και ελαχίστου του διανύσματος x. range(x) Αποτέλεσμα είναι οι ακραίες τιμές του διανύσματος x. ίνει το ίδιο αποτέλεσμα με την εντολή c(min(x),max(x)) sum(x) ίνει το άθροισμα του διανύσματος x. diff(x) Αποτέλεσμα είναι η διαφορά των ανά δύο όρων του διανύσματος x. Για ένα διάνυσμα μήκους n το αποτέλεσμα της εντολής θα είναι μήκους n-1 prod(x) ίνει το γινόμενο των αριθμών του διανύσματος x. mean(x) ίνει την μέση τιμή του διανύσματος x. median(x) ίνει την διάμεσο του διανύσματος x. weighted.mean(x,w) ίνει το σταθμισμένο μέσο των(ίσου μήκους) διανυσμάτων x και w. quantile(x,probs=) είγματα ποσοστών που αντιστοιχούν σε συγκεκριμένες πιθανότητες( οι default πιθανότητες είναι 0, 0.25, 0.5, 0.75, 1) var(x), cov(x) Η διακύμανση των στοιχείων του x. sd(x) Η τυπική απόκλιση του x. union(x,y) H «ένωση» των διανυσμάτων(συνόλων) x και y. intersect(x,y) Η «τομή» των διανυσμάτων(συνόλων) x και y. setdiff(x,y) Η «διαφορά» του x από το y. setequal(x,y) Επιστρέφει TRUE αν το x έχει ίδιο μήκος και ίδια στοιχεία με το y και FALSE αν δεν συμβαίνει αυτό. is.element(el,set) Επιστρέφει TRUE αν το στοιχείο el ανήκει στο σύνολο set, ενώ FALSE αν δεν ισχύει. convolve(x,y) Αποτέλεσμα είναι η συνέλιξη μεταξύ των ακολουθιών x και y. fft(x) Μας δίνει τον Fast Fourier Transform. filter(x,filter) Εφαρμόζει γραμμικό φίλτρο filter στην x. Αξίζει να αναφερθεί πως υπάρχουν και εντολές για όλες σχεδόν τις στατιστικές κατανομές. Ενδεικτικά αναφέρουμε πως υπάρχουν εντολές για κατανομές 33

35 όπως: Gaussian, εκθετική, Γάμμα, Poisson, Caushy, Weibull βήτα, X 2, διωνυμική, γεωμετρική, υπεργεωμετρική και αρκετές άλλες. Εκτός από μαθηματικές συναρτήσεις η R παρέχει και εντολές γενικού σκοπού. Όπως έχουμε ήδη αναφέρει, εννοούμε συναρτήσεις για διαχείριση συμβολοσειρών, εφαρμογή συναρτήσεων αλλά και low-level plotting εντολές που βοηθούν στην καταλληλότερη εμφάνιση γραφημάτων ανάλογα με τις ανάγκες της έρευνάς μας. > apply (X, INDEX, FUN=) Αποτέλεσμα της παραπάνω εντολής είναι η εφαρμογή μίας συνάρτησης FUN στο X το οποίο μπορεί να είναι διάνυσμα, πίνακας ή λίστα. Ένα παράδειγμα μπορεί να είναι η εφαρμογή της συνάρτησης sort σε έναν πίνακα προκειμένου να ταξινομήσει ανά στήλες ή ανά γραμμές τα στοιχεία του. Υπάρχουν ακόμη δύο συναρτήσεις αυτής της κλάσης οι οποίες είναι πιο συγκεκριμένες. Η lapply(x,fun) η οποία εφαρμόζει τη συνάρτηση FUN σε κάθε ένα από τα στοιχεία της λίστας X. Ακόμη η εντολή by (data, INDEX, FUN) εφαρμόζει τη συνάρτηση FUN στο data frame με όνομα data αφού αυτό πρώτα έχει διασπαστεί σε υποσύνολα κατά σειρά τα οποία χωρίστηκαν από την INDEX. > merge(a,b) H συνάρτηση merge όπως υποδηλώνει και το όνομά της συγχωνεύει δύο data frames με κοινές στήλες ή γραμμές. Προφανώς η κοινή στήλη η γραμμή παρουσιάζεται μία φορά στο αποτέλεσμα. > aggregate(x, by, FUN) Η παραπάνω εντολή διαχωρίζει το data frame x σε υποσύνολα, υπολογίζει το summary, δηλαδή στατιστικά μέτρα του συνόλου δεδομένων όπως μέγιστη και ελάχιστη τιμή, διάμεσος και άλλα. Μετά παρουσιάζει τα δεδομένα σε κατάλληλη μορφή αφού έχει εφαρμοστεί μια λίστα ομαδοποίησης by στο data frame για την καλύτερη παρουσίαση τους. > stack(x) Ακριβώς όπως υποδηλώνει το όνομα της εντολής τοποθετεί όλα τα στοιχεία του x σε μία στοίβα. Υπάρχει και η αντίστροφη συνάρτηση της στοίβας, η unstuck(x). 34

36 2.4 Γραφικά με την R Ένας από τους λόγους που η R είναι αρκετά δημοφιλής γλώσσα είναι οι γραφικές της δυνατότητες. Σε αυτή την ενότητα θα δούμε πως η R εκτός των στατιστικών και προγραμματιστικών εντολών και εφαρμογών μας παρέχει πληθώρα επιλογών που έχουν σχέση με γραφήματα. Αργότερα θα δούμε και θα επικεντρωθούμε σε συγκεκριμένα γραφήματα που αφορούν την ανάλυση συστάσεων δεδομένων (compositional data analysis) και παράγονται από συγκεκριμένο σύνολο δεδομένων. Οι εντολές που έχουν σχέση με την παραγωγή γραφημάτων χωρίζονται σε τρεις ενότητες: 1. Υψηλού επιπέδου συναρτήσεις (High level plotting functions) : ημιουργείται ένα νέο γράφημα στην έξοδο. Το πιθανότερο με άξονες, τίτλους ή ακόμα και περιγραφή. 2. Χαμηλού επιπέδου συναρτήσεις (Low level plotting functions) : Αυτές οι εντολές μας δίνουν τη δυνατότητα να προσθέσουμε περαιτέρω πληροφορίες στο γράφημα μας. Τέτοιες πληροφορίες μπορεί να έχουν σχέση με επιπλέον σημεία, γραμμές ή επικεφαλίδες. 3. Γραφήματα αλληλεπίδρασης (interactive graphics) : Εδώ έχουμε να κάνουμε με γραφήματα που μπορούμε είτε να προσθέσουμε πληροφορίες σε αυτά είτε να εξάγουμε πληροφορίες από αυτά χρησιμοποιώντας μία συσκευή όπως το ποντίκι. Η R μας παρέχει πολλές γραφικές παραμέτρους οι οποίες μας βοηθάνε να συγκεκριμενοποιήσουμε το γράφημα που θέλουμε και να του δώσουμε την μορφή που επιθυμούμε. Για παράδειγμα να προσθέσουμε χρώμα, πιο έντονες γραμμές και επικεφαλίδες. Τα παραπάνω συνθέτουν τις εντολές και επιλογές που είναι γνωστές σαν βασικά γραφικά της R. Υπάρχουν επιπλέον πακέτα με περισσότερες δυνατότητες αλλά και με πιο σύνθετες και δύσκολες στο χειρισμό συναρτήσεις και παραμέτρους. Αυτά είναι το grid package αλλά και το lattice package που είναι πολύ χρηστικό στην παραγωγή πολλών γραφημάτων σε μία εικόνα και είναι παρόμοιο με το Trellis, σύστημα γραφικών που υποστηρίζει η γλώσσα S. 35

37 2.4.1 Εντολές υψηλού επιπέδου για γραφήματα. Η πιο συχνή εντολή που συναντάμε είναι η συνάρτηση plot(). Είναι μία γενική συνάρτηση της οποίας η έξοδος εξαρτάται από το τύπο αντικειμένου που έχει το πρώτο της όρισμα. Έτσι αν το x και το y είναι διανύσματα (vectors) τότε η εντολή plot(x,y) μας δίνει ένα scatterplot του y ως προς x. Ενώ σε περίπτωση που έχω το f να είναι τύπου παράγοντας (factor) και το y τύπου αριθμητικό διάνυσμα (numeric vector) τότε η εντολή plot(f) μου δίνει ένα bar plot του παράγοντα f. Και με την εντολή plot(f, y) θα έχω σαν αποτέλεσμα τα box plots του y για κάθε τιμή του παράγοντα f. Ακόμη μπορώ να έχω το y να είναι οποιοδήποτε αντικείμενο και το expr να είναι μία λίστα αντικειμένων όπου τα ονόματα αυτών χωρίζονται με τον τελεστή +. Πληκτρολογώντας plot(y~ expr) παράγονται τα γραφήματα του y με κάθε αντικείμενο που υπάρχει στην expr. Αν θέλω να δημιουργήσω γράφημα που έχει σχέση με πολυμεταβλητά δεδομένα χρησιμοποιώ την εντολή pairs(x), όπου X ένας πίνακας με αριθμητικά δεδομένα ή ένα data frame. Αυτή η εντολή έχεις ως αποτέλεσμα όλα τα scatterplots που βγαίνουν αν συνδυάσουμε κάθε στήλη του X με όλες τις υπόλοιπες στήλες του. Τα scatterplots θα είναι n(n-1) όπου n ο αριθμός των στηλών. Θα δοκιμάσουμε την εντολή αυτή με το πλαίσιο δεδομένων (data frame) Dataset_COMPS όπου είναι και το σύνολο δεδομένων που θα δουλέψουμε αργότερα και θα εφαρμόσουμε τεχνικές και συναρτήσεις της ανάλυσης δεδομένων συστάσεων. > pairs(dataset_comps) Εικ

38 Όπως βλέπουμε εύκολα από την παραπάνω εικόνα έχουμε 30 scatterplots για τις 6 μεταβλητές του πλαισίου δεδομένων που χρησιμοποιήσαμε σαν όρισμα στην εντολή pairs(). Με την εντολή hist(x) είναι δυνατή η αποτύπωση ενός ιστογράμματος εφόσον το x είναι αριθμητικό διάνυσμα. Οι τρεις επόμενες εντολές μας δίνουν μία ιδέα των υψηλών γραφικών δυνατοτήτων της γλώσσας. > image(x, y, z, ) > contour(x, y, z, ) > persp(x, y, z, ) Η image, όπως και η plot(), είναι μία γενική συνάρτηση που σημαίνει πως το αποτέλεσμα εξαρτάται από τον τύπο των ορισμάτων της. Σε γενικές γραμμές μας δίνει χρωματιστές ή δίχρωμες εικόνες. Τα χρώματα έχουν σχέση με τις τιμές της μεταβλητής z. Η εντολή contour προσθέτει γραμμές στο γράφημα που μας έδωσε η image. Τέλος η εντολή persp μας δίνει τρισδιάστα γραφήματα. Αν και ξεφεύγει λίγο από τους σκοπούς αυτής της εργασίας δίνουμε παρακάτω δύο σύντομα scripts που χρησιμοποιούν τις παραπάνω εντολές καθώς και τις εικόνες που παράγονται για να κατανοήσουμε καλύτερα τις γραφικές δυνατότητες της γλώσσας. > require(grdevices) # for colours > x <- y <- seq(-4*pi, 4*pi, len=27) > r <- sqrt(outer(x^2, y^2, "+")) > image(z = z <- cos(r^2)*exp(-r/6), col=gray((0:32)/32)) Εικ. 2-4 > image(z, axes = FALSE, main = "Math can be beautiful...", xlab = expression(cos(r^2) * e^{-r/6})) Εικ

39 >contour(z, add = TRUE, drawlabels = FALSE) Εικ. 2-6 Για την εντολή persp το σύνολο των εντολών (script) που φτιάξαμε είναι παρακάτω. ημιουργούμε πρώτα τριγωνομετρικές συναρτήσεις τριών μεταβλητών και κατόπιν τρέχουμε την εντολή παραγωγής γραφήματος. > x <- seq(-10, 10, length= 30) > y <- x > f <- function(x,y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r } > z <- outer(x, y, f) > z[is.na(z)] <- 1 > op <- par(bg = "white") > persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue") z y x Εικ

40 Από τις παραπάνω εικόνες μπορούμε να εξάγουμε το συμπέρασμα πως με σχετικά σύντομες και όχι ιδιαίτερα δύσκολες εντολές μπορούμε να πάρουμε όμορφα και λειτουργικά γραφήματα Ορίσματα για τις συναρτήσεις υψηλού επιπέδου. Στις παραπάνω εντολές μπορούμε να δούμε πως μέσα στις συναρτήσεις παραγωγής γραφημάτων εκτός των αντικειμένων δεδομένων που τυπώνουμε ή των μαθηματικών συναρτήσεων που χρησιμοποιήσαμε υπάρχουν και άλλα ορίσματα. Αυτά είναι υπεύθυνα για την καλύτερη αποτύπωση του γραφήματος. Σε αυτή την ενότητα θα δούμε τα βασικότερα και συνηθέστερα ορίσματα που χρησιμοποιούνται κατά κόρον στα γραφήματα. Όρισμα add = TRUE axes = FALSE type = type = p type = l type = b type = o type = h Επεξήγηση Με αυτό το όρισμα αναγκάζουμε τη συνάρτηση να λειτουργήσει σαν χαμηλού επιπέδου γραφική συνάρτηση προσθέτοντας στην ουσία το γράφημα μαζί με άλλα. εν μπορούμε να τοποθετήσουμε αυτό το όρισμα σε όλες τις συναρτήσεις. Με αυτή την επιλογή στην ουσία δηλώνουμε αν θέλουμε τους άξονες. Πληκτρολογώντας TRUE θέλουμε ενώ με το FALSE όχι. Αυτό το όρισμα όπως υποδηλώνει και η ονομασία του ελέγχει τον τύπο του γραφήματος. Υπάρχουν πολλές επιλογές μερικές από τις οποίες είναι: Τυπώνονται σημεία (points). Τυπώνονται γραμμές (lines). Τυπώνονται σημεία ενωμένα με τις γραμμές (both). Τυπώνει τα σημεία επικαλύπτοντας τις γραμμές (overlaid). Τυπώνει κάθετες γραμμές από τα σημεία στον άξονα. 39

41 type = n εν τυπώνει το γράφημα παρά μόνο τους άξονες (από προεπιλογή) και το σύστημα συντεταγμένων ανάλογα με τα δεδομένα. Είναι ιδανικό όρισμα για να χρησιμοποιείται και σε χαμηλού επιπέδου συναρτήσεις. xlab = string, ylab = string Ορίσματα με τα οποία δίνω όνομα (string) της επιλογής μου στους άξονες x, y. main = string Με αυτό το όρισμα μπορώ να δώσω τίτλο στο γράφημα ο οποίος τοποθετείται ψηλά πάνω από το γράφημα. sub = string Ίδιο με το προηγούμενο όρισμα μόνο που αφορά τον υπότιτλο του γραφήματος και βρίσκεται κάτω από τον άξονα των x και με μικρότερο μέγεθος. xlim =, ylim = Όπως υποδηλώνεται και από το όνομα μπορούμε να ορίσουμε τα όρια των αξόνων. Παραπάνω είδαμε μερικά από τα πιο συχνά χρησιμοποιούμενα ορίσματα εντός των συναρτήσεων παραγωγής γραφημάτων. Στην επόμενη ενότητα θα γνωρίσουμε τις χαμηλού επιπέδου εντολές για γραφήματα καθώς και μερικές παραμέτρους που επιδέχονται οι συναρτήσεις. 40

42 2.4.3 Χαμηλού επιπέδου συναρτήσεις γραφημάτων (low level plotting graphical functions) Μερικές φορές οι υψηλού επιπέδου συναρτήσεις δεν παράγουν το γράφημα ακριβώς όπως το θέλουμε ή χρειάζεται. Σε αυτές τις περιπτώσεις μπορούμε να χρησιμοποιήσουμε εντολές χαμηλού επιπέδου για να προσθέσουμε πληροφορίες στα γραφήματα όπως σημεία, γραμμές ή ακόμη και κείμενο. επιπέδου: Παρακάτω θα δούμε μερικές από τις πιο χρήσιμες συναρτήσεις χαμηλού Συνάρτηση Επεξήγηση points(x,y), lines(x,y) Εισάγουμε σημεία ή γραμμές στο γράφημα. Υπάρχει η δυνατότητα να χρησιμοποιήσουμε μέσα σε αυτές τις συναρτήσεις και το όρισμα type =. text(x, y, labels, ) Με αυτή τη συνάρτηση μπορούμε να εισάγουμε κείμενο στο γράφημα στα σημεία x, y. Το labels πρέπει να είναι ακέραιο διάνυσμα ή διάνυσμα χαρακτήρα, σε κάθε περίπτωση το labels[i] τυπώνεται στο σημείο (x[i], y[i]). Συνήθως ο τρόπος με τον οποίο χρησιμοποιείται αυτή η συνάρτηση είναι ο ακόλουθος: > plot(x, y, type="n"); text(x, y, names) abline(a, b) Προσθέτει μία ευθεία με κλίση b η οποία τέμνει το γράφημα στο a. legend(x, y, legend ) Προσθέτει legends στο γράφημα σε συγκεκριμένη θέση x, y. Μπορούμε να τυπώσουμε χαρακτήρες, γραμμές, χρώματα και κείμενο. Προσθέτουμε επιπλέον πεδία με το διάνυσμα χαρακτήρα legend, όπως: legend(, col= v) για να προσθέσουμε χρώμα σε σημεία και γραμμές. legend(, lty= v) αφορά το στυλ των γραμμών. Legend(, pch= v) για να τυπώσουμε χαρακτήρες (plotting characters). Το v είναι διάνυσμα ίσου μήκους με το legend. 41

43 title (main, sub) Προσθέτει τον τίτλο main στο πάνω μέρος του γραφήματος με μεγάλη γραμματοσειρά και προαιρετικά τον υπότιτλο sub στο κάτω μέρος. Οι εντολές χαμηλού επιπέδου συχνά απαιτούν κάποιες επιπλέον πληροφορίες για τη θέση στην οποία τοποθετούνται τα επιπλέον πεδία που προσθέτουμε (συνήθως χρειαζόμαστε τις συντεταγμένες x, y). Οι συντεταγμένες αυτές συνήθως έχουν οριστεί νωρίτερα στις εντολές υψηλού επιπέδου. Όπου ζητούνται οι συντεταγμένες x, y είναι χρήσιμο να τοποθετήσουμε ένα ξεχωριστό όρισμα τύπου λίστας με στοιχεία που ονομάζονται x και y Παράμετροι γραφικών Εδώ θα δούμε μερικές παραμέτρους που παίρνουν οι συναρτήσεις για την καλύτερη εκτύπωση των γραφημάτων. Αυτές οι παράμετροι παίρνουν προεπιλεγμένες τιμές μέσω της συνάρτησης par(). Παράμετρος Λειτουργία pch = Τυπώνει τον χαρακτήρα που επιλέγουμε. Αν επιλέξουμε ακέραιο αριθμό από το 0 έως το 25 θα μας δώσει για αποτέλεσμα κάποιους ξεχωριστούς χαρακτήρες και σύμβολα. Για να τους δούμε αρκεί να τρέξουμε την εντολή legend(locator(1), as.character(0:25), pch = 0:25) lty = Έχει σχέση με το στυλ των γραμμών (line type). Aν δώσουμε την τιμή 1 τυπώνεται μία λεπτή γραμμή, με την τιμή 0 η γραμμή είναι σχεδόν αόρατη ενώ με την τιμή 2 ή μεγαλύτερες έχουμε διακεκομμένες γραμμές. lwd = Αφορά το πλάτος των γραμμών (line width) col.axis col.lab col.main col.sub Αφορά το χρώμα των αξόνων, των τίτλων και υποτίτλων, κειμένων εικόνων και άλλα. Χρώμα επιλέγουμε τοποθετώντας έναν αριθμό από την παλέτα 42

44 της R. Για να την βρούμε πληκτρολογούμε απλώς την εντολή?palette και βλέπουμε την τεκμηρίωση που μας δίνει η γλώσσα. font = font.axis, font.lab font.main, font.sub Με την παράμετρο font επιλέγουμε για τη γραμματοσειρά των τίτλων, υποτίτλων, επικεφαλίδων x, y, άξονες και άλλα. Συνήθως με το 1 έχουμε κανονικό κείμενο, με το 2 έντονη γραφή (bold), με το 3 πλάγια γράμματα (italic), το 4 έντονη και πλάγια (bold italic) και τέλος με το 5 διάφορα σύμβολα όπως τα ελληνικά γράμματα που ως γνωστών χρησιμοποιούνται κατά κόρον σε μαθηματικούς συμβολισμούς. Θα μπορούσαμε να επεκταθούμε και άλλο όσον αφορά τις γραφικές δυνατότητες της R. Ωστόσο δε το κάνουμε διότι ξεφεύγει από τους σκοπούς της παρούσας εργασίας, παρόλα αυτά από τα λίγα που είδαμε μπορούμε να συμπεράνουμε πως οι δυνατότητες της R είναι πολλές και εντυπωσιακές. Αυτός είναι και ένας από τους λόγους που έχουν αυξηθεί οι χρήστες της R τα τελευταία χρόνια. 43

45 2.5 Εισαγωγή και εξαγωγή δεδομένων Στην ανάλυση δεδομένων πολύ σημαντικό ρόλο έχουν η εισαγωγή και εξαγωγή δεδομένων. Αυτό συμβαίνει γιατί στις περισσότερες μελέτες ο όγκος των δεδομένων είναι πάρα πολύ μεγάλος και συνεχώς αυξάνεται. Αυτό επιβάλλει και καλύτερο και ταχύτερο χειρισμό δεδομένων από τις γλώσσες προγραμματισμού ώστε να είναι αποδοτική η εργασία μας. Καθημερινά τα δεδομένα που διακινούνται μέσω διαδικτύου, που χρειάζονται επεξεργασία, αποθήκευση και ανάλυση είναι όλο και περισσότερα. Αυτό κάνει και τις εφαρμογές περισσότερο απαιτητικές ώστε να υπάρχουν αποτελεσματικά και όσο το δυνατόν ταχύτερα συμπεράσματα. Έτσι, αυτό που συχνά μας ενδιαφέρει είναι η γρήγορη και εύκολη εισαγωγή του μεγάλου όγκου των δεδομένων σε μια εφαρμογή, και κατόπιν η εκάστοτε επεξεργασία τους. Παρακάτω θα δούμε διάφορες εντολές, συναρτήσεις και μεθοδολογίες για την εισαγωγή δεδομένων στην γλώσσα R. Αρχικά θα δούμε μερικούς τρόπους που έχει ενσωματωμένη η R για την εισαγωγή δεδομένων. Ύστερα μπορούμε να μελετήσουμε και κάποια εξειδικευμένα πακέτα που υπάρχουν για αυτό το σκοπό και για πιο συγκεκριμένες περιπτώσεις. Εντολή-Συνάρτηση Αποτέλεσμα load() Φορτώνει το data set που είχε αποθηκευτεί προηγούμενα με την save. data(x) Φορτώνει συγκεκριμένα σύνολα δεδομένων (data sets). library(x) Φορτώνει add-on packages. read.table(file) ιαβάζει ένα αρχείο σε μορφή table και δημιουργεί από εκείνο ένα data frame. Σε αυτό το σημείο πρέπει να γνωρίσουμε κάποιες συγκεκριμένες παραμέτρους που δέχονται συναρτήσεις όπως οι παραπάνω για την πιο αποδοτική εισαγωγή των δεδομένων. Παρακάτω παρουσιάζονται οι σημαντικότερες παράμετροι και όχι όλες. Έχουμε: file() Το όνομα του αρχείου από το οποίο πρόκειται να διαβαστούν τα δεδομένα. Κάθε γραμμή του πίνακα παρουσιάζεται σαν μία γραμμή του αρχείου. Αν δεν περιέχει το απόλυτο path τότε file name θεωρείται το υπάρχον working directory. Tέλος μπορεί 44

46 να εισαχθεί και URL σαν αρχείο για να διαβαστεί από την R. sep= Έτσι δηλώνεται ο προεπιλεγμένος (default) διαχωριστής, ο οποίος προφανώς είναι το κενό. Υπάρχει όμως η δυνατότητα να ορίσουμε εμείς το διαχωριστή που μας εξυπηρετεί και μπορεί να είναι το αγγλικό ερωτηματικό ; ή το κόμμα,. header=true Το χρησιμοποιούμε για να διαβάσουμε την πρώτη γραμμή σαν επικεφαλίδα των ονομάτων της στήλης. as.is=true Αυτό χρησιμοποιείται για να εμποδίσει διανύσματα χαρακτήρων να μετατραπούν σε παράγοντες(factors). comment.char= Χρησιμοποιείται για να αποτρέψουμε να χρησιμοποιείται η δίεση # σαν εντολή σχολίου. skip=n Χρησιμοποιείται για να μην διαβαστούν n γραμμές πριν διαβαστούν τα δεδομένα. dec = "." Χρησιμοποιείται για να διαχωρίζονται οι δεκαδικοί αριθμοί με την τελεία. και όχι με το κόμμα,. row.names, col.names Οι δύο αυτές παράμετροι χρησιμοποιούνται για την απόδοση των ονομάτων σε στήλες και γραμμές. Όσον αφορά τις στήλες η προεπιλογή είναι το γράμμα V ακολουθούμενο από τον αύξοντα αριθμό. Άλλες εντολές και συναρτήσεις για την εισαγωγή ή και την παρουσίαση των δεδομένων οι οποίες είναι ενσωματωμένες στην R είναι οι παρακάτω: Εντολή-Συνάρτηση Επεξήγηση read.csv( filename,header=true) Παρόμοια εντολή με την read.table() που έχει όμως προεπιλεγμένες ρυθμίσεις όσον αφορά τους δεκαδικούς όπου δέχεται το κόμμα σαν διαχωριστή καθώς και το αγγλικό ερωτηματικό αντί της τελείας σαν διαχωριστή κειμένου. read.delim( filename,header=true) Επίσης παρόμοια εντολή με την read.table(). Η διαφορά αυτή τη φορά βρίσκεται στο ότι οι προεπιλεγμένες ρυθμίσεις αφορούν delimited files, 45

47 defaulting to the TAB character for the delimiter read.fwf(file,widths,header=true,sep=,as.is=false) ιαβάζει έναν πίνακα από κατάλληλα διαμορφωμένα δεδομένα σε data frame. Στην ουσία η παράμετρος width μας δίνει τον τρόπο ή τη σειρά με την οποία θα διαβαστούν τα δεδομένα. > ff <- tempfile() > cat(file=ff, "123456", "987654", sep="\n") > read.fwf(ff, widths=c(1,2,3)) #> \ > read.fwf(ff, widths=c(1,-2,3)) #> \ Πρέπει να τονίσουμε πως όλες οι παραπάνω συναρτήσεις δεσμεύουν μεγάλο μέρος της μνήμης ειδικά όταν πρέπει να διαβάσουν δεδομένα από μεγάλου μεγέθους αρχεία. Ωστόσο ορισμένες φορές με τις κατάλληλες ρυθμίσεις στις παραμέτρους της εκάστοτε συνάρτησης μπορεί να επιτευχθεί μικρότερη δέσμευση της μνήμης και μεγαλύτερη ταχύτητα. Φυσικά υπάρχουν και εντολές για την αποθήκευση των δεδομένων. > save.image(file) Αποθηκεύει όλα τα αντικείμενα που έχουν δημιουργηθεί. > format(x, ) ιαμορφώνει το αντικείμενο x της R για κατάλληλη προβολή και εκτύπωσή του. Η διαμόρφωση εξαρτάται από τον χρήστη και τις παραμέτρους τις οποίες επιθυμεί να εφαρμόσει. > write.table(x, file=, row.names=true, col.names=true, +sep= ) Τυπώνει το x αφού το μετατρέψει σε πλαίσιο δεδομένων. Κάποιες επιπλέον παράμετροι που θα μπορούσαν να χρησιμοποιηθούν είναι η eol που είναι ο end-ofline διαχωριστής, na για τα strings με μηδενικές τιμές (missing values). 46

48 2.5.1 Είσοδος- Έξοδος δεδομένων με πακέτα (packages) της R. Γνωρίζουμε πως η R είναι μία γλώσσα η οποία επεκτείνει συνεχώς τις δυνατότητες της κυρίως με την υλοποίηση νέων πακέτων (packages) τα οποία χρησιμοποιούνται για συγκεκριμένους σκοπούς και αναλύσεις παρέχοντας έτοιμες συναρτήσεις, εντολές και σύνολα δεδομένων για το αντικείμενο που αναπτύχθηκαν. Επίσης έχουμε αναφέρει πως η ανάγκη για ανάλυση μεγάλου όγκου δεδομένων τόσο για ερευνητικούς σκοπούς όσο και για επιχειρήσεις συνεχώς αυξάνεται και μάλιστα με ραγδαίους ρυθμούς. Για αυτό τον λόγο μας ενδιαφέρει η γρήγορη και αξιόπιστη εισαγωγή δεδομένων στην R. Αυτός είναι και ο λόγος που έχουν αναπτυχθεί πολλά πακέτα που να υποστηρίζουν τέτοιου είδους λειτουργίες όπως η σύνδεση της R με βάσεις δεδομένων,με υπολογιστικά φύλλα και άλλα αρχεία και προγράμματα επεξεργασίας δεδομένων. Ενδεικτικά αναφέρουμε κάποια από αυτά τα πακέτα: RExcelInstaller, TSxls, όσον αφορά την μεταφορά δεδομένων από υπολογιστικά φύλλα Excel. Πληθώρα πακέτων έχει αναπτυχθεί για αλληλεπίδραση με βάσεις δεδομένων RODBC(αφορά τη σύνδεση της R με Open Data Base Connectivity), dbconnect, RSQLite, RpgSQL, SQLiteMap, sqldf (μετατροπή sql βάσεων σε πλαίσια δεδομένων της R). Όσον αφορά άλλα προγράμματα η R έχει αλληλεπίδραση και με το spss με το πακέτο SPSSDI, ενώ το πακέτο R.matlab παρέχει μεθόδους για να διαβάζουμε και να γράφουμε αρχεία.mat αλλά και γενικότερη επικοινωνία με την 6 η ή νεότερη έκδοση του matlab (αποστολή και ανάκτηση αντικειμένων κ.α.) που τρέχει είτε τοπικά είτε σε απομακρυσμένη επιφάνεια εργασίας. Αν θέλουμε να πάμε ένα βήμα παραπάνω υπάρχουν πακέτα που καθιστούν εφικτή τη σύνδεση της R με γλώσσες προγραμματισμού ή και με εφαρμογές για μηχανική μάθηση (machine learning) : readmldata, Rcpp, rjava, StatDataML. Φυσικά όπως θα δούμε παρακάτω το πακέτο Rcmdr που αποτελεί ένα πολύ χρήσιμο γραφικό εργαλείο για πιο γρήγορους και εύκολους υπολογισμούς με την R μας παρέχει τρόπους για την ανάγνωση και εισαγωγή δεδομένων από εξωτερικά αρχεία ωστόσο τα παραπάνω πακέτα είναι πολύ πιο εξειδικευμένα. Η ανάλυση και παρουσίαση των παραπάνω πακέτων ξεφεύγει από τους σκοπούς της παρούσας εργασίας. Μια μικρή αναφορά θα γίνει για το πακέτο RExcelInstaller το οποίο δίνει τη δυνατότητα να συνδυάσουμε την R με τα υπολογιστικά φύλλα Excell αλλά και το Rcommander. 47

49 2.5.2 Το πακέτο RExcelInstaller Όπως προαναφέρθηκε με το πακέτο αυτό συνδυάζουμε την R με το excell. H εγκατάσταση του πακέτου είναι σχετικά απλή και τετριμμένη αφού μπορεί να γίνει πολύ απλά ακολουθώντας από το περιβάλλον (GUI) της R το μονοπάτι Packages- >Install Packages και αφού επιλέξουμε το CRAN Mirror κατόπιν επιλέγουμε το πακέτο RExcelInstaller. Αργότερα ακολουθώντας τις οδηγίες της R γίνεται η εγκατάσταση και άλλων βοηθητικών πακέτων ώστε να παρέχονται όλες οι δυνατότητες του RExcell. H δυνατότητα που μας δίνει το εν λόγω πακέτο είναι να τρέξουμε την R μέσα από το περιβάλλον του Excel, ενώ ταυτόχρονα είναι ανοικτό το παράθυρο του Rcmdr το οποίο μας παρουσιάζει και τις εντολές και τα αποτελέσματα αυτών. Εικ. 2-8 Οι επιλογές και οι δυνατότητες είναι εφάμιλλες με αυτές που μας παρέχει η R. Ωστόσο για πολλούς είναι πολύ πιο εύκολο και υπάρχει μεγαλύτερη εξοικείωση με το Excel ενώ μπορεί να χαρακτηριστεί και πιο πρακτικό το ότι παίρνεις αποτελέσματα εντολών μέσα στο υπολογιστικό φύλλο. Έτσι στην ουσία τρέχουμε την R μέσα από το Excel και παράγονται αποτελέσματα αλλά και ο κώδικας των εντολών στο περιβάλλον του R-commander. Εκτός από τις επιλογές στο μενού του Excel που ενσωμάτωσε το πακέτο, ο χρήστης μπορεί να επιλέξει κάποια κελιά και πατώντας δεξί κλικ να εμφανιστούν, πέραν των συνηθισμένων επιλογών, εντολές και ενέργειες της R όπως : Run R code, Put R Var, Get R Value, Get R Dataframe, Get R Output, Rcmdr Get-> Last command, All commands, Last Output και άλλα. Οι επιλογές που αναφέραμε μέχρι τώρα φαίνονται να απλοποιούν πολλές λειτουργίες τις οποίες θέλουμε να εφαρμόσουμε. Ωστόσο όταν έχουμε να κάνουμε με μία γλώσσα όπως η R και σε συνδυασμό με τις δυνατότητες που μας προσφέρουν τα υπολογιστικά φύλλα του excel τότε είναι δυνατό να χρειαστούμε και να τρέξουμε πολύ πιο σύνθετες πράξεις και συναρτήσεις από τις συνηθισμένες. Το πακέτο RExcelInstaller από μόνο του έχει ενσωματωμένα κάποια υπολογιστικά φύλλα του 48

50 excel τα οποία μπορούν να θεωρηθούν σαν παραδείγματα των δυνατοτήτων που μας προσφέρονται. Σε αυτό το σημείο θα αναφέρουμε κάποιες από τις βασικές και πιο συνηθισμένες λειτουργίες του πακέτου. Πριν κάνουμε οτιδήποτε θα πρέπει να έχει συνδεθεί το excel με την R. Αυτό μπορεί να γίνει είτε κάνοντας διπλό κλικ στο εικονίδιο: RExcel with RCommander, είτε ανοίγοντας ένα αρχείο excel και επιλέγοντας RExcel-> Connect R. Με αυτή την επιλογή ανοίγει το περιβάλλον αλληλεπίδρασης (interface) της R καθώς και του Rcommander. Αργότερα θα δούμε πως οι εντολές που τρέχουμε μέσα από το λογιστικό φύλλο αποτυπώνονται και στο παράθυρο του Rcmdr. Για να τρέξουμε εντολές μέσα από το λογιστικό φύλλο αρκεί να γράψουμε μία εντολή σε ένα κελί ακριβώς όπως θα τη συντάσσαμε για να την τρέξουμε απευθείας μέσα από το περιβάλλον της R. Κατόπιν, επιλέγουμε το κελί και με δεξί κλικ διαλέγουμε την εντολή Run code ή Run code In Rcmdr. H πρώτη θα τρέξει την εντολή στο παρασκήνιο ενώ η δεύτερη θα μας την εμφανίσει στο περιβάλλον του Rcmdr. Για να δω το αποτέλεσμα των εντολών μέσα στο excel αρκεί να επιλέξω ένα κενό κελί και στο μενού που εμφανίζεται πατώντας δεξί κλικ να διαλέξω Get R value. Θα εμφανιστεί ένα νέο παράθυρο από το οποίο πρέπει να επιλέξω το κελί της εντολής ή να την ξαναγράψω εκεί. Αφού το κάνω θα μου εμφανίσει το αποτέλεσμα. Προχωρώντας ένα βήμα παρακάτω και εφόσον επιλέξω να τρέξω εντολές οι οποίες περιέχουν κάποιο λάθος ανοίγει ένα παράθυρο που λέγεται Errors from R. Εκεί τυπώνονται μηνύματα λάθους που αφορούν τις εντολές που μόλις έτρεξα. Για παράδειγμα παίρνω από τρία διαδοχικά κελιά τις εντολές: qqq <- c(1:8,10), dim(qqq) <- c(3,3) και qinv <- solve(qqq). ιαλέγω, προφανώς, Run code και βγαίνει το παράθυρο με τα μηνύματα λάθους. Εικ

51 2.5.3 Συναρτήσεις του RExcelInstaller Το πακέτο RExcelInstaller για να γίνει πιο εύχρηστο και λειτουργικό έχει ενσωματώσει κάποιες ειδικές συναρτήσεις οι οποίες είναι πιο αποτελεσματικές και πρακτικές στην λειτουργία της σύνδεσης R και Excel. Σκοπός αυτών των συναρτήσεων είναι να απλοποιήσουν τις διαδικασίες επιλογής εντολών και συνδυασμού κελιών. Μερικές από αυτές είναι οι εξής: Εντολή-Συνάρτηση Επεξήγηση λειτουργίας RApply Εφαρμόζει μία συνάρτηση στα ορίσματά της, τα οποία είναι τιμές του excel. Αν το αποτέλεσμα που θα επιστρέψει η RApply είναι ένα πλαίσιο δεδομένων, τότε ένα string το withrownames θα επιστρέψει το πλαίσιο δεδομένων μαζί με τα ονόματα των γραμμών. RCall Τρέχει μία διαδικασία της R. Έχει ορίσματα παρόμοια με της RApply αλλά δεν επιστρέφει τιμές στην R. RGraphOnTop Επιβεβαιώνει πως το τελευταίο γράφημα που μας έδωσε η R παραμένει στο παράθυρο εμφάνισης. RNumber Μετατρέπει έναν αριθμό του excel σε string κατάλληλο για να χρησιμοποιηθεί σαν όρισμα σε συναρτήσεις που καλούνται στην R. RExec Εκτελεί μία ακολουθία εντολών της R. RSetEval Αναθέτει μία έκφραση της R σε μία μεταβλητή. RSetApply Εφαρμόζει μία συνάρτηση σε ορίσματα, τιμές του excel, και αναθέτει το αποτέλεσμα σε μία μεταβλητή της R. 50

52 2.6 Το πακέτο Rcommander. Ένα πολύ χρήσιμο πακέτο που προσφέρει η R είναι το Rcommander (Rcmdr). Είναι ένα πακέτο το οποίο αφού το εγκαταστήσουμε και το τρέξουμε τότε ανοίγει ένα νέο γραφικό παράθυρο εργασίας. Μέσα από αυτό βλέπουμε πως υπάρχουν τρία κύρια μέρη, εκτός του μενού επιλογών. Το script window, στο οποίο γράφουμε τις εντολές που θέλουμε να τρέξουμε. Το output window, στο οποίο παράγεται ο κώδικας ακριβώς όπως θα έπρεπε να τον τρέξουμε από το καθιερωμένο γραφικό περιβάλλον (GUI) της R. Τέλος, υπάρχει το παράθυρο που τυπώνει μηνύματα λάθους. Η κύρια διαφορά του πακέτου είναι πως μπορούμε εύκολα και γρήγορα μέσω της γραμμής επιλογών να τρέξουμε διάφορες συναρτήσεις. Παρέχει εύκολα την εισαγωγή δεδομένων, την φόρτωση πακέτων καθώς και διάφορες συνήθεις στατιστικές συναρτήσεις. Εικ Όπως φαίνεται και στην εικόνα, παρέχεται πληθώρα επιλογών (εισαγωγή δεδομένων, παραγωγή γραφημάτων, στατιστικά μοντέλα και συναρτήσεις καθώς και στατιστικές κατανομές) με σύρε και άσε (drag n drop) προγραμματισμό. Το θετικό είναι πως ακόμα και όταν επιλέγουμε να κάνουμε κάτι με αυτό τον τρόπο, τότε παράγεται ο αντίστοιχος κώδικας της R στο output window. Στην επόμενη ενότητα αναφέρουμε βήμα προς βήμα τις εντολές που τρέχουμε για την εργασία μας. Αυτό γίνεται μέσω του Rcmdr. Ενώ αξίζει να τονίσουμε πως υπάρχουν και πολλά πακέτα επεκτάσεις του Rcmdr. Εννοούμε οι πρόσθετες δυνατότητες (plugins) που χρησιμοποιούν μεν το Rcmdr αλλά για πιο εξειδικευμένους σκοπούς. Μερικά από αυτά είναι: RcmdrPlugin.Export, γραφικό εργαλείο που εξάγει αντικείμενα σε μορφή LaTeX και HTML RcmdrPlugin.IPSUR, εισαγωγή σε πιθανότητες και στατιστική με το Rcmdr RcmdrPlugin.epack, πακέτο για χρονοσειρές 51

53 RcmdrPlugin.TextMining, πακέτο το οποίο συνδυάζει το Rcmdr με τεχνικές για εξόρυξη κειμένων. Το πακέτο R commander είναι ένα πάρα πολύ χρήσιμο εργαλείο για πολλούς προγραμματιστές. Απλοποιεί, επιταχύνει και κάνει εύχρηστες πολλές από τις λειτουργίες της R. Μάλιστα αυτό συμβαίνει χωρίς να χάνεται η ουσία του προγραμματισμού καθώς ακόμα και στις αυτοματοποιημένες διαδικασίες που επιλέγουμε να κάνουμε με μερικά κλικ παράγεται ο αντίστοιχος κώδικας της R από τον οποίο μπορούμε να βγάλουμε χρήσιμα συμπεράσματα. Επίσης, οι πρόσθετες δυνατότητες του πακέτου αυξάνουν τις δυνατότητες της R σε πολλά επιστημονικά και ερευνητικά πεδία ανάλογα με το εκάστοτε πακέτο που χρησιμοποιούμε. 52

54 3.Πρακτική εφαρμογή σε σύνολο δεδομένων της ISBSG R11 Στην παρούσα εργασία όσον αφορά τις πράξεις επί του συνόλου δεδομένων που θα επεξεργαστούμε χρειάζεται να χρησιμοποιήσουμε το πακέτο compositions της R. Το συγκεκριμένο πακέτο περιέχει εξειδικευμένες εντολές, συναρτήσεις καθώς και σύνολα δεδομένων που αφορούν αποκλειστικά πράξεις και εφαρμογές της Ανάλυσης συστάσεων δεδομένων. 3.1 Περιγραφή του συνόλου δεδομένων. Έχουμε τονίσει νωρίτερα πως θα δουλέψουμε με συναρτήσεις της R που αφορούν την Co.D.A. σε ένα συγκεκριμένο σύνολο δεδομένων που έχει σχέση με την αξιολόγηση του λογισμικού. Με τον τελευταίο όρο δεν εννοούμε αξιολόγηση της χρηστικότητας του λογισμικού για τον κάθε χρήστη, αλλά αξιολόγηση του λογισμικού όσον αφορά τους κύκλους ανάπτυξής τους και την προσπάθεια που χρειάζεται να καταβάλλουμε. Είναι ανάγκη να υπογραμμίσουμε πως η επιτυχία για την ανάπτυξη ενός έργου έγκειται στο πόσο καλά ή ισορροπημένα κατανέμεται η εργασία που έχουμε κάνει για κάθε κύκλο ανάπτυξης. Πιο συγκεκριμένα, το σύνολο δεδομένων μας είναι ένα κομμάτι από την ISBGR R11 (International Software Benchmarking Standards Groups), μία από τις πιο πλούσιες και χρήσιμες αποθήκες από έργα λογισμικού η οποία έχει ιδιαίτερο ενδιαφέρον και χρησιμότητα στο πεδίο της εκτίμησης κόστους. Περιέχει περίπου 4106 έργα από τα οποία εμείς επικεντρωνόμαστε σε 95 από αυτά. Η ανάλυση που θα γίνει μέσω της Co.D.A. θα μας δείξει τη συσχέτιση της κατανομής της προσπάθειας στην κάθε φάση ανάπτυξης του έργου. ηλαδή, μας ενδιαφέρουν στην ουσία έξι μεταβλητές. Αυτές προφανώς αφορούν τις φάσεις ή κύκλους ανάπτυξης του έργου και είναι: Effort Plan δηλαδή την προσπάθεια που έχει γίνει και αφορά το σχεδιασμό του έργου, Effort Specify και αφορά τον καθορισμό απαιτήσεων του έργου, Effort Design που έχει σχέση με το σχεδιασμό του έργου, Effort Build που αναφέρεται στη δομή του έργου, Effort Test και προφανώς έχει σχέση με τον έλεγχο του έργου και τέλος Effort implement που αφορά την εφαρμογή του έργου. Αξίζει να σταθούμε στο γεγονός πως το σύνολο δεδομένων μας περιέχει στοιχεία από πολλούς και διαφορετικούς οργανισμούς παγκοσμίως. Αυτό σημαίνει πως υπάρχουν κάποιες διαφορές ανάλογα με την εθνικότητα και το είδος των οργανισμών. Προφανώς υπάρχουν διάφορες μετρικές των οποίων η σημασία μεταβάλλεται σε κάθε περίπτωση. Για αυτούς τους λόγους έχει γίνει μια 53

55 προεπεξεργασία στο σύνολο δεδομένων. Κάποιες από τις αλλαγές που έγιναν πριν πάρουμε στα χέρια μας το τελικό σύνολο δεδομένων είναι οι εξής: Έργα με μηδενική προσπάθεια ανάπτυξης λογισμικού αποκλείστηκαν. Έργα στα οποία υπήρχε ένα υπόλοιπο του effort το οποίο δεν αφορούσε τις κλασσικές φάσεις ανάπτυξης (Plan, Specify, Design, Test, Build, Implement) και λέγεται Effort Unphased αποκλείστηκε και το υπόλοιπο αυτό συνυπολογίστηκε στις υπόλοιπες μεταβλητές. Έργα με κατηγοριοποίηση ποιότητας από την ISBGR ως C και D αποκλείστηκαν και έμειναν μόνο έργα με ποιότητα A και B. Έργα με χαρακτηριστικά που περιέχουν πάνω από 40 % μηδενικών τιμών αποκλείστηκαν του συνόλου δεδομένων. Από τα παραπάνω συνάγεται πως το σύνολο των 95 έργων που θα δουλέψουμε θα έχει μόνο τις έξι μεταβλητές που αναφέραμε νωρίτερα, ενώ δεν θα έχει και καμία μηδενική τιμή. 3.2 Φόρτωση πακέτου Όπως έχει ήδη αναφερθεί για να χρησιμοποιήσουμε κάποιο πακέτο της R πρέπει κάθε φορά να το φορτώνουμε, αφού φυσικά το έχουμε εγκαταστήσει τουλάχιστον μία φορά. Η εντολή φόρτωσης ενός πακέτου είναι η library(package_name). Συγκεκριμένα για το εν λόγω πακέτο έχουμε: > library(compositions) Από τα αποτελέσματα της εντολής στο RGUI παρατηρούμε πως εκτός του πακέτου compositions φορτώνονται και κάποια άλλα πακέτα που είναι απαραίτητα για την σωστή λειτουργία των εντολών του πακέτου. Κάποια από αυτά τα πακέτα είναι τα εξής: rgl πακέτο, tensora πακέτο, base πακέτο, robustbase πακέτο, energy package, boot πακέτο, MASS πακέτο. Επίσης τυπώνεται και ένα εισαγωγικό μήνυμα. Καθώς επίσης και κάποια μηνύματα που αφορούν κάποιες αλλαγές ανάλογα με την έκδοση της R όπως και κάποιες υποσημειώσεις που αφορούν το πακέτο, όπως βελτιώσεις, επίλυση κάποιων λαθών (bugs) που υπήρχαν σε παλαιότερες εκδόσεις καθώς και διαφοροποιήσεις σε κάποιες εντολές. 3.3 Εισαγωγή δεδομένων Υπάρχουν διάφοροι τρόποι για την εισαγωγή δεδομένων στην R. Αυτό εξαρτάται από την μορφή των δεδομένων (αν είναι αρχείο Excell, αρχείο SPSS, αρχείο ACESS, txt αρχείο ή ακόμα και από URL). Επίσης η εισαγωγή των 54

56 δεδομένων διαφέρει όταν γίνεται χειροκίνητα από τον χρήστη εισάγοντας τα δεδομένα μέσω πληκτρολογίου και όχι από κάποιο αρχείο. Χρησιμοποιώντας το πακέτο Rcmdr οι συνηθέστερες στατιστικές πράξεις όπως και η εισαγωγή δεδομένων γίνεται πολύ εύκολα. Οι εντολές από την μπάρα του μενού είναι: Data-> Import Data-> και κατόπιν επιλέγεις ανάλογα με τον τύπο αρχείου που θες να χρησιμοποιήσεις. Εικ. 3-1 Ακόμη όπως προαναφέρθηκε τα περισσότερα πακέτα, και συγκεκριμένα το compositions έχουν ενσωματωμένα κάποια δικά τους σύνολα δεδομένων. Αυτά εφόσον επιθυμούμε να τα εισάγουμε στο Rcmdr γίνεται εύκολα από την επιλογή Data->Data in packages->read data set from an attached package Στη συγκεκριμένη εργασία όμως δουλεύουμε με εξωτερικό σύνολο δεδομένων (data set). Η εισαγωγή των δεδομένων λοιπόν γίνεται επιλέγοντας: Data->Import Data-> from Excel, Access or dbase data set και κατόπιν ονομάζουμε το αρχείο που θα εισάγουμε DataSet_COMPS. Το αρχείο το επιλέγουμε από το φάκελο που είναι αποθηκευμένο στο σύστημα αρχείων του υπολογιστή μας. Το Rcmdr πέραν της εύκολης εισαγωγής δεδομένων παράγει και τον κώδικα που εκτελεί η R για την εκάστοτε εντολή. Έτσι μετά την εισαγωγή των δεδομένων εμφανίζεται στα παράθυρα Script Window και Output window ο κώδικας: 55

57 > Dataset_COMPS <- sqlquery(channel = 1, select * from [DATA SET$]) > names(dataset_comps) <- make.names(names(dataset_comps)) Η πρώτη εντολή αφορά την εισαγωγή των δεδομένων. Η δεύτερη, την ονομασία που δίνουμε στο data set και γίνεται μέσω εφαρμογής της συνάρτησης names(). Για να δούμε τα δεδομένα που μόλις εισήχθησαν επιλέγουμε View data set και εμφανίζεται ένα παράθυρο με τα δεδομένα καθώς και ο κατάλληλος κώδικας που παράγεται. > library(relimp, pos=4) >showdata(dataset_comps,placement='20+200', +font=getrcmdr('logfont'), maxwidth=80, maxheight=30) Εικ Μετατροπή του συνόλου δεδομένων Οι μεταβλητές Project ID και Summary Work Effort_new είναι για να προσδιορίσουμε τα δεδομένα και δεν περιλαμβάνει αξιολόγηση των παρατηρήσεων οπότε μπορούμε να τις απαλείψουμε χωρίς να επηρεαστεί η έρευνά μας. Για να γίνει αυτό ακολουθούμε τα βήματα: Data-> Manage variables in active data set->delete 56

58 variables in data set και επιλέγουμε τις εν λόγω μεταβλητές. Ο κώδικας που παράγεται είναι απλός και είναι ο εξής: > Dataset_COMPS$Project.ID <- NULL > Dataset_COMPS$Summary.Work.Effort_new <- NULL Είναι εύκολα αντιληπτό πως απλά επιλέγουμε μέσω του τελεστή δολάριο ($) την μεταβλητή που θέλουμε και κατόπιν της εκχωρούμε την τιμή NULL. Πλέον το σύνολο δεδομένων που εργαζόμαστε έχει την παρακάτω μορφή: Εικ. 3-3 Όπου και παρατηρούμε πως οι μεταβλητές Project ID και Summary Work Effort_new έχουν απαλειφθεί. Το ίδιο αποτέλεσμα μπορούμε να επιτύχουμε και με την ακόλουθη διαδικασία: Data->Active data set->subset Active data set. Κατόπιν εμφανίζεται ένα νέο παράθυρο, στο οποίο επιλέγουμε ποιες μεταβλητές θέλουμε να κρατήσουμε στο υποσύνολο (subset). Παρακάτω βλέπουμε τον αντίστοιχο κώδικα της R ο οποίος παράγεται αυτόματα μέσω του Rcmdr πακέτου: >Dataset_COMPS<- +subset(dataset_comps,select=c(effort.build,effort.design, +Effort.Implement,Effort.Plan,Effort.Specify,Effort.Test)) Ωστόσο την μεταβλητή Project ID μπορούμε αντί να την αφαιρέσουμε εξολοκλήρου να πάρει τη θέση της αρίθμησης των μεταβλητών. Αυτό μπορεί να γίνει ως εξής: 57

59 Data->Active data set->set case name και παρακάτω ο κώδικας: >row.names(dataset_comps)<as.character(dataset_comps$project.id) > Dataset_COMPS$ Project.ID <- NULL Σε αυτό το σημείο και πριν συνεχίσουμε με την ανάλυσή μας αξίζει να σταθούμε στην μορφή των δεδομένων που προσφέρει το πακέτο compositions. Πιο συγκεκριμένα το πακέτο προσφέρει τέσσερις διαφορετικούς τρόπους ανάλυσης των δεδομένων. Αυτή η προσέγγιση είναι συνδεδεμένη με τέσσερις κλάσεις της R (Rclasses),που αναπαριστούν αντίστοιχα τέσσερις διαφορετικές γεωμετρίες του δειγματοληπτικού χώρου των δεδομένων. Αυτές οι γεωμετρίες εξαρτώνται από δύο ερωτήματα: Κατά πόσο το συνολικό άθροισμα των ποσών (amounts) είναι σχετική πληροφορία και ποιο είναι το σημαντικό μέτρο της διαφοράς των δεδομένων.. rplus : (Real Plus) Μας ενδιαφέρει το συνολικό ποσό (total amount). Έτσι τα ποσά πρέπει να συγκρίνονται μόνο κατά απόλυτες τιμές. Για παράδειγμα η διαφορά ανάμεσα σε 1g και 2g είναι η ίδια με τη διαφορά ανάμεσα σε 1kg και 1001g. ηλαδή ένα γραμμάριο. aplus : (Aitchison Plus) Μας ενδιαφέρει πάλι το συνολικό ποσό, ωστόσο τα δεδομένα πρέπει να συγκρίνονται σχετικά μεταξύ τους. Για παράδειγμα η διαφορά ανάμεσα σε 1mg και 2mg είναι η ίδια όπως και η διαφορά ανάμεσα σε 1g και 2g, δηλαδή το διπλάσιο. acomp : (Aitchison composition) το συνολικό ποσό είναι σταθερό (ή είναι κατασκεύασμα σχετικό με τη δειγματοληψία ή μέτρηση της διαδικασίας) και η διαφορά που μας ενδιαφέρει είναι σχετική. Αυτή η κλάση ακολουθεί τις αυθεντικές προτάσεις του Aitchison. rcomp : (Real composition) το άθροισμα είναι σταθερό και η διαφορά των ποσών μεταξύ 0% σε 1% και 10% με 11% λαμβάνεται ως ίση. Αυτή η κλάση αναπαριστά την ακατέργαστη (raw/naive) συμπεριφορά των compositions ως στοιχεία του real simplex βασισμένα σε απόλυτη γεωμετρία. Ωστόσο η συγκεκριμένη κλάση έχει διάφορα μειονεκτήματα που έχουν αναφερθεί από τον Chayes (1960) και τον Aitchison (1986). 58

60 Ακολουθούν κάποιες συνήθεις εντολές των τεσσάρων κλάσεων που μόλις αναφέρθηκαν: >acomp(x, parts=1:ncol(oneordataset(x)),total=1,warn.na=false, + detectionlimit) X διάνυσμα δεδομένων ή σύνολο δεδομένων. parts διάνυσμα που περιέχει τους δείκτες ή τα ονόματα των στηλών που θα χρησιμοποιηθούν total το συνολικό ποσό που θα χρησιμοποιηθεί,, συνήθως 1 η 100. warn.na πρέπει ο χρήστης να δεχθεί ειδοποίηση σε περίπτωση of NA, NaN ή 0 κωδικοποίηση τιμών μηδενικών τιμών ή μη διαθέσιμων τιμών detectionlimit αριθμός, διάνυσμα ή πίνακας(matrix) θετικών αριθμών που δίνουν το όριο ανίχνευσης όλων των τιμών, των στηλών ή της κάθε τιμής BDL ο κωδικός για μηδενική τιμή Below Detection Limit in X SZ ο κωδικός για μηδενική τιμή Structural Zero in X MAR ο κωδικός για μηδενική τιμή Missing At Random in X MNAR ο κωδικός για μηδενική τιμή Missing Not At Random in X Με απλά λόγια εφαρμόζοντας την εντολή acomp σε κάποιους αριθμούς τότε θα μας δοθεί ως αποτέλεσμα η μετατροπή αυτών των αριθμών σε κατάλληλη μορφή για την ανάλυση συστάσεων δεδομένων. Ένα παράδειγμα είναι αν δώσουμε ως είσοδο τους αριθμούς από 1 έως 5. > acomp(1:5) Το ίδιο αποτέλεσμα μας δίνει κ η αντίστοιχη εντολή της κλάσης rcomp > rcomp(1:5) Τέλος εφόσον δε χρησιμοποιήσουμε κάποια από τις παραπάνω κλάσεις τότε τα δεδομένα μας θα ανήκουν στην κλάση rmult η οποία ουσιαστικά χειρίζεται τα δεδομένα σαν απλά πραγματικά διανύσματα (real vectors). Πιο συγκεκριμένα η εντολή στη γενική της μορφή είναι: > rmult (X,parts=1:NCOL(oneOrDataset(X)),orig=attr(X,"orig"), + missingprojector=attr(x,"missingprojector")) όπου: X διάνυσμα ή σύνολο δεδομένων αριθμών που θεωρούνται στοιχεία ενός R-διανύσματος Parts διάνυσμα που περιέχει τους δείκτες ή τα ονόματα των στηλών που θα χρησιμοποιηθούν 59

61 x orig ένα rmult αντικείμενο το αρχικό μη-μετασχηματισμένο σύνολο δεδομένων 3.5 Μετασχηματισμοί της Co.D.Analysis και R. Γνωρίζουμε από τη θεωρία της ανάλυσης δεδομένων συστάσεων πως υπάρχουν κάποιοι μετασχηματισμοί οι οποίοι μπορούν να εφαρμοστούν επί των παρατηρήσεων. Οι μετασχηματισμοί που μας ενδιαφέρουν περισσότερο είναι οι: alr μετασχηματισμός, clr μετασχηματισμός και ilr μετασχηματισμός. Οι εντολές που υλοποιούν αυτούς τους μετασχηματισμούς είναι πολύ απλές. Όπως και οι αντίστροφοι μετασχηματισμοί αυτών. Για τον alr μετασχηματισμό του συνόλου δεδομένων που μελετούμε στην παρούσα εργασία, δηλαδή του Dataset_COMPS, όπως το έχουμε ονομάσει η εντολή είναι η ακόλουθη: >alr(dataset_comps) Ενώ για τον αντίστροφο μετασχηματισμό alr η εντολή είναι: > alrinv(dataset_comps) Αντιστοίχως για τον clr μετασχηματισμό. Παρατηρούμε πως μετά τις μεταβλητές τυπώνει και έναν πίνακα με την κατηγοριοποίηση των μηδενικών που περιέχει το σύνολο δεδομένων. Στην δική μας περίπτωση δεν υπάρχουν καθόλου μηδενικές τιμές για αυτό και κάθε μεταβλητή έχει την τιμή 95 (δηλαδή όσες και οι παρατηρήσεις) στο πεδίο NMV (Not Missing Value). Αργότερα θα κάνουμε εκτενέστερη αναφορά στο πρόβλημα των μηδενικών. > clr(dataset_comps) Και για τον αντίστροφο clr έχουμε: > clrinv(dataset_comps) Tέλος για τον ilr μετασχηματισμό: >ilr(dataset_comps) Ενώ για τον αντίστροφο ilr έχουμε: > ilrinv(dataset_comps) 60

62 3.6 Το πρόβλημα με τα μηδενικά στην Ανάλυση συστάσεων δεδομένων και η συνάρτηση zeroreplace του πακέτου compositions Έχουμε ήδη αναφέρει στη θεωρία της ανάλυσης συστάσεων δεδομένων πως συχνά παρουσιάζεται το πρόβλημα των μηδενικών. Αφορά τις μηδενικές τιμές που παίρνουν οι μεταβλητές μας σε κάποιες από τις παρατηρήσεις. Ο κύριος λόγος για τον οποίο υπάρχει αυτό το πρόβλημα είναι γιατί οι μηδενικές τιμές απαγορεύουν ή δυσχεραίνουν την εφαρμογή των μετασχηματισμών της Co.D.A. στα δεδομένα μας. Πιο συγκεκριμένα, είναι σχεδόν προφανές πως η διαίρεση με μηδενικές τιμές που χρειάζεται να κάνουμε για να εφαρμόσουμε τους μετασχηματισμούς είναι ανεπίτρεπτη και έτσι ψάχνουμε τρόπους να προσπεράσουμε αυτό το πρόβλημα. Η μέθοδος που έχει επικρατήσει είναι να αντικαθίστανται οι μηδενικές τιμές από μία πολύ μικρή τιμή και να γίνονται οι κατάλληλες αλλαγές στα υπόλοιπα δεδομένα ώστε το άθροισμα του διανύσματος μετά την αντικατάσταση των μηδενικών να είναι πάλι ένας σταθερός αριθμός, συνήθως η μονάδα. Το πακέτο compositions παρέχει τη συνάρτηση zeroreplace για την αντικατάσταση των μηδενικών. Ωστόσο πρέπει πρώτα να αναφέρουμε κάποιες κατηγορίες των μηδενικών που παρουσιάζονται στην Co.D.A.: MAR: Τυχαία απώλεια (Missing at random) κωδικοποιημένο με την έκφραση NaN. MNAR: Μη τυχαία απώλεια (Missing not at random) κωδικοποιημένο με την έκφραση NA. BDL: Κάτω από το όριο ανίχνευσης (Below detection limit) κωδικοποιημένο με την έκφραση 0.0 ή έναν αρνητικό αριθμό ο οποίος δίνει και το όριο ανίχνευσης (detection limit). Στην ουσία η αρχική τιμή στρογγυλοποιήθηκε στο 0. Η κατηγορία BDL είναι μια ενημερωμένη έκδοση της κατηγορίας MNAR. SZ: ομικό μηδενικό (Structural zero) κωδικοποιημένα με την έκφραση -Inf, η τιμή είναι μηδενική και σχετίζεται με τη δομή του συγκεκριμένου προβλήματος που μελετάται. NMV: Υπαρκτή τιμή (Not Missing Value) κωδικοποιείται από έναν πραγματικό αριθμό και απλώς η παρατήρηση μας λαμβάνει την τιμή μηδέν. WMNAR:Ευρεύτερη MNAR κατηγορία (Wider MNAR) περιλαμβάνει κατηγορίες BDL και MNAR. WZERO (Wider Zero) περιλαμβάνει κατηγορίες BDL και SZ. Όσον αφορά την ανάλυση συστάδεων δεδομένων, οι κατηγορίες που συναντώνται συνήθως είναι οι τέσσερις πρώτες. Πιο συγκεκριμένα η συνάρτηση που θα δούμε 61

63 μετατρέπει τα BDL μηδενικά είτε σε αριθμητικές τιμές είτε σε MNAR μηδενικά. Παρόλο λοιπόν που πρακτικά δεν αντικαθιστά όλα τα μηδενικά αλλά μετατρέπει κάποια από αυτά, η R μας δίνει τη δυνατότητα να εφαρμόσουμε τους μετασχηματισμούς της Co.D.A με την ακόλουθη συνάρτηση: > zeroreplace (x,d=null, a=2/3) Όπου x το διάνυσμα δεδομένων ή το σύνολο δεδομένων που εργαζόμαστε. Με το γράμμα d συμβολίζουμε το διάνυσμα που έχει το όριο ανίχνευσης (detection limit) και με a το κλάσμα του ορίου ανίχνευσης που χρησιμοποιείται για την αντικατάσταση. Εφόσον δίνεται το d τότε μηδενικά από κάθε στήλη του x αντικαθίστανται από την τιμή του ορίου ανίχνευσης μειωμένου κατά a. Το d πρέπει να είναι ένα διάνυσμα μήκους ίσο με ncol(x) ή ένας πίνακας ίδιων διαστάσεων με το x. Αν το d = NULL, τότε το όριο ανίχνευσης εξάγεται από το σύνολο δεδομένων, εφόσον είναι εφικτό (δηλαδή, εάν υπάρχουν αρνητικοί αριθμοί). Εάν δεν υπάρχει αρνητικός αριθμός στο σύνολο δεδομένων, και δεν δοθεί τιμή για το d, το αποτέλεσμα θα είναι ίσο με x. 62

64 3.7 Γραφική αναπαράσταση των δεδομένων. Όπως έχουμε αναφέρει ήδη από τη θεωρία, όσον αφορά την ανάλυση δεδομένων συστάσεων χρησιμοποιούμε κυρίως τρεις τρόπους για την γραφική αναπαράσταση των δεδομένων στα οποία εργαζόμαστε και την εξαγωγή συμπερασμάτων που αφορούν την μελέτη μας από αυτά. Υπενθυμίζουμε πως μας ενδιαφέρουν τα biplots, τα τριμερή γραφήματα (ternary diagrams) και τα δενδρογράμματα (dendrograms) Τριμερή (Τernary) διαγράμματα Η R μαζί με το πακέτο compositions υποστηρίζουν διάφορους τρόπους για την παραγωγή τριμερών διαγραμμάτων. Θα παρουσιάσουμε αρχικά όλους τους πιθανούς τρόπους που μας δίνουν διαγράμματα, καθώς και τον κώδικα που είναι απαραίτητος για την παραγωγή αυτών. Ενώ αργότερα θα ερμηνεύσουμε τα αποτελέσματα που εξάγονται από την παράσταση των δεδομένων στα τριμερή διαγράμματα. 1 ος τρόπος Αξίζει να αναφερθεί πως για αυτό τον τρόπο δε χρειάζεται το πακέτο των compositions αλλά το παράγει η R ούτως ή άλλως. Η έξοδος μας δίνει όλα τα πιθανά τριμερή διαγράμματα με μία μόνο εντολή. > plot(acomp(dataset_comps)) Εικ

65 Το διάγραμμα που προκύπτει μας δίνει γρήγορα και εύκολα μία συνολική εικόνα. Ωστόσο δεν είναι και πολύ ευδιάκριτη ενώ συχνά χρειαζόμαστε μόνο κάποια από τα διαγράμματα και όχι όλα τα διαγράμματα. 2 ος τρόπος Με το δεύτερο τρόπο δείχνουμε πως ομαδοποιούμε αρχικά τις μεταβλητές στις τριάδες που μας ενδιαφέρουν την εκάστοτε φορά και ακολούθως παίρνουμε το διάγραμμα. ημιουργώ την μεταβλητή Plan_Spec_Des για να τοποθετήσω σε αυτήν μόνο τις μεταβλητές Effort.Plan, Effort.Specify και Effort.Design μεταβλητές ώστε να δω τη συσχέτιση μεταξύ τους. Αυτό το καταφέρνω με την παρακάτω εντολή. >Plan_Spec_Des<-data.frame(Dataset_COMPS$Effort.Plan, +Dataset_COMPS$Effort.Specify, Dataset_COMPS$Effort.Design) Στην ουσία δεν κάνω τίποτα παραπάνω από το να δημιουργήσω ένα νέο πλαίσιο δεδομένων (data frame) στο οποίο περιέχονται κάθε φορά οι μεταβλητές που μας ενδιαφέρουν. Εφόσον μιλάμε για τριμερή διαγράμματα θα έχουμε κάθε φορά τρεις μεταβλητές. Η εξαγωγή των συγκεκριμένων μεταβλητών που θέλουμε κάθε φορά να πάρουμε γίνεται εύκολα και γρήγορα με τον τελεστή $. Στην ουσία ο τελεστής αυτός είναι δείκτης και έτσι για κάθε μεταβλητή γράφουμε το όνομα του αρχικού συνόλου δεδομένων εν συνεχεία τον τελεστή $ και τέλος το όνομα της μεταβλητής που θέλουμε να εξάγουμε. Πληκτρολογώ το όνομα της μεταβλητής για να δω αν εμφανίζονται σωστά τα αποτελέσματα που επέλεξα. > Plan_Spec_Des Τέλος χρησιμοποιώ την εντολή plot(acomp()), όπου θα μου δώσει ως αποτέλεσμα το διάγραμμα των μεταβλητών Effort.Plan, Effort.Specify και Effort.Design > plot(acomp(plan_spec_des)) Εικ

66 Παρατηρήστε τον τρόπο με τον οποίο καλύπτοντα οι τρεις γωνίες του τριμερούς διαγράμματος από τις μεταβλητές. ηλαδή η κάτω αριστερή γωνία παίρνει την μεταβλητή που έχω πρώτη στην εντολή, η κάτω δεξιά γωνία καταλαμβάνει την μεταβλητή που έχω δεύτερη ενώ την κορυφή του τριγώνου παίρνει η τελευταία μεταβλητή που επέλεξα. Με τον παραπάνω τρόπο μπορούμε να σχηματίσουμε όλες τις πιθανές τριάδες μεταβλητών που μας ενδιαφέρουν. Αυτό γίνεται εφαρμόζοντας στην παραπάνω εντολή κάθε φορά τις τρεις μεταβλητές που μας ενδιαφέρουν. Αργότερα, θα δούμε τις εντολές καθώς και τα τριμερή διαγράμματα που παράγει το πακέτο compositions της R όσον αφορά το σύνολο δεδομένων που μας ενδιαφέρει. Κατόπιν θα τα ερμηνεύσουμε και άρα θα βγάλουμε χρήσιμα συμπεράσματα για την έρευνά μας Επιπλέον πληροφορίες στα τριμερή διαγράμματα. Αξίζει να αναφέρουμε πως υπάρχουν και τρόποι βελτίωσης των πληροφοριών που μας δίνει ένα τριμερές διάγραμμα. Ενδεικτικά, μπορούμε να πάρουμε περισσότερα στοιχεία προσθέτοντας στις εντολές που παρουσιάσαμε νωρίτερα το πεδίο pca. > plot(acomp(plan_des_test),pca=true,col.pca="blue") Εικ

67 Βλέπουμε πως προστίθεται μία καμπύλη. Αυτή η καμπύλη μας δίνει πληροφορίες σχετικά με την principal component analysis. Μία άλλη εντολή για την παραγωγή τριμερούς διαγράμματος είναι η plot3d. >plot3d(acomp(plan_des_test),1:3,col="red") Εικ. 3-7 Εδώ το διάγραμμα είναι ίδιο με μοναδική διαφορά τη σειρά των τριών κορυφών. ηλαδή έχοντας δημιουργήσει την τριάδα των μεταβλητών Effort Plan, Effort Design και Effort Test, παρατηρούμε πως καλύπτεται πρώτα η κάτω αριστερά γωνία (αντί της δεξιάς), ύστερα η κορυφή (Design) και τέλος η κάτω αριστερά γωνία (Test). Επίσης έχουμε τη δυνατότητα να δίνουμε εμείς χρώμα της επιλογής μας όσον αφορά τις κουκίδες του γραφήματος με το πεδίο col="red". 66

68 3.7.3 Τριμερή (Ternary) διαγράμματα με το πακέτο robcompositions Σε αυτό το σημείο και ενώ έχουμε καλύψει τον τρόπο παραγωγής των τριμερών διαγραμμάτων με το πακέτο compositions, θα δείξουμε πως μπορούμε να πάρουμε διαγράμματα με το πακέτο robcompositions. Εδώ ο τρόπος είναι ακόμη πιο γρήγορος και εύκολος. Ωστόσο πρέπει να προσέξουμε μία μικρή ιδιομορφία. Η εντολή παραγωγής διαγράμματος είναι η ακόλουθη: > ternarydiag(dataset_comps) ηλαδή, απλά γράφουμε το όνομα του συνόλου δεδομένων μας και το πακέτο μας δίνει το τριμερές γράφημα. Όπως βλέπουμε παρακάτω όμως, η προεπιλογή δίνει το γράφημα των τριών πρώτων μεταβλητών του συνόλου δεδομένων. Στην προκειμένη περίπτωση οι τρεις πρώτες μεταβλητές είναι: Effort Plan, Effort Specify και Effort Design. Εικ.3-8 Προφανώς, χρειάζομαι περισσότερα τέτοιου είδους διαγράμματα για να κάνω μία έρευνα. Έτσι πρέπει να βρω τρόπο να δημιουργώ τα διαγράμματα που με ενδιαφέρουν. Αυτό γίνεται αν στην εντολή που αναφέραμε αντί για το όνομα του συνόλου δεδομένων τοποθετήσω μία άλλη μεταβλητή η οποία θα αναπαριστά τις τρεις μεταβλητές που με ενδιαφέρουν. Όπως είδαμε και νωρίτερα αυτό γίνεται εύκολα και γρήγορα με τον εξής τρόπο: 67

69 >Plan_Build_Implem<-data.frame(Dataset_COMPS$Effort.Plan, + Dataset_COMPS$Effort.Build, Dataset_COMPS$Effort.Implement) Βλέπουμε πως δημιουργείται μία νέα μεταβλητή με το όνομα Plan_Build_Implem και τοποθετούμε σε αυτήν μέσω της εντολής data.frame() και του τελεστή δολάριο ($) τις Effort Plan, Effort Build και Effort Implement. Για να πάρω το διάγραμμα που χρειάζομαι το μόνο που έχω να κάνω είναι να τρέξω την εντολή του πακέτου robcompositions ternarydiag() με την νέα μεταβλητή που μόλις δημιούργησα. > ternarydiag(plan_build_implem) Εικ

70 3.8 Biplots Ένας άλλος τρόπος για την γραφική αναπαράσταση των δεδομένων είναι τα biplots. Υπενθυμίζουμε πως οι γραμμές (rays) αναπαριστούν τις μεταβλητές που μελετάμε. Ενώ άλλα σημαντικά χαρακτηριστικά των biplots είναι οι γωνίες που σχηματίζονται μεταξύ αυτών των γραμμών καθώς και οι αποστάσεις από την κορυφή μίας γραμμής σε μια άλλη κορυφή (links). Τέλος οι τελείες (dots) εκφράζουν τις παρατηρήσεις επί των μεταβλητών. Οι εντολές όσον αφορά τα biplots είναι πιο σύντομες και απλές από τα τριμερή διαγράμματα. Ωστόσο πρέπει να υπενθυμίσουμε πως για να έχουμε τα επιθυμητά αποτελέσματα η διαδικασία που πρέπει να ακολουθήσουμε είναι η εξής: Πρώτα, αντικαθιστούμε τα μηδενικά στο σύνολο δεδομένων που εργαζόμαστε. Στην προκειμένη περίπτωση γνωρίζουμε πως εξ αρχής δεν υπάρχουν μηδενικές τιμές. Επομένως δεν χρειάζεται να κάνουμε κάτι. Εξάλλου η R στα αποτελέσματα που μας δίνει για τον clr μετασχηματισμό προσθέτει στο τέλος και για κάθε μεταβλητή ξεχωριστά πόσες μη υπαρκτές τιμές (missing values) υπάρχουν και σε εμάς δεν έδειξε καμία. εύτερον, εφαρμόζουμε τον clr μετασχηματισμό στα δεδομένα μας και τέλος εφαρμόζουμε τις κατάλληλες εντολές που μας παρέχει το πακέτο compositions της R για να παραχθεί το biplot. > biplot_clr<-clr(dataset_comps) > biplot_clr #βλέπω τα δεδομένα στην νέα τους μορφή > bp<-princomp(biplot_clr) > bp Call: princomp(x = unclass(x), cor = cor, scores = scores, covmat = covmat, center = unclass(center), subset = subset) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp e e e e e-01 Comp e-08 6 variables and 95 observations. Βλέπουμε πως αρχικά κάνουμε την μετατροπή των δεδομένων μας με clr μετασχηματισμό. Το αποτέλεσμα αποθηκεύεται στην μεταβλητή biplot_clr. Κατόπιν πληκτρολογώ το όνομα της μεταβλητής για να δω τα αποτελέσματα του μετασχηματισμού που εφαρμόσαμε. Με την εντολή princomp(biplot_clr) όπως 69

71 βλέπουμε παίρνουμε χρήσιμες πληροφορίες για τα δεδομένα που εργαζόμαστε. Τέλος πληκτρολογούμε την εντολή για την παραγωγή του biplot. > biplot3d(bp) Εικ Η εντολή που χρησιμοποιήσαμε για την παραγωγή του biplot υποδηλώνει πως έχουμε να κάνουμε με τρισδιάστατη εικόνα. Ουσιαστικά την εικόνα που μας δίνει ως αποτέλεσμα η R μπορούμε πολύ εύκολα να την περιστρέψουμε ή να εστιάσουμε σε αυτήν. Έτσι παρακάτω δίνονται δύο ακόμα εικόνες οι οποίες είναι αποτέλεσμα των εντολών που χρησιμοποιήσαμε παραπάνω με την μόνη διαφορά πως τις βλέπουμε είτε από διαφορετική γωνία είτε μετά από μία εστίαση. Στην παραπάνω εικόνα εστιάζουμε αρκετά «χάνοντας» κάποια από τα dots του biplot αλλά αυτό το κάνουμε για να έχουμε τη δυνατότητα να ερμηνεύσουμε καλύτερα τις γραμμές(rays) και τις συνδέσεις(links). Αργότερα έχουμε μια πιο απομακρυσμένη εικόνα ώστε να συμπεριλαμβάνονται όλα τα dots και με τη σειρά τους να ερμηνευθούν και αυτά. 70

72 Εικ Έτσι μας δίνεται η ευχέρεια σε μία πιο προσεκτική και αναλυτική ματιά των παρατηρήσεων που μελετάμε. Ακόμη με τη δυνατότητα αυτή μπορούμε να πάρουμε εικόνα από πολλές διαφορετικές γωνίες με αποτέλεσμα να μπορούμε να είμαστε πιο ακριβείς στα συμπεράσματα που θα εξάγουμε από τα γραφήματα. 71

73 Εικ Ένας άλλος τρόπος να πάρουμε ένα biplot είναι με τις παρακάτω εντολές. Ουσιαστικά ακολουθούμε την ίδια διαδικασία με τη διαφορά πως στην τελική εντολή αντί για 3D γράφημα όπως είχαμε πριν παίρνουμε στατικό γράφημα μέσω της εντολής biplot(x). > biplot(bp) Εικ

74 3.9 ενδρογράμματα Ένας τελευταίος τρόπος που χρησιμοποιούμε για την γραφική απεικόνιση των δεδομένων είναι τα πιο συνήθη δενδρογράμματα. Υπάρχουν τρεις περιπτώσεις που θα μας απασχολήσουν όσον αφορά τα δενδρογράμματα. Η πρώτη περίπτωση είναι για την ομαδοποίηση (clustering) των έργων. ηλαδή την ομαδοποίηση των αντικειμένων του συνόλου δεδομένων μας. Σε αυτό το σημείο αξίζει να αναφερθεί πως χρησιμοποιούμε την ward μέθοδο την οποία έχουμε ήδη αναφέρει νωρίτερα. 1 ος τρόπος Οι εντολές για την παραγωγή του δενδρογράμματος, όσον αφορά τη συσταδοποίηση των έργων, είναι οι εξής: > dendro<-hclust(dist(dataset_comps), method="ward") > plot(dendro) Είναι προφανές πως στο πεδίο method επιλέγουμε την μέθοδο ομαδοποίησης που θέλουμε. Νωρίτερα έχουμε αναφέρει ενδεικτικά κάποιες μεθόδους. Όπως είπαμε, στην εργασία μας θα δουλέψουμε με την μέθοδο ward, στην οποία υπενθυμίζουμε βρίσκουμε την απόσταση των κέντρων δύο ομάδων πολλαπλασιάζοντας με έναν παράγοντα. Εφόσον έχουμε στην εντολή το πεδίο method="ward" η διαδικασία αυτοματοποιείται. Αρχικά, σε κάθε έργο ανατίθεται μία μοναδική ομάδα (cluster) και στη συνέχεια ο αλγόριθμος hclust που εφαρμόζουμε λειτουργεί επαναληπτικά. Σε κάθε στάδιο ομαδοποιεί τις δύο ομάδες που είναι περισσότερο όμοιες. Αυτή η διαδικασία συνεχίζεται μέχρι να σχηματιστεί μία ομάδα. Τέλος με την εντολή plot εμφανίζεται το δενδρόγραμμα που μόλις δημιουργήθηκε. Εικ

75 Βλέπουμε πως δημιουργήσαμε ένα δενδρόγραμμα που αφορά τα έργα. Γίνεται εύκολα αντιληπτό πως σχηματίζονται δύο μεγάλες ομάδες και κατόπιν τα επιμέρους μικρότερα. 2 ος τρόπος Στον δεύτερο τρόπο θα δούμε πως σχηματίζουμε δενδρόγραμμα για τις μεταβλητές μας. > # use an ilr basis coming from a clustering of parts > dd = dist(t(clr(dataset_comps))) > hc1 = hclust(dd,method="ward") > plot(hc1) Εικ Και σε αυτό το διάγραμμα είναι φανερό πως δημιουργούνται δύο ομάδες(clusters). Το πρώτο αφορά τις μεταβλητές Effort Build, Effort Design και Effort Test. Όπου οι δύο τελευταίες σχηματίζουν μεταξύ τους μία επιμέρους ομάδα. Το δεύτερο έχει να κάνει με τις μεταβλητές Effort Implement, Effort Plan και Effort Specify. Με τις δύο τελευταίες να σχηματίζουν μία επιμέρους μικρότερη ομάδα. 74

76 3 ος τροπος > mergetree=hc1$merge >CoDaDendrogram(X=acomp(Dataset_COMPS), +mergetree=mergetree,col="red",range=c(-8,8),box.space=1) Εικ Το διάγραμμα αυτό δεν μας βοηθάει στην έρευνά μας καθώς δεν ανήκει στην ιεραρχική ανάλυση συστάδων αλλά είναι πιο σύνθετο και εξειδικευμένο, για αυτό και το συναντάμε μόνο εφαρμόζοντας τη συνάρτηση CoDaDendrogram του πακέτου compositions. 75

77 4. Σχολιασμός των γραφημάτων και συμπεράσματα. Είδαμε νωρίτερα, στο κεφάλαιο που παρουσιάσαμε τις εντολές του πακέτου compositions, πως προκύπτουν τα γραφήματα των biplots και τριμερών διαγραμμάτων (ternary diagrams) που αφορούν το σύνολο δεδομένων που μόλις περιγράψαμε. Σε αυτό το σημείο θα δούμε τον σχολιασμό αυτών των γραφημάτων καθώς και τα συμπεράσματα που μπορούμε να πάρουμε από αυτά. 4.1 Σχολιασμός των τριμερών διαγραμμάτων (ternary) Θα ξεκινήσουμε σχολιάζοντας τα τριμερή διαγράμματα που έχουν προκύψει. Αρχικά θα δούμε το διάγραμμα των μεταβλητών Effort Build, Effort Test και Effort Implement. >Build_Test_Implem<-data.frame(Dataset_COMPS$Effort.Build, +Dataset_COMPS$Effort.Test, Dataset_COMPS$Effort.Implement) ίνω το όνομα της εντολής για να ελέγξω πως είναι σωστή η εντολή ομαδοποίησης των μεταβλητών κάθε φορά. Στη συνέχεια χρησιμοποιώ την εντολή plot(acomp()) για την παραγωγή του γραφήματος. > Build_Test_Implem > plot(acomp(build_test_implem)) Εικ

78 ημιουργία τριάδας που θέλω να ελέγξω για να δω το διάγραμμα. >Plan_Des_Test<-data.frame(Dataset_COMPS$Effort.Plan, +Dataset_COMPS$Effort.Design, Dataset_COMPS$Effort.Test) Έλεγχος της νέας μεταβλητής που δημιούργησα. > Plan_Des_Test Παραγωγή του τριμερούς διαγράμματος. > plot(acomp(plan_des_test)) Εικ. 4-2 Τέλος, ένα τριμερές διάγραμμα που μας ενδιαφέρει η απεικόνιση του για την εξαγωγή συμπερασμάτων επί των δεδομένων μας αποτελείται από την 3-άδα των μεταβλητών Effort Build, Effort Design και Effort Test. ημιουργία τριάδας που θέλω να ελέγξω για να δω το διάγραμμα. >Build_Des_Test<-data.frame(Dataset_COMPS$Effort.Build, +Dataset_COMPS$Effort.Design, Dataset_COMPS$Effort.Test) Έλεγχος της νέας μεταβλητής που δημιούργησα. > Build_Des_Test Τριμερές διάγραμμα που μου δίνεται ως αποτέλεσμα. > plot(acomp(build_des_test)) 77

79 Εικ. 4-3 Προφανώς απλώς η απεικόνιση των διαγραμμάτων δεν αρκεί. Οι εντολές και η διαδικασία παραγωγής των γραφημάτων είναι σχετικά απλή. Ωστόσο αυτό που έχει ουσιαστικότερη σημασία είναι η ερμηνεία των παραπάνω γραφημάτων. Υπενθυμίζουμε πως η χρησιμότητα των τριμερών διαγραμμάτων βρίσκεται στο γεγονός ότι μπορούμε να μελετήσουμε πως κατανέμονται τα δεδομένα ανάμεσα σε τρεις συγκεκριμένες μεταβλητές που μας ενδιαφέρει η συσχέτιση μεταξύ τους. Παρατηρώντας τις εικόνες 3-5 και 3-8 όπου η R μετά από τις κατάλληλες εντολές μας έχει δώσει το τριμερές διάγραμμα των μεταβλητών Effort Plan, Effort Specify και Effort Design θα δούμε κάποια συμπεράσματα για τη συσχέτιση των τριών αυτών μεταβλητών μεταξύ τους. Βλέπουμε λοιπόν πως η συγκέντρωση των παρατηρήσεων καλύπτει όλο σχεδόν το τρίγωνο χωρίς να υπάρχει κάποια από τις τρεις μεταβλητές η οποία να μαζεύει κοντά της ένα σημαντικό αριθμό αυτών. Η μεταβλητή Effort Design ίσως έχει κοντά στην κορυφή της περισσότερες παρατηρήσεις σε σχέση με τις Effort Plan και Effort Specify, άρα και μεγαλύτερη τιμή. Επίσης βλέπουμε και μία περίπτωση όπου μία κουκίδα (dot) είναι αρκετά κοντά στην κορυφή της Effort Specify επομένως και αυτή έχει κάποια υψηλή τιμή. Στην εικόνα 4-1 έχουμε εισάγει για την παραγωγή του γραφήματος τις μεταβλητές Effort Build, Effort Test και Effort Implement. Εδώ το τριμερές διάγραμμα που προέκυψε είναι πολύ πιο σαφές όσον αφορά την ερμηνεία του. Βλέπουμε, πως οι περισσότερες παρατηρήσεις είναι πολύ κοντά στην κορυφή της μεταβλητής Effort Build πράγμα που σημαίνει πως είναι και μεγαλύτερες οι τιμές εκεί. Ύστερα κάποιες λίγες παρατηρήσεις και πιο συγκεκριμένα μόνο τρεις είναι αρκετά κοντά στην κορυφή 78

80 της μεταβλητής Effort Test. Τέλος, η τρίτη κορυφή που ανήκει στην μεταβλητή Effort Implement δεν έχει καμία απολύτως παρατήρηση κοντά της άρα οι τιμές της είναι ιδιαίτερα χαμηλές σε σχέση με τις Effort Build και Effort Test. Στην εικόνα 4-2 έχουμε συμπεριλάβει τις μεταβλητές Effort Plan, Effort Design και Effort Test. Είναι ξεκάθαρο πως η κορυφή της Effort Test συγκεντρώνει κοντά της περισσότερες παρατηρήσεις άρα και μεγαλύτερες τιμές σε σχέση με τις υπόλοιπες δύο μεταβλητές του τριμερούς διαγράμματος. Μετά την Effort Test ακολουθεί η μεταβλητή Effort Design η οποία έχει και αυτή κάποιες παρατηρήσεις κοντά στην κορυφή της αλλά όχι τόσες όσες η Effort Test. Ενώ η κορυφή της μεταβλητής Effort Plan έχει μόνο δύο παρατηρήσεις σχετικά κοντά στην κορυφή του τριγώνου πράγμα που προφανώς σημαίνει πως παρουσιάζει ιδιαίτερα χαμηλές τιμές σε σχέση με τις Effort Test και Effort Design. Τέλος στην εικόνα 4-3 όπου και έχουμε τις μεταβλητές που μας ενδιαφέρουν: Effort Build, Effort Design και Effort Test το διάγραμμα που έχει προκύψει δίνει πολύ ακριβές και σαφές αποτέλεσμα. Μπορούμε πολύ εύκολα να παρατηρήσουμε πως η κορυφή που εκφράζει την μεταβλητή Effort Build συγκεντρώνει κοντά της, τις περισσότερες παρατηρήσεις, επομένως αυτό σημαίνει πως συγκεντρώνει και τις μεγαλύτερες τιμές. Όσον αφορά τις άλλες δύο μεταβλητές, η κορυφή που εκφράζει την Effort Test συγκεντρώνει μόνο 3 παρατηρήσεις κοντά της. Ενώ η τρίτη μεταβλητή, Effort Design δεν έχει καμία παρατήρηση κοντά στην κορυφή της. 79

81 4.2 Σχολιασμός των Biplot Σε αυτό το σημείο μπορούμε να ερμηνεύσουμε τα γραφήματα που παρήχθησαν. Προσοχή χρειάζεται όσον αφορά το τρισδιάστατο biplot που είδαμε παραπάνω καθώς μπορεί εύκολα να γίνει κάποιο λάθος λόγω κακής οπτικής γωνίας όσον αφορά την παρατήρηση του γραφήματος. Για αυτό το λόγο ξεκινάμε την ερμηνεία από την εικόνα 3-13 που πήραμε από την R και βοηθητικά μπορούμε να παρατηρούμε και την εικόνα 3-10 στην οποία μπορούμε είτε να εστιάσουμε είτε να περιστρέψουμε ώστε να είμαστε βέβαιοι για την ερμηνεία. Αν υπάρχει κάποια σχετική μεθοδολογία για την ερμηνεία των biplots στην Ανάλυση συστάσεων δεδομένων (Compositional Data Analysis) τότε αυτή θα ήταν η ακόλουθη. Αρχικά, βρίσκουμε τις μεγαλύτερες γραμμές (rays). Τα οποία εκφράζουν και την υψηλότερη διακύμανση πάνω στις μεταβλητές μας. Μετά, ψάχνουμε τις μεγαλύτερες και τις μικρότερες συνδέσεις (links). Υπενθυμίζουμε πως έχει αναφερθεί στη θεωρία της Co.D.A. ότι σύνδεση είναι η απόσταση από την κορυφή μίας γραμμής (ray) σε μία άλλη. Μεγάλη απόσταση σημαίνει πως οι αντίστοιχοι λογάριθμοι (log ratios) έχουν την μεγαλύτερη διακύμανση. Μικρή απόσταση σημαίνει πως οι λογάριθμοι του αντίστοιχου ζευγαριού της σύνδεσης διαφέρουν ελαφρώς σε όλη τη σειρά των δειγμάτων που μελετάμε. Κατόπιν μελετάμε τις γωνίες που σχηματίζονται μεταξύ των γραμμών. Υπενθυμίζουμε και εδώ πως γωνίες που σχηματίζονται και έχουν μέτρο 0 90 ή ανάμεσα σε δύο γραμμές μας δείχνουν πως υπάρχει πολύ μικρή συσχέτιση, σχεδόν μηδενική. Ενώ αν η γωνία είναι 0 ή 1 ή η συσχέτιση είναι Τελευταίες ερμηνεύονται οι κουκίδες (dots). Στις παρατηρήσεις αυτές μας ενδιαφέρει η εγγύτητα που παρουσιάζουν οι κουκκίδες με τις συνδέσεις ώστε να ερμηνευθούν τα χαρακτηριστικά των ακραίων τιμών. Παρατηρώντας λοιπόν τα γραφήματα που μας έδωσε η R κατόπιν εφαρμογής των κατάλληλων εντολών που έχουμε παραπάνω και ακολουθώντας την διαδικασία ερμηνείας των biplot μπορούμε ναι εξάγουμε χρήσιμα συμπεράσματα για την έρευνά μας. Αρχικά, βλέπουμε εύκολα πως οι μεγαλύτερες γραμμές στο γράφημα είναι των μεταβλητών Effort.Plan και Effort.Implement. Αυτό σημαίνει πως αυτές οι δύο μεταβλητές έχουν την μεγαλύτερη διακύμανση μεταξύ των θεμάτων. Ενώ από την 80

82 άλλη ακολουθούν οι μικρότερες γραμμές Effort.Specify, Effort.Design με τελευταία και μικρότερα τα Effort.Test και Effort.Build. Μετά μας ενδιαφέρουν οι μεγαλύτερες και οι μικρότερες συνδέσεις. ηλαδή οι αποστάσεις από την κορυφή μίας γραμμής (ray) σε μία άλλη. Εύκολα βλέπουμε πως την μεγαλύτερη σύνδεση σχηματίζουν οι κορυφές των μεταβλητών Effort. Specify και Effort.Plan. Αυτό σημαίνει πως οι λογαριθμικοί μετασχηματισμοί (log ratios) των δύο μεταβλητών που μόλις αναφέραμε παρουσιάζουν την μεγαλύτερη διακύμανση. Την αμέσως επόμενη μεγαλύτερη σύνδεση σχηματίζουν οι Effort.Implement και Effort.Plan και ακολουθούν τα Effort.Implement με Effort.Specify με την ίδια ερμηνεία που μόλις είπαμε. Αντίθετα οι μικρότερες συνδέσεις φαίνονται ανάμεσα στις μεταβλητές Effort.Design με Effort.Specify που σημαίνει πως οι λογαριθμικοί μετασχηματισμοί (log ratios) αυτών των μεταβλητών διαφέρουν ελαφρώς σε όλη τη σειρά των δειγμάτων μας. Ακολουθούν στην κατηγορία με τις μικρότερες συνδέσεις οι Effort.Build με Effort.Test καθώς και Effort.Test με Effort.Design. Ένα άλλο χαρακτηριστικό που μας ενδιαφέρει στα biplots είναι όπως έχει ήδη αναφερθεί η γωνία που σχηματίζεται ανάμεσα σε δύο γραμμές. Βλέπουμε πως οι γραμμές των μεταβλητών Effort.Build και Effort.Plan σχηματίζουν πολύ μικρή γωνία μεταξύ τους που σημαίνει πως παρουσιάζουν ισχυρή θετική συσχέτιση. Το ίδιο ακριβώς ισχύει και για τις γραμμές των μεταβλητών Effort.Design με Effort.Specify. Αντιθέτως οι Effort.Implement με Effort.Test σχηματίζουν γωνία που πλησιάζει τις 0 180, αυτό σημαίνει πως αυτές οι δύο μεταβλητές παρουσιάζουν αρνητική συσχέτιση μεταξύ τους. Παρατηρούμε επίσης πως οι γραμμές των Effort.Plan με Effort.Implement σχηματίζουν μεταξύ τους γωνία της τάξεως των 0 90 που σημαίνει πως η συσχέτιση μεταξύ των λογαρίθμων τους τείνει στο 0.Το ίδιο ακριβώς ισχύει και για τις Effort.Implement με Effort.Specify. Όπως και για τις Effort.Plan με 0 Effort.Specify που όμως σχηματίζουν γωνία μεταξύ τους της τάξεως των 270. Τέλος πρέπει να ερμηνεύσουμε τις κουκίδες (dots). Σκοπός μας η μελέτη των ακραίων τιμών του γραφήματος. Έτσι, από την εγγύτητα των κουκκίδων με τις συνδέσεις μπορούμε να δούμε την τιμή #44 στο πάνω δεξιά μέρος του γραφήματος να έχει υψηλή αναλογία με τις Effort.Implement και Effort.Plan. Ακόμη έχουμε την τιμή #95 στο αριστερά κάτω μέρος του γραφήματος το οποίο έχει αναλογία με τις Effort.Build όπου παρουσιάζει και υψηλή τιμή και Effort.Test. ενώ παρουσιάζει πολύ μικρή τιμή στην μεταβλητή Effort.Implement που όπως βλέπουμε και στο σχήμα είναι πολύ μακριά από την κουκίδα Τέλος βλέπουμε τις τιμές #92 στο πάνω μέρος του 81

83 γραφήματος και #48 στο κάτω οι οποίες έχουν αναλογία με τις Effort.Implement και Effort.Test καθώς και Effort.Build με Effort.Plan αντίστοιχα. 82

84 5. Σωλήνωση εντολών και η έκδοση RED-R Μέχρι τώρα έχουμε δει διάφορες εντολές, συναρτήσεις και τεχνικές γενικότερα για την γλώσσα R αλλά και ειδικότερα όσον αφορά την ανάλυση δεδομένων συστάσεων. Σε αυτό το σημείο θα δούμε μία νέα προγραμματιστική μέθοδο, τη σωλήνωση εντολών. Με τον όρο αυτό εννοούμε πως έχουμε κάποιες λειτουργίες τα R της οποία η έξοδος κάθε λειτουργίας αποτελεί είσοδο για μία επόμενη. Ο συνδυασμός αυτών των εντολών και αποτελεσμάτων μας δίνει το ζητούμενο. Η σωλήνωση εντολών είναι μία ευρύτερη έννοια η οποία εφαρμόζεται σε πολλές περιοχές όπως στην παράλληλη και κατανεμημένη επεξεργασία αλλά ακόμα και σε θέματα υλικού ή και λειτουργικού συστήματος. Η RED-R έχει γραφεί σε Python και είναι συμβατή με όλα τα λειτουργικά συστήματα που υποστηρίζουν την R. Αξίζει να τονίσουμε πως και αυτό το λογισμικό είναι ελεύθερο και ανοικτό. Για να επιτύχουμε τη σωλήνωση εντολών στην R, χρησιμοποιούμε ένα αυτοτελές λογισμικό που έχει αναπτυχθεί και λέγεται RED-R. Ο σκοπός της RED-R είναι αποκλειστικά να δουλέψουμε με σωλήνωση εντολών. Ακόμα τις εντολές αυτές μπορούμε να τις δούμε και να τις εφαρμόσουμε εποπτικά μέσω σχημάτων όπως βλέπουμε και στην παρακάτω εικόνα. Εικ

85 που έχουμε όπως Data Input, Read Files, R summary, Data Manipulation, Plotting, Stats και άλλα. Αυτά όλα μας επιτρέπουν να κάνουμε σχεδόν αυτοματοποιημένα τις περισσότερες λειτουργίες που επιθυμούμε και μετά μένει μόνο η σωστή διαχείριση και σωλήνωση αυτών των χαρακτηριστικών (widgets). Για να είναι ευκολότερος ο προγραμματισμός με την RED-R αλλά και πιο λειτουργικός χρησιμοποιούμε τα χαρακτηριστικά (widgets). Ουσιαστικά, μιλάμε για κάποιες επιλογές Ένα μειονέκτημα της RED-R είναι πως δεν έχει ακόμη συμβατότητα με όλα τα πακέτα της R, αλλά πρέπει να αναπτυχθούν ξεχωριστά και αυτόνομα όλα τα πακέτα ώστε να τα υποστηρίζει. Παρόλα αυτά έχουμε να κάνουμε με ένα εξελισσόμενο εργαλείο το οποίο μας δίνει το πλεονέκτημα της ταχύτητας στην επεξεργασία αλλά και του οπτικού προγραμματισμού. Ενώ σε κάθε φάση των υπολογισμών μας μπορεί να μας δώσει ένα αρχείο.html ή.odt το οποίο είναι και η αναφορά των όσων έχουμε κάνει. Σε αυτό το αρχείο είναι κατηγοριοποιημένα τα χαρακτηριστικά (widgets) και οι επιλογές που έχουμε κάνει καθώς επίσης και μηνύματα λάθους και η έξοδος του συστήματος. Την αναφορά αυτή μπορούμε να την έχουμε επιλέγοντας File -> Generate report. 84

86 5.1 RED-R και Ανάλυση δεδομένων συστάσεων (Co.Da. Analysis) Παρά το γεγονός ότι δεν έχουν αναπτυχθεί όλα τα πακέτα, η RED-R υποστηρίζει λειτουργίες της Compositional Data Analysis μέσω του πακέτου compositions. Αφού εγκαταστήσουμε το πακέτο μετά ενσωματώνεται σαν λειτουργία στην στήλη με τα χαρακτηριστικά (widgets). To πακέτο χαρακτηριστικών (widget) των compositions, αποτελείται από τρεις υποκατηγορίες εντολών. Η πρώτη, των compositional operations, η δεύτερη η οποία λέγεται compositional transformations και έχει να κάνει με τους μετασχηματισμούς της Co.D.A. και τέλος η κατηγορία των compositional plots που αφορά τα γραφήματα με τις επιλογές compositional ellipses και CoDa dendrogram. Αρχικά, πρέπει προφανώς να εισάγουμε στην RED-R το σύνολο των δεδομένων με το οποίο δουλεύουμε. Αυτό γίνεται σχετικά εύκολα, μέσω του χαρακτηριστικού Read Files που ανήκει στην κατηγορία Data Input. Εδώ πρέπει να προσέξουμε λίγο τις λεπτομέρειες. Το χαρακτηριστικό μας δίνει κάποιες επιλογές για τον τύπο αρχείου που θέλουμε να εισάγουμε (.xls,.txt,.csv) καθώς και επιλογές για την ορθή εισαγωγή των δεδομένων. ηλαδή τι τύπο αντικειμένων είναι (factor, numeric, character, integer και logical), αλλά και για το διαχωριστή μεταξύ των στηλών (tab, comma, space, other). Αφού επιλέξουμε το αρχείο που θέλουμε να εισάγουμε μπορούμε να το δούμε εκείνη τη στιγμή στο παράθυρο File Preview. Συχνά, συμβαίνει να μην εισάγονται όλες οι γραμμές του αρχείου. Σε αυτή την περίπτωση μπορούμε να επιλέξουμε Rescan File ή Load File ώστε να γίνει ξανά εισαγωγή και να έχουμε το επιθυμητό αποτέλεσμα. Αξίζει να τονίσουμε πως σε όλα τα χαρακτηριστικά υπάρχει ενσωματωμένο και ένα παράθυρο από το οποίο μπορούμε να δούμε τον αντίστοιχο κώδικα της R. Ύστερα μπορούμε να επιλέξουμε από το πεδίο Subsetting το χαρακτηριστικό: Row or Column Selection ώστε να επιλέξουμε τις στήλες και τις γραμμές που επιθυμούμε από το σύνολο δεδομένων. Καλή προγραμματιστική τεχνική θεωρείται μετά από κάθε διαδικασία τροποποίησης του συνόλου δεδομένων η επιλογή από το πεδίο View Data του widget View Data Table. Αυτό το κάνουμε για να εξακριβώσουμε πως δουλεύουμε με τις μεταβλητές που επιθυμούμε και δεν έχει γίνει κάποιο λάθος. Αφού επιβεβαιώσουμε τα δεδομένα μας, τότε επιλέγουμε το χαρακτηριστικό: Close the Simplex το οποίο ανήκει στην υποκατηγορία Compositional operations του πακέτου των compositions. Αυτό είναι απαραίτητο να γίνει ώστε να χρησιμοποιηθεί 85

87 αργότερα η επιλογή CoDa Dendrogram που ανήκει στην υποκατηγορία Compositional Plots του πακέτου. Τόσο στο χαρακτηριστικό Close the Simplex όσο και στο CoDa Dendrogram πρέπει να επιλέξουμε το πεδίο Process On Data Input και μετά Commit, έτσι ώστε η είσοδος να είναι αυτή που επιθυμούμε. Το δένδρο που παράγεται μπορούμε να το δούμε παρακάτω. Εικ. 5-2 Από αυτό το σχήμα δεν μπορούμε να έχουμε πολλά χρήσιμα συμπεράσματα. Αυτό έγκειται στο γεγονός πως η RED-R τρέχει την συνάρτηση CoDaDendrogram που είδαμε και νωρίτερα από το πακέτο compositions. Πρέπει να τονίσουμε ξανά πως η συγκεκριμένη εντολή δεν δίνει ως αποτέλεσμα δενδρόγραμμα το οποίο να παράγεται μέσω της ιεραρχικής ανάλυσης συστάδων που είδαμε νωρίτερα και έτσι δεν μπορούμε να βγάλουμε ασφαλή συμπεράσματα για την έρευνά μας. Σε περίπτωση που επιθυμούμε να πάρουμε τα αποτελέσματα υπολογισμών που κάναμε νωρίτερα σε πιο κλασσική μορφή μπορούμε να διαλέξουμε το χαρακτηριστικό View R output της κατηγορίας R. Με αυτό τον τρόπο μπορούμε να δούμε πως θα εμφανιζόταν τα αποτελέσματα αυτά αν τρέχαμε τις εντολές μέσα από το RGUI. Επίσης, αν επιλέξουμε από το View Data το Clipboard τότε πολύ γρήγορα και εύκολα έχουμε αντιγράψει αυτά τα αποτελέσματα και μπορούμε να τα επικολλήσουμε σε ένα εξωτερικό αρχείο (.doc,.txt και άλλα). Το σχήμα που έχουμε δημιουργήσει στο Red canvas είναι το ακόλουθο. 86

88 Εικ. 5-3 Μπορούμε εύκολα να διακρίνουμε τόσο τα εικονίδια των χαρακτηριστικών που χρησιμοποιήσαμε όσο και τη σύνδεση σωλήνωση των εντολών αυτών μεταξύ τους. Παρακάτω θα δούμε τα βήματα για την παραγωγή τριμερών γραφημάτων (ternary diagrams) με το εργαλείο της RED-R. Αρχικά, είναι σχεδόν προφανές πως υπάρχουν κοινές πράξεις και χαρακτηριστικά με το παραπάνω σχήμα. Έτσι, χρησιμοποιούμε το χαρακτηριστικό για την εισαγωγή των δεδομένων στο σύστημα της RED-R με το Read Files. Κατόπιν με το χαρακτηριστικό Row or column Selection, επιλέγουμε τις στήλες και τις γραμμές του συνόλου δεδομένων που επιθυμούμε να δουλέψουμε και μας είναι χρήσιμες. Ακόμα και σε περιπτώσεις που το αρχείο που περιέχει τα δεδομένα μας είναι έτοιμο προς χρήση, θεωρείται καλή στρατηγική από τους προγραμματιστές της RED-R να χρησιμοποιούμε το εν λόγω χαρακτηριστικό. Και αμέσως μετά επιλέγουμε το View Data Table για να εξακριβώσουμε πως δεν έχουμε κάνει κάποιο λάθος και είμαστε έτοιμοι να προχωρήσουμε σε υπολογισμούς. Πριν χρησιμοποιήσουμε κάποιο χαρακτηριστικό για την παραγωγή γραφημάτων εφαρμόζουμε πρώτα στα δεδομένα μας το κουμπί Close the Simplex. Αυτή η επιλογή στην ουσία μετατρέπει τα δεδομένα μας σε κατάλληλη μορφή αποδεκτή από την compositional data analysis. Και εδώ, ενώ το 87

89 σύνολο δεδομένων που εργαζόμαστε περιέχει τιμές οι οποίες αθροίζονται στην μονάδα είναι καλό, ενώ σε μερικές περιπτώσεις απαραίτητο, να εφαρμόσουμε πρώτα αυτό το χαρακτηριστικό και κατόπιν να γίνει είσοδος στην επόμενη λειτουργία που θα επιτελέσουμε. Εικ. 5-4 Τώρα, έχουμε φτάσει ένα στάδιο πριν την τελική υλοποίηση του σχήματος. Επιλέγουμε δύο φορές το χαρακτηριστικό Compositional Ellipses από την κατηγορία Compositional Plots του πακέτου Compositions. Όπως φαίνεται στο παραπάνω σχήμα πρέπει να συνδέσουμε την έξοδο του χαρακτηριστικού Close the Simplex τόσο με τα δύο κουμπιά Compositional Ellipses όσο και με ένα τελευταίο το Generic Plot. Επίσης συνδέουμε την έξοδο αυτών με το Generic Plot. Αυτό είναι απαραίτητο να γίνει για την παραγωγή των γραφημάτων. Καταρχήν όπως βλέπουμε από τα χαρακτηριστικά Compositional Ellipses έχουν και κουμπάκι για είσοδο αλλά και για έξοδο. Προφανώς αν αφήσουμε την έξοδο χωρίς κάποια συνέχεια δεν μπορούμε να έχουμε αποτέλεσμα. Επίσης χρησιμοποιούμε το κουμπί Generic Plot αρκετά συχνά στην RED-R. Αυτό συμβαίνει γιατί μέσω αυτού υλοποιείται σύνδεση της RED-R με τα πακέτα που έχουν αναπτυχθεί και ενσωματωθεί αυτόνομα στο σύστημα της RED-R. Το γράφημα που έχουμε ως αποτέλεσμα μπορούμε να το δούμε παρακάτω. 88

90 Εικ. 5-5 Παρατηρούμε εύκολα πως το ίδιο γράφημα έχουμε πάρει και νωρίτερα με την εντολή plot(acomp(dataset_comps)) την οποία τρέξαμε μέσω του συστήματος της R και με την υποστήριξη των πακέτων compositions και Rcmdr. Το γράφημα αυτό δεν δίνει ιδιαίτερα χρήσιμες πληροφορίες αν και προβλέπεται σε επόμενες εκδόσεις του πακέτου να είναι πιο εύχρηστο και ευδιάκριτο. Συμπερασματικά μπορούμε να πούμε πως η RED-R είναι ένα αρκετά χρήσιμο εργαλείο το οποίο μας βοηθάει να κάνουμε αρκετούς υπολογισμούς γρήγορα και εύκολα. Ακόμη, ο οπτικός προγραμματισμός μπορεί να είναι το έναυσμα για κάποιους αρχάριους να εμβαθύνουν. Όσον αφορά την εργασία μας, πέραν κάποιων βασικών εντολών και συναρτήσεων δεν μπορεί να μας βοηθήσει περαιτέρω. Αυτό συμβαίνει διότι το πακέτο που αναπτύχθηκε ακόμη είναι σε πρόωρο σχεδόν στάδιο και υπάρχουν αρκετά σφάλματα (bugs) που χρειάζεται να 89

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Δρ. Π. Νικολαΐδου Προγραμματίζοντας στη γλώσσα R Αντικείμενα Δεδομένων ( 2 ο Μάθημα ) Αντικείμενα Δεδομένων Τα αντικείµενα δεδοµένων είναι οι διάφορες µορφές στις οποίες µπορούν

Διαβάστε περισσότερα

Σε αυτό το κεφάλαιο ϑα αναπτυχθούν όλες οι πιο πάνω µορφές αντικειµένων, εκτός από τις χρονοσειρές οι οποίες ϑα αναλυθούν σε επόµενο κεφάλαιο.

Σε αυτό το κεφάλαιο ϑα αναπτυχθούν όλες οι πιο πάνω µορφές αντικειµένων, εκτός από τις χρονοσειρές οι οποίες ϑα αναλυθούν σε επόµενο κεφάλαιο. Κεφάλαιο 2 Αντικείµενα εδοµένων Στο κεφάλαιο αυτό γίνεται εισαγωγή στην ιδέα των αντικειµένων δεδοµένων. Τα αντικείµενα δεδοµένων είναι οι διάφορες µορφές στις οποίες µπορούν να ϕυλαχθούν δεδοµένα στην

Διαβάστε περισσότερα

Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1

Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1 Ενδεικτική Οργάνωση Ενοτήτων Στ Τάξη Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1 15 Αρ3.1 Απαγγέλουν, διαβάζουν, γράφουν και αναγνωρίζουν ποσότητες αριθμών Επανάληψη μέχρι το 1 000

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

ΠΑΡΟΥΣΙΑΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΟΥΣΙΑΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ο Κεφάλαιο: Στατιστική ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Πληθυσμός: Λέγεται ένα σύνολο στοιχείων που θέλουμε να εξετάσουμε με ένα ή περισσότερα χαρακτηριστικά. Μεταβλητές X: Ονομάζονται

Διαβάστε περισσότερα

Μαθηµατικοί Υπολογισµοί στην R

Μαθηµατικοί Υπολογισµοί στην R Κεφάλαιο 3 Μαθηµατικοί Υπολογισµοί στην R Ενα µεγάλο µέρος της ανάλυσης δεδοµένων απαιτεί διάφορους µαθηµατικούς υπολογισµούς. Αυτό το κεφάλαιο εισαγάγει τον αναγνώστη στις διάφορες δυνατότητες που έχει

Διαβάστε περισσότερα

Τι είναι βαθμωτό μέγεθος? Ένα μέγεθος που περιγράφεται μόνο με έναν αριθμό (π.χ. πίεση)

Τι είναι βαθμωτό μέγεθος? Ένα μέγεθος που περιγράφεται μόνο με έναν αριθμό (π.χ. πίεση) TETY Εφαρμοσμένα Μαθηματικά Ενότητα ΙΙ: Γραμμική Άλγεβρα Ύλη: Διανυσματικοί χώροι και διανύσματα, μετασχηματισμοί διανυσμάτων, τελεστές και πίνακες, ιδιοδιανύσματα και ιδιοτιμές πινάκων, επίλυση γραμμικών

Διαβάστε περισσότερα

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις 1. Εισαγωγή Δίνεται η συνάρτηση μεταφοράς = = 1 + 6 + 11 + 6 = + 6 + 11 + 6 =. 2 Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις L = 0 # και L $ % &'

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Διανυσματικοί Χώροι Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Διανυσματικός Χώρος επί του F Αλγεβρική δομή που αποτελείται

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Διανυσματικοί Χώροι Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Διανυσματικός Χώρος επί του F Αλγεβρική δομή που αποτελείται

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

Διαβάστε περισσότερα

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ. χρησιμοποιήσουμε καθημερινά φαινόμενα όπως το θερμόμετρο, Θετικοί-Αρνητικοί αριθμοί.

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ. χρησιμοποιήσουμε καθημερινά φαινόμενα όπως το θερμόμετρο, Θετικοί-Αρνητικοί αριθμοί. ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ ΑΛΓΕΒΡΑ (50 Δ. ώρες) Περιεχόμενα Στόχοι Οδηγίες - ενδεικτικές δραστηριότητες Οι μαθητές να είναι ικανοί: Μπορούμε να ΟΙ ΑΚΕΡΑΙΟΙ ΑΡΙΘΜΟΙ χρησιμοποιήσουμε καθημερινά φαινόμενα

Διαβάστε περισσότερα

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

Διαβάστε περισσότερα

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η μέθοδος PCA (Ανάλυση Κύριων Συνιστωσών), αποτελεί μία γραμμική μέθοδο συμπίεσης Δεδομένων η οποία συνίσταται από τον επαναπροσδιορισμό των συντεταγμένων ενός

Διαβάστε περισσότερα

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8 ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ Άλγεβρα 1 ο Κεφάλαιο 1. Τι ονομάζουμε αριθμητική και τι αλγεβρική παράσταση; Να δώσετε από ένα παράδειγμα. Μια παράσταση που περιέχει πράξεις με αριθμούς, καλείται αριθμητική παράσταση,

Διαβάστε περισσότερα

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς Καστοριά, Ιούλιος 14 A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας

Διαβάστε περισσότερα

Δύο κύριοι τρόποι παρουσίασης δεδομένων. Παράδειγμα

Δύο κύριοι τρόποι παρουσίασης δεδομένων. Παράδειγμα Δύο κύριοι τρόποι παρουσίασης δεδομένων Παράδειγμα Με πίνακες Με διαγράμματα Ονομαστικά δεδομένα Εδώ τα περιγραφικά μέτρα (μέσος, διάμεσος κλπ ) δεν έχουν νόημα Πήραμε ένα δείγμα από 25 άτομα και τα ρωτήσαμε

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... 15

Περιεχόμενα. Πρόλογος... 15 Περιεχόμενα Πρόλογος... 15 Κεφάλαιο 1 ΘΕΩΡΗΤΙΚΑ ΚΑΙ ΦΙΛΟΣΟΦΙΚΑ ΟΝΤΟΛΟΓΙΚΑ ΚΑΙ ΕΠΙΣΤΗΜΟΛΟΓΙΚΑ ΖΗΤΗΜΑΤΑ ΤΗΣ ΜΕΘΟΔΟΛΟΓΙΑΣ ΕΡΕΥΝΑΣ ΤΟΥ ΠΡΑΓΜΑΤΙΚΟΥ ΚΟΣΜΟΥ... 17 Το θεμελιώδες πρόβλημα των κοινωνικών επιστημών...

Διαβάστε περισσότερα

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica Πρώτη επαφή με το μαθηματικό πακέτο Mathematica Με δύο λόγια, μπορούμε να πούμε ότι η Mathematica είναι ένα πρόγραμμα που το χρησιμοποιούμε για να κάνουμε αναλυτικούς και αριθμητικούς υπολογισμούς αλλά

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

ΣΤΑΤΙΣΤΙΚΟΙ ΠΙΝΑΚΕΣ. ΓΕΝΙΚΟΙ (περιέχουν όλες τις πληροφορίες που προκύπτουν από μια στατιστική έρευνα) ΕΙΔΙΚΟΙ ( είναι συνοπτικοί και σαφείς )

ΣΤΑΤΙΣΤΙΚΟΙ ΠΙΝΑΚΕΣ. ΓΕΝΙΚΟΙ (περιέχουν όλες τις πληροφορίες που προκύπτουν από μια στατιστική έρευνα) ΕΙΔΙΚΟΙ ( είναι συνοπτικοί και σαφείς ) Πληθυσμός (populaton) ονομάζεται ένα σύνολο, τα στοιχεία του οποίου εξετάζουμε ως προς τα χαρακτηριστικά τους. Μεταβλητές (varables ) ονομάζονται τα χαρακτηριστικά ως προς τα οποία εξετάζουμε έναν πληθυσμό.

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Πεπερασμένες και Διαιρεμένες Διαφορές Εισαγωγή Θα εισάγουμε την έννοια των διαφορών με ένα

Διαβάστε περισσότερα

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

Στατιστική είναι το σύνολο των μεθόδων και θεωριών που εφαρμόζονται σε αριθμητικά δεδομένα προκειμένου να ληφθεί κάποια απόφαση σε συνθήκες Ορισμός Στατιστική είναι το σύνολο των μεθόδων και θεωριών που εφαρμόζονται σε αριθμητικά δεδομένα προκειμένου να ληφθεί κάποια απόφαση σε συνθήκες αβεβαιότητας. Βασικές έννοιες Η μελέτη ενός πληθυσμού

Διαβάστε περισσότερα

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας Διανύσματα Καστοριά,

Διαβάστε περισσότερα

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Συμβολισμοί Σε αναλογία με τους ορισμούς συμβολίζουμε μια ακολουθία: 1 είτε μέσω του διανυσματικού ορισμού, παραθέτοντας αναγκαστικά

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

ΟΜΑΔΕΣ. Δημιουργία Ομάδων

ΟΜΑΔΕΣ. Δημιουργία Ομάδων Δημιουργία Ομάδων Μεθοδολογίες ομαδοποίησης δεδομένων: Μέθοδοι για την εύρεση των κατηγοριών και των υποκατηγοριών που σχηματίζουν τα δεδομένα του εκάστοτε προβλήματος. Ομαδοποίηση (clustering): εργαλείο

Διαβάστε περισσότερα

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER 4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

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

Διαβάστε περισσότερα

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

Διαβάστε περισσότερα

Ελλιπή δεδομένα. Εδώ έχουμε 1275. Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 1275 ατόμων

Ελλιπή δεδομένα. Εδώ έχουμε 1275. Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 1275 ατόμων Ελλιπή δεδομένα Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 75 ατόμων Εδώ έχουμε δ 75,0 75 5 Ηλικία Συχνότητες f 5-4 70 5-34 50 35-44 30 45-54 465 55-64 335 Δεν δήλωσαν 5 Σύνολο 75 Μπορεί

Διαβάστε περισσότερα

Β Γραφικές παραστάσεις - Πρώτο γράφημα Σχεδιάζοντας το μήκος της σανίδας συναρτήσει των φάσεων της σελήνης μπορείτε να δείτε αν υπάρχει κάποιος συσχετισμός μεταξύ των μεγεθών. Ο συνήθης τρόπος γραφικής

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Γρήγορες προσθέσεις αριθμών Γρήγορες συγκρίσεις αριθμών Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων Σχετικά γρήγορη μετάδοση και πρόσληψη

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ. Η διαίρεση καλείται Ευκλείδεια και είναι τέλεια όταν το υπόλοιπο είναι μηδέν.

ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ. Η διαίρεση καλείται Ευκλείδεια και είναι τέλεια όταν το υπόλοιπο είναι μηδέν. ΑΛΓΕΒΡΑ 1 ο ΚΕΦΑΛΑΙΟ ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ 1. Τι είναι αριθμητική παράσταση; Με ποια σειρά εκτελούμε τις πράξεις σε μια αριθμητική παράσταση ώστε να βρούμε την τιμή της; Αριθμητική παράσταση λέγεται κάθε

Διαβάστε περισσότερα

ΣΤΑΤΙΣΤΙΚΗ ( ΜΕΤΡΑ ΘΕΣΗΣ ΚΑΙ ΔΙΑΣΠΟΡΑΣ)

ΣΤΑΤΙΣΤΙΚΗ ( ΜΕΤΡΑ ΘΕΣΗΣ ΚΑΙ ΔΙΑΣΠΟΡΑΣ) ΣΤΑΤΙΣΤΙΚΗ ( ΜΕΤΡΑ ΘΕΣΗΣ ΚΑΙ ΔΙΑΣΠΟΡΑΣ) ΠΕΡΙΕΧΟΜΕΝΑ Μέτρα θέσης και διασποράς (Εισαγωγή) Μέση τιμή Διάμεσος Σταθμικός μέσος Επικρατούσα τιμή Εύρος Διακύμανση Τυπική απόκλιση Συντελεστής μεταβολής Κοζαλάκης

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος 3

Περιεχόμενα. Πρόλογος 3 Πρόλογος Η χρησιμότητα της Γραμμικής Άλγεβρας είναι σχεδόν αυταπόδεικτη. Αρκεί μια ματιά στο πρόγραμμα σπουδών, σχεδόν κάθε πανεπιστημιακού τμήματος θετικών επιστημών, για να διαπιστώσει κανείς την παρουσία

Διαβάστε περισσότερα

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3 (ΨΥΧ-1202) Λεωνίδας Α. Ζαμπετάκης Β.Sc., M.Env.Eng., M.Ind.Eng., D.Eng. Εmail: statisticsuoc@gmail.com ιαλέξεις: ftp://ftp.soc.uoc.gr/psycho/zampetakis/ ιάλεξη 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΨΥΧΟΛΟΓΙΑΣ Ρέθυμνο,

Διαβάστε περισσότερα

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1 Τελεστές και πίνακες 1. Τελεστές και πίνακες Γενικά Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. Ανάλογα, τελεστής είναι η απεικόνιση ενός διανύσματος σε ένα

Διαβάστε περισσότερα

Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης

Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης 1 Oct 16 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Εισαγωγή στις Τηλεπικοινωνίες Διάλεξη 4 η Γεωμετρική Αναπαράσταση

Διαβάστε περισσότερα

ΣΤΑΤΙΣΤΙΚΗ ΠΙΘΑΝΟΤΗΤΕΣ

ΣΤΑΤΙΣΤΙΚΗ ΠΙΘΑΝΟΤΗΤΕΣ 9/10/009 ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ Η/Υ ΣΤΑΤΙΣΤΙΚΗ ΠΙΘΑΝΟΤΗΤΕΣ 3o ΜΑΘΗΜΑ Ι ΑΣΚΩΝ ΒΑΣΙΛΕΙΑ ΗΣ ΓΕΩΡΓΙΟΣ Emal: gasl@math.auth.gr Ιστοσελίδα Μαθήματος: users.auth.gr/gasl

Διαβάστε περισσότερα

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ 1 ο : ΔΙΑΝΥΣΜΑΤΑ 1 ΜΑΘΗΜΑ 1 ο +2 ο ΕΝΝΟΙΑ ΔΙΑΝΥΣΜΑΤΟΣ Διάνυσμα ορίζεται ένα προσανατολισμένο ευθύγραμμο τμήμα, δηλαδή ένα ευθύγραμμο τμήμα

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ Α. Ντούνης ΔΙΔΑΣΚΩΝ ΑΚΑΔ. ΥΠΟΤΡΟΦΟΣ Χ. Τσιρώνης ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ ΔΕΥΤΕΡΟ - Διανύσματα - Πράξεις με πίνακες - Διαφορικός λογισμός (1D) ΜΑΘΗΜΑΤΙΚΟ ΥΠΟΒΑΘΡΟ

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι Ανάλυσης στις Κοινωνικές Επιστήμες

Ποσοτικές Μέθοδοι Ανάλυσης στις Κοινωνικές Επιστήμες ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ποσοτικές Μέθοδοι Ανάλυσης στις Ενότητα 5: Ανάλυση στοιχείων. Θεόδωρος Χατζηπαντελής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Α ΜΕΡΟΣ - ΑΛΓΕΒΡΑ. Α. Οι πραγματικοί αριθμοί και οι πράξεις τους

Α ΜΕΡΟΣ - ΑΛΓΕΒΡΑ. Α. Οι πραγματικοί αριθμοί και οι πράξεις τους Α ΜΕΡΟΣ - ΑΛΓΕΒΡΑ Κεφάλαιο 1 ο ΑΛΓΕΒΡΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ 1.1 Πράξεις με πραγματικούς αριθμούς Α. Οι πραγματικοί αριθμοί και οι πράξεις τους 1. Ποιοι αριθμοί ονομάζονται: α) ρητοί β) άρρητοι γ) πραγματικοί;

Διαβάστε περισσότερα

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΕΥΡΙΠΙΔΟΥ 80 ΝΙΚΑΙΑ ΝΕΑΠΟΛΗ ΤΗΛΕΦΩΝΟ 0965897 ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ ΒΡΟΥΤΣΗ ΕΥΑΓΓΕΛΙΑ ΜΠΟΥΡΝΟΥΤΣΟΥ ΚΩΝ/ΝΑ ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ Η έννοια του μιγαδικού

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ Ονοματεπώνυμο:......... Α.Μ....... Ετος... ΑΙΘΟΥΣΑ:....... I. (περί τις 55μ. = ++5++. Σωστό ή Λάθος: ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - //8 ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ (αʹ Αν AB = BA όπου A, B τετραγωνικά και

Διαβάστε περισσότερα

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Προϋποθέσεις Εφαρμογής

Διαβάστε περισσότερα

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

Διαβάστε περισσότερα

Περιγραφική Στατιστική

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

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

Κλασικη ιαφορικη Γεωµετρια

Κλασικη ιαφορικη Γεωµετρια Αριστοτελειο Πανεπιστηµιο Θεσσαλονικης Σχολη Θετικων Επιστηµων, Τµηµα Μαθηµατικων, Τοµεας Γεωµετριας Κλασικη ιαφορικη Γεωµετρια Πρώτη Εργασία, 2018-19 1 Προαπαιτούµενες γνώσεις και ϐασική προετοιµασία

Διαβάστε περισσότερα

6 Φεβρουαρίου 2016, Λεμεσός

6 Φεβρουαρίου 2016, Λεμεσός 6 Φεβρουαρίου 2016, Λεμεσός Τα ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΑΘΗΜΑΤΙΚΩΝ περιγράφει: τα Μαθηματικά που αναμένουμε να κατανοήσουν οι μαθητές μέχρι το τέλος της σχολικής τους εκπαίδευσης, από το Νηπιαγωγείο μέχρι

Διαβάστε περισσότερα

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

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

Διαβάστε περισσότερα

Περιγραφική Στατιστική. Ακαδ. Έτος 2012-2013 1 ο εξάμηνο. Κ. Πολίτης

Περιγραφική Στατιστική. Ακαδ. Έτος 2012-2013 1 ο εξάμηνο. Κ. Πολίτης Περιγραφική Στατιστική Ακαδ. Έτος 2012-2013 1 ο εξάμηνο Κ. Πολίτης 1 2 Η στατιστική ασχολείται με τη συλλογή, οργάνωση, παρουσίαση και ανάλυση πληροφοριών. Οι πληροφορίες αυτές, πολύ συχνά αριθμητικές,

Διαβάστε περισσότερα

Μετασχηματισμοί Μοντελοποίησης (modeling transformations)

Μετασχηματισμοί Μοντελοποίησης (modeling transformations) Μετασχηματισμοί Δ Μετασχηματισμοί Μοντελοποίησης (modeling trnformtion) Καθορισμός μετασχηματισμών των αντικειμένων Τα αντικείμενα περιγράφονται στο δικό τους σύστημα συντεταγμένων Επιτρέπει την χρήση

Διαβάστε περισσότερα

ETY-202 ΤΑ ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΚΒΑΝΤΟΜΗΧΑΝΙΚΗΣ ETY-202 ΎΛΗ & ΦΩΣ 02. ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ. Στέλιος Τζωρτζάκης 1/11/2013

ETY-202 ΤΑ ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΚΒΑΝΤΟΜΗΧΑΝΙΚΗΣ ETY-202 ΎΛΗ & ΦΩΣ 02. ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ. Στέλιος Τζωρτζάκης 1/11/2013 stzortz@iesl.forth.gr 1396; office Δ013 ΙΤΕ 2 ΎΛΗ & ΦΩΣ 02. ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ ΤΑ ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΚΒΑΝΤΟΜΗΧΑΝΙΚΗΣ Στέλιος Τζωρτζάκης 1 3 4 Ο διανυσματικός χώρος των φυσικών καταστάσεων Η έννοια

Διαβάστε περισσότερα

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Χατζηλιάδη Παναγιώτα Ευανθία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Χατζηλιάδη Παναγιώτα Ευανθία ΜΠΣ «ΜΕΘΟΔΟΛΟΓΙΑ ΒΪΟΙΑΤΡΙΚΗΣ ΕΡΕΥΝΑΣ, ΒΙΟΣΤΑΤΙΣΤΙΚΗ ΚΑΙ ΚΛΙΝΙΚΗ ΒΙΟΠΛΗΡΟΦΟΡΙΚΗ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «Ανάπτυξη λογισμικού σε γλώσσα προγραματισμού python για ομαδοποίηση

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

III.9 ΑΚΡΟΤΑΤΑ ΣΕ ΠΕΡΙΟΧΗ

III.9 ΑΚΡΟΤΑΤΑ ΣΕ ΠΕΡΙΟΧΗ III.9 ΑΚΡΟΤΑΤΑ ΣΕ ΠΕΡΙΟΧΗ.Ολικά και τοπικά ακρότατα..εσωτερικά και συνοριακά ακρότατα 3.Χωριζόμενες μεταβλητές 4.Συνθήκες για ακρότατα 5.Ολικά ακρότατα κυρτών/κοίλων συναρτήσεων 6.Περισσότερες μεταβλητές.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

Ενδεικτική Οργάνωση Ενοτήτων. E Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1

Ενδεικτική Οργάνωση Ενοτήτων. E Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1 Ενδεικτική Οργάνωση Ενοτήτων E Τάξη Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1 Αρ3.1 Απαγγέλουν, διαβάζουν, γράφουν και αναγνωρίζουν ποσότητες αριθμών μέχρι το 1 000 000 000 8 Επανάληψη

Διαβάστε περισσότερα

Θέση και Προσανατολισμός

Θέση και Προσανατολισμός Κεφάλαιο 2 Θέση και Προσανατολισμός 2-1 Εισαγωγή Προκειμένου να μπορεί ένα ρομπότ να εκτελέσει κάποιο έργο, πρέπει να διαθέτει τρόπο να περιγράφει τα εξής: Τη θέση και προσανατολισμό του τελικού στοιχείου

Διαβάστε περισσότερα

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX Θεμελιώδης αλγόριθμος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού που κάνει χρήση της θεωρίας της Γραμμικής Άλγεβρας Προτάθηκε από το Dantzig (1947) και πλέον

Διαβάστε περισσότερα

Συσχέτιση μεταξύ δύο συνόλων δεδομένων

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

Διαβάστε περισσότερα

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί Χώροι Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: Διανυσματικοί Χώροι α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο

Διαβάστε περισσότερα

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

Διαβάστε περισσότερα

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Εισαγωγή στη Matlab Βασικές Συναρτήσεις Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας Εισαγωγή στη Matlab Βασικές Συναρτήσεις 2016-2017 Εισαγωγή στη Matlab Matlab

Διαβάστε περισσότερα

Συστήματα συντεταγμένων

Συστήματα συντεταγμένων Συστήματα συντεταγμένων Χρησιμοποιούνται για την περιγραφή της θέσης ενός σημείου στον χώρο. Κοινά συστήματα συντεταγμένων: Καρτεσιανό (x, y, z) Πολικό (r, θ) Καρτεσιανό σύστημα συντεταγμένων Οι άξονες

Διαβάστε περισσότερα

E[ (x- ) ]= trace[(x-x)(x- ) ]

E[ (x- ) ]= trace[(x-x)(x- ) ] 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ Ακαδ. Έτος 07-08 Διδάσκων: Βασίλης ΚΟΥΤΡΑΣ Επικ. Καθηγητής v.koutras@fme.aegea.gr Τηλ: 7035468 Θα μελετήσουμε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ Ακαδ. Έτος 06-07 Διδάσκων: Βασίλης ΚΟΥΤΡΑΣ Επικ. Καθηγητής v.koutra@fme.aegea.gr Τηλ: 7035468 Θα μελετήσουμε

Διαβάστε περισσότερα

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας Εισηγητής Αναστάσιος Κεσίδης Χωρικά φίλτρα Χωρικά φίλτρα Γενικά Σε αντίθεση με τις σημειακές πράξεις και μετασχηματισμούς, στα

Διαβάστε περισσότερα

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο συμβολίζουμε με Σε αυτό το σύνολο γνωρίζουμε

Διαβάστε περισσότερα

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Πίνακες Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Πίνακες Μητρώα Πίνακας: Ορθογώνια διάταξη αριθμών σε γραμμές και στήλες

Διαβάστε περισσότερα

ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ

ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΑΤΙΣΤΙΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΓΙΑ ΤΟΝ ΕΝΤΟΠΙΣΜΟ ΓΕΩΧΗΜΙΚΗΣ ΑΝΩΜΑΛΙΑΣ Στατιστική ανάλυση του γεωχημικού δείγματος μας δίνει πληροφορίες για τον

Διαβάστε περισσότερα

(a + b) + c = a + (b + c), (ab)c = a(bc) a + b = b + a, ab = ba. a(b + c) = ab + ac

(a + b) + c = a + (b + c), (ab)c = a(bc) a + b = b + a, ab = ba. a(b + c) = ab + ac Σημειώσεις μαθήματος Μ1212 Γραμμική Άλγεβρα ΙΙ Χρήστος Κουρουνιώτης ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 2014 Κεφάλαιο 1 Διανυσματικοί Χώροι Στο εισαγωγικό μάθημα Γραμμικής Άλγεβρας ξεκινήσαμε μελετώντας

Διαβάστε περισσότερα

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

Διαβάστε περισσότερα

Πρόγραμμα Σπουδών Εκπαίδευσης Παιδιών-Προφύγων Τάξεις Ε+ΣΤ Δημοτικού

Πρόγραμμα Σπουδών Εκπαίδευσης Παιδιών-Προφύγων Τάξεις Ε+ΣΤ Δημοτικού Πρόγραμμα Σπουδών Εκπαίδευσης Παιδιών-Προφύγων 2016-2017 Τάξεις Ε+ΣΤ Δημοτικού Περιεχόμενα Στόχοι Πηγή Υλικού 3.1 Αριθμοί Οι μαθητές πρέπει: Σχολικά βιβλία Ε και ΣΤ Φυσικοί, Δεκαδικοί, μετρήσεις Να μπορούν

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Ιδιοτιμές - Ιδιοδιανύσματα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Χαρακτηριστικά Ποσά Τετράγωνου Πίνακα (Ιδιοτιμές Ιδιοδιανύσματα)

Διαβάστε περισσότερα

Ενότητα 1: Εισαγωγή. ΤΕΙ Στερεάς Ελλάδας. Τμήμα Φυσικοθεραπείας. Προπτυχιακό Πρόγραμμα. Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο )

Ενότητα 1: Εισαγωγή. ΤΕΙ Στερεάς Ελλάδας. Τμήμα Φυσικοθεραπείας. Προπτυχιακό Πρόγραμμα. Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο ) ΤΕΙ Στερεάς Ελλάδας Τμήμα Φυσικοθεραπείας Προπτυχιακό Πρόγραμμα Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο ) Ενότητα 1: Εισαγωγή Δρ. Χρήστος Γενιτσαρόπουλος Λαμία, 2017 1.1. Σκοπός και

Διαβάστε περισσότερα

Εισαγωγή στη Στατιστική

Εισαγωγή στη Στατιστική Εισαγωγή στη Στατιστική Μετεκπαιδευτικό Σεμινάριο στην ΨΥΧΟΚΟΙΝΩΝΙΚΗ ΑΠΟΚΑΤΑΣΤΑΣΗ ΨΥΧΟΚΟΙΝΩΝΙΚΕΣ ΘΕΡΑΠΕΥΤΙΚΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ Δημήτρης Φουσκάκης, Επίκουρος Καθηγητής, Τομέας Μαθηματικών, Σχολή Εφαρμοσμένων

Διαβάστε περισσότερα

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ. Αριάδνη Αργυράκη

ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ. Αριάδνη Αργυράκη ΜΟΝΟΠΑΡΑΜΕΤΡΙΚΗ ΚΑΙ ΠΟΛΥΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ Αριάδνη Αργυράκη ΣΤΑΔΙΑ ΕΚΤΕΛΕΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΓΕΩΧΗΜΙΚΩΝ ΕΡΕΥΝΩΝ 1.ΣΧΕΔΙΑΣΜΟΣ: - Καθορισμός στόχων έρευνας - Ιστορικό περιοχής 2 4.

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 2 η Ημερομηνία Αποστολής στον Φοιτητή: 28 Νοεμβρίου 2011

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 2 η Ημερομηνία Αποστολής στον Φοιτητή: 28 Νοεμβρίου 2011 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ ) ΕΡΓΑΣΙΑ η Ημερομηνία Αποστολής στον Φοιτητή: 8 Νοεμβρίου 0 Ημερομηνία παράδοσης της Εργασίας: 6 Ιανουαρίου 0 Οι ασκήσεις

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Kεφάλαιο 4. Συστήματα διαφορικών εξισώσεων. F : : F = F r, όπου r xy

Kεφάλαιο 4. Συστήματα διαφορικών εξισώσεων. F : : F = F r, όπου r xy 4 Εισαγωγή Kεφάλαιο 4 Συστήματα διαφορικών εξισώσεων Εστω διανυσματικό πεδίο F : : F = Fr, όπου r x, και είναι η ταχύτητα στο σημείο πχ ενός ρευστού στο επίπεδο Εστω ότι ψάχνουμε τις τροχιές κίνησης των

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ ΠΡΩΤΟ ΣΤΟΙΧΕΙΑ ΔΙΑΦΟΡΙΚΟΥ ΛΟΓΙΣΜΟΥ ΣΥΝΑΡΤΗΣΕΩΝ ΠΟΛΛΩΝ ΜΕΤΑΒΛΗΤΩΝ 15

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ ΠΡΩΤΟ ΣΤΟΙΧΕΙΑ ΔΙΑΦΟΡΙΚΟΥ ΛΟΓΙΣΜΟΥ ΣΥΝΑΡΤΗΣΕΩΝ ΠΟΛΛΩΝ ΜΕΤΑΒΛΗΤΩΝ 15 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ 13 ΜΕΡΟΣ ΠΡΩΤΟ ΣΤΟΙΧΕΙΑ ΔΙΑΦΟΡΙΚΟΥ ΛΟΓΙΣΜΟΥ ΣΥΝΑΡΤΗΣΕΩΝ ΠΟΛΛΩΝ ΜΕΤΑΒΛΗΤΩΝ 15 ΚΕΦΑΛΑΙΟ 1: ΣΥΝΑΡΤΗΣΕΙΣ ΠΟΛΛΩΝ ΜΕΤΑΒΛΗΤΩΝ 17 1. Εισαγωγή 17 2. Πραγματικές συναρτήσεις διανυσματικής μεταβλητής

Διαβάστε περισσότερα

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να εξετάσετε αν ισχύουν οι υποθέσεις του Θ.Μ.Τ. για την συνάρτηση στο διάστημα [ 1,1] τέτοιο, ώστε: C στο σημείο (,f( ))

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να εξετάσετε αν ισχύουν οι υποθέσεις του Θ.Μ.Τ. για την συνάρτηση στο διάστημα [ 1,1] τέτοιο, ώστε: C στο σημείο (,f( )) ΚΕΦΑΛΑΙΟ ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 6: ΘΕΩΡΗΜΑ ΜΕΣΗΣ ΤΙΜΗΣ ΔΙΑΦΟΡΙΚΟΥ ΛΟΓΙΣΜΟΥ (Θ.Μ.Τ.) [Θεώρημα Μέσης Τιμής Διαφορικού Λογισμού του κεφ..5 Μέρος Β του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ Παράδειγμα. ΘΕΜΑ

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 5ο Aντώνης Σπυρόπουλος Πράξεις μεταξύ των

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ. για τα οποία ισχύει y f (x) , δηλαδή το σύνολο, x A, λέγεται γραφική παράσταση της f και συμβολίζεται συνήθως με C

ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ. για τα οποία ισχύει y f (x) , δηλαδή το σύνολο, x A, λέγεται γραφική παράσταση της f και συμβολίζεται συνήθως με C Επιμέλεια: Κ Μυλωνάκης ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΕΡΩΤΗΣΗ Τι ονομάζεται πραγματική συνάρτηση με πεδίο ορισμού το Α; Έστω Α ένα υποσύνολο του R Ονομάζουμε πραγματική συνάρτηση με πεδίο ορισμού το Α μια διαδικασία

Διαβάστε περισσότερα

Δρ. Χάϊδω Δριτσάκη. MSc Τραπεζική & Χρηματοοικονομική

Δρ. Χάϊδω Δριτσάκη. MSc Τραπεζική & Χρηματοοικονομική Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη MSc Τραπεζική & Χρηματοοικονομική Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Western Macedonia University of Applied Sciences Κοίλα Κοζάνης 50100 Kozani GR

Διαβάστε περισσότερα