T-Test στον προγραμματισμό R: Ένα δείγμα και ένα ζευγαρωμένο παράδειγμα
⚡ Έξυπνη Σύνοψη
Το T-Test σε R συγκρίνει τους μέσους όρους χρησιμοποιώντας τη συνάρτηση t.test(), καλύπτοντας ένα δείγμα έναντι ενός σταθερού στόχου, δύο ανεξάρτητων ομάδων και ζευγαρωμένων επαναλαμβανόμενων μετρήσεων. Αυτή η αναλυτική παρουσίαση εκτελεί κάθε παραλλαγή, διαβάζει σωστά την τιμή p και επαληθεύει τις υποκείμενες υποθέσεις.

Τι είναι το στατιστικό συμπέρασμα;
Η Στατιστική Συμπερασματολογία είναι η τέχνη της εξαγωγής συμπερασμάτων σχετικά με την κατανομή των δεδομένων. Ένας επιστήμονας δεδομένων συχνά αντιμετωπίζει ερωτήματα που μπορούν να απαντηθούν μόνο επιστημονικά. Επομένως, η στατιστική συμπερασματολογία είναι μια στρατηγική για να ελεγχθεί εάν μια υπόθεση είναι αληθής, δηλαδή επικυρωμένη από τα δεδομένα.
Μια κοινή στρατηγική για την αξιολόγηση μιας υπόθεσης είναι το t-test, το οποίο σας λέει εάν δύο μέσοι όροι είναι ίσοι. Είναι επίσης γνωστό ως Τεστ μαθητήΈνα t-test μπορεί να υπολογιστεί για:
- Ένα μόνο διάνυσμα έναντι μιας σταθερής τιμής (t-test ενός δείγματος)
- Δύο διανύσματα από δύο ξεχωριστές ομάδες (ανεξάρτητο t-test δύο δειγμάτων)
- Δύο διανύσματα που μετρήθηκαν στα ίδια υποκείμενα (ζευγαρωμένο t-test)
Κάθε t-test υποθέτει ότι τα δεδομένα δειγματοληπτούνται τυχαία και ότι οι τιμές (ή, για ένα ζευγαρωμένο test, οι διαφορές) προέρχονται από έναν πληθυσμό με περίπου κανονική κατανομή. Η ανεξάρτητη έκδοση δύο δειγμάτων υποθέτει επιπλέον ότι οι δύο ομάδες είναι ανεξάρτητες μεταξύ τους, και η κλασική μορφή υποθέτει ότι οι διακυμάνσεις τους είναι ίσες.
Τι είναι το T-Test στον προγραμματισμό R;
Η βασική ιδέα πίσω από ένα T-Test είναι η χρήση στατιστικών για την αξιολόγηση δύο αντίθετων υποθέσεων:
- H0: η μηδενική υπόθεση, ότι ο μέσος όρος του πληθυσμού ισούται με την τιμή που ελέγχεται
- H1: η εναλλακτική υπόθεση, ότι ο μέσος όρος του πληθυσμού διαφέρει από αυτήν την τιμή
Το t-test έχει σχεδιαστεί για μικρά μεγέθη δειγμάτων, όπου η κανονική προσέγγιση είναι αναξιόπιστη. Απαιτεί τα δεδομένα να είναι περίπου κανονικά κατανεμημένα.
T-Test Syntax στο R
Η βασική σύνταξη για το t.test() στο R είναι:
t.test(x, y = NULL, mu = 0, var.equal = FALSE) arguments: - x : A vector to compute the one-sample t-test - y: A second vector to compute the two sample t-test - mu: Mean of the population under the null hypothesis - var.equal: Specify whether the variances of the two vectors are equal. By default, set to `FALSE` - paired: Set to `TRUE` when the two vectors are repeated measures on the same subjects
Πριν εκτελέσετε οτιδήποτε, αντιστοιχίστε τη διάταξη δεδομένων σας με τη σωστή παραλλαγή της δοκιμής.
Τύποι T-Test σε R
Η επιλογή λανθασμένης παραλλαγής είναι το πιο συνηθισμένο λάθος στο t-test, οπότε ξεκινήστε αντιστοιχίζοντας τη διάταξη των δεδομένων σας με τη σωστή κλήση.
| Χαρακτηριστικά | Χρησιμοποιήστε το όταν | Κλήση R |
|---|---|---|
| Ένα δείγμα | Μία ομάδα σε σύγκριση με μια γνωστή τιμή-στόχο | t.test(x, mu = τιμή) |
| Ανεξάρτητο δύο δειγμάτων (Welch) | Δύο ξεχωριστές ομάδες, οι διακυμάνσεις πιθανώς άνισες | t.test(x, y) |
| Ανεξάρτητο δείγμα δύο (συγκεντρωτικό) | Δύο ξεχωριστές ομάδες με ίση διακύμανση | t.test(x, y, var.equal = TRUE) |
| Συνενώθηκε | Τα ίδια άτομα μετρήθηκαν δύο φορές | t.test(x, y, ζεύγη = TRUE) |
| Μονόπλευρη | Σε νοιάζει μόνο η διαφορά προς μία κατεύθυνση | t.test(x, mu = τιμή, εναλλακτική = “μεγαλύτερη”) |
Πέρα από τρεις ομάδες, ένα t-test δεν είναι πλέον κατάλληλο. Αλλάξτε στο Δοκιμή ANOVA, η οποία διατηρεί το συνολικό ποσοστό σφάλματος στο 5% αντί να το διογκώνει σε επαναλαμβανόμενες συγκρίσεις ανά ζεύγη.
Ένα δείγμα T-Test στο R
Το One Sample t-test, ή το test Student, συγκρίνει τον μέσο όρο ενός διανύσματος με έναν θεωρητικό μέσο όρο, . Ο τύπος που χρησιμοποιείται για τον υπολογισμό του t-test είναι:
Εδώ,
αναφέρεται στη μέση
στο θεωρητικό μέσο
- s είναι η τυπική απόκλιση
- n τον αριθμό των παρατηρήσεων.
Για να αξιολογήσετε τη στατιστική σημασία του τεστ t, πρέπει να υπολογίσετε το p-value. ο p-value κυμαίνεται από 0 έως 1 και ερμηνεύεται ως εξής:
- Μια τιμή p μικρότερη από 0.05 σημαίνει ότι μπορείτε να απορρίψετε την μηδενική υπόθεση. Σημειώστε ότι η απόρριψη της H0 δεν είναι το ίδιο με την απόδειξη της αλήθειας της H1, σημαίνει μόνο ότι τα δεδομένα είναι απίθανα υπό H0.
- Μια τιμή p υψηλότερη από 0.05 υποδηλώνει ότι δεν έχετε αρκετά στοιχεία για να απορρίψετε την μηδενική υπόθεση.
Μπορείτε να κατασκευάσετε την τιμή p κοιτάζοντας την αντίστοιχη απόλυτη τιμή του τεστ t στην κατανομή Student με βαθμούς ελευθερίας ίσους με
Για παράδειγμα, με 5 παρατηρήσεις συγκρίνετε την τιμή-t σας με την κατανομή Student με 4 βαθμούς ελευθερίας σε επίπεδο εμπιστοσύνης 95 τοις εκατό. Για να απορρίψετε τη μηδενική υπόθεση σε έναν αμφίπλευρο έλεγχο, η απόλυτη τιμή-t πρέπει να υπερβαίνει το 2.776.
Βλ πίνακα παρακάτω:
Ένα δείγμα T-Test Παράδειγμα στο R
Ας υποθέσουμε ότι είστε μια εταιρεία που παράγει cookies. Κάθε μπισκότο υποτίθεται ότι περιέχει 10 γραμμάρια ζάχαρης. Τα μπισκότα παράγονται από μια μηχανή που προσθέτει τη ζάχαρη σε ένα μπολ πριν τα ανακατέψει όλα. Πιστεύετε ότι το μηχάνημα δεν προσθέτει 10 γραμμάρια ζάχαρης για κάθε μπισκότο. Εάν η υπόθεσή σας είναι αληθινή, το μηχάνημα πρέπει να επιδιορθωθεί. Αποθηκεύσατε το επίπεδο ζάχαρης των τριάντα μπισκότων.
Σημείωση: Μπορείτε να δημιουργήσετε ένα τυχαιοποιημένο διάνυσμα με τη συνάρτηση rnorm(). Αυτή η συνάρτηση δημιουργεί κανονικά κατανεμημένες τιμές. Η βασική σύνταξη είναι:
rnorm(n, mean, sd) arguments - n: Number of observations to generate - mean: The mean of the distribution. Optional - sd: The standard deviation of the distribution. Optional
Μπορείτε να δημιουργήσετε μια κατανομή με 30 παρατηρήσεις με μέσο όρο 9.99 και τυπική απόκλιση 0.04.
set.seed(123) sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04) head(sugar_cookie)
Παραγωγή:
## [1] 9.967581 9.980793 10.052348 9.992820 9.995172 10.058603
Μπορείτε να χρησιμοποιήσετε ένα τεστ t ενός δείγματος για να ελέγξετε εάν το επίπεδο ζάχαρης είναι διαφορετικό από τη συνταγή. Μπορείτε να σχεδιάσετε ένα τεστ υποθέσεων:
- H0: Το μέσο επίπεδο ζάχαρης είναι ίσο με 10
- H1: Το μέσο επίπεδο ζάχαρης είναι διαφορετικό από 10
Χρησιμοποιείτε ένα επίπεδο σημαντικότητας 0.05.
# H0 : mu = 10 t.test(sugar_cookie, mu = 10)
Εδώ είναι η έξοδος:
Η τιμή p του t-test ενός δείγματος είναι 0.1079, πάνω από το όριο του 0.05. Το διάστημα εμπιστοσύνης 95% για τον μέσο όρο κυμαίνεται από 9.973 έως 10.002 γραμμάρια και περιέχει την τιμή-στόχο των 10. Επομένως, δεν μπορείτε να απορρίψετε την H0: δεν υπάρχουν επαρκή στοιχεία που να αποδεικνύουν ότι η μηχανή αποκλίνει από τη συνταγή.
Ανεξάρτητο T-Test δύο δειγμάτων σε R
Το ανεξάρτητο t-test δύο δειγμάτων είναι η πιο συχνά χρησιμοποιούμενη παραλλαγή και εφαρμόζεται κάθε φορά που τα δύο σύνολα μετρήσεων προέρχονται από διαφορετικά υποκείμενα: δύο συνεργεία, δύο μηχανήματα, δύο βραχίονες επεξεργασίας.
Ας υποθέσουμε ότι ένα εργοστάσιο λειτουργεί δύο γραμμές παραγωγής και θέλετε να μάθετε αν γεμίζουν βάζα με το ίδιο βάρος.
set.seed(123) line_a <- rnorm(25, mean = 500, sd = 8) line_b <- rnorm(25, mean = 505, sd = 8) # Welch test, the safe default t.test(line_a, line_b) # Pooled test, only when the variances are equal t.test(line_a, line_b, var.equal = TRUE)
Διαβάστε το αποτέλεσμα σε τέσσερα βήματα.
- t είναι το τυποποιημένο μέγεθος του χάσματος μεταξύ των δύο μέσων τιμών. Το πρόσημό του αντικατοπτρίζει μόνο τη σειρά με την οποία περάσατε τα διανύσματα.
- df είναι οι βαθμοί ελευθερίας. Ο Welch παράγει μια κλασματική τιμή. Το συγκεντρωτικό τεστ δίνει έναν ακέραιο αριθμό ίσο με n1 + n2 – 2.
- p-value είναι η πιθανότητα να παρατηρηθεί ένα τόσο μεγάλο κενό αν οι πραγματικοί μέσοι όροι ήταν ίδιοι.
- Διάστημα εμπιστοσύνης ορίζει την πραγματική διαφορά. Όταν περιέχει μηδέν, η διαφορά δεν είναι σημαντική σε αυτό το επίπεδο.
Εάν τα δεδομένα σας βρίσκονται σε ένα μόνο πλαίσιο δεδομένων με μία στήλη τιμών και μία στήλη παράγοντα, χρησιμοποιήστε αντ' αυτού τη διεπαφή τύπων, η οποία είναι πιο εύκολη στην ανάγνωση και αποφεύγει τον χειροκίνητο διαχωρισμό των δεδομένων:
t.test(weight ~ line, data = jars)
Ποια έκδοση να χρησιμοποιήσετε. Αφήστε την var.equal στην προεπιλεγμένη τιμή FALSE, εκτός αν έχετε ελέγξει και επιβεβαιώσει ίσες διακυμάνσεις. Η διόρθωση του Welch δεν κοστίζει σχεδόν τίποτα σε ισχύ όταν οι διακυμάνσεις τυχαίνει να ταιριάζουν και σας προστατεύει όταν δεν ταιριάζουν.
Ζευγάρι T-Test στο R
Το ζευγαρωμένο t-test, που ονομάζεται επίσης t-test εξαρτημένου δείγματος, εφαρμόζεται όταν η ίδια ομάδα μετριέται δύο φορές. Τυπικές εφαρμογές είναι:
- Δοκιμή A / B: Συγκρίνετε δύο παραλλαγές
- Μελέτες ελέγχου περιπτώσεων: πριν και μετά από μια θεραπεία στα ίδια άτομα
Παράδειγμα Paired T-Test στο R
Μια εταιρεία ποτών ενδιαφέρεται να γνωρίζει την απόδοση ενός προγράμματος εκπτώσεων στις πωλήσεις. Η εταιρεία αποφάσισε να παρακολουθεί τις καθημερινές πωλήσεις ενός από τα καταστήματα της όπου προωθείται το πρόγραμμα. Στο τέλος του προγράμματος, η εταιρεία θέλει να μάθει εάν υπάρχει στατιστική διαφορά μεταξύ των μέσων πωλήσεων του καταστήματος πριν και μετά το πρόγραμμα.
- Η Επιχείρηση tracΜετρούσαμε τις πωλήσεις καθημερινά πριν ξεκινήσει το πρόγραμμα. Αυτό είναι το πρώτο μας διάνυσμα.
- Το πρόγραμμα προωθείται για μία εβδομάδα και οι πωλήσεις καταγράφονται καθημερινά. Αυτός είναι ο δεύτερος μας φορέας.
- Θα εκτελέσετε το t-test για να κρίνετε την αποτελεσματικότητα του προγράμματος. Αυτό ονομάζεται ζευγοποιημένο t-test επειδή οι τιμές και των δύο διανυσμάτων προέρχονται από την ίδια κατανομή (δηλαδή, το ίδιο κατάστημα).
Ο έλεγχος της υπόθεσης είναι:
- H0: Καμία διαφορά στη μέση τιμή
- H1: Τα δύο μέσα είναι διαφορετικά
Να θυμάστε ότι το κλασικό t-test υποθέτει μια άγνωστη αλλά ίση διακύμανση και στις δύο ομάδες. Τα πραγματικά δεδομένα σπάνια ικανοποιούν ακριβώς αυτήν την προϋπόθεση και η αγνόηση της διαφοράς μπορεί να παραμορφώσει το αποτέλεσμα.
Η λύση είναι το t-test του Welch, το οποίο χαλαρώνει την υπόθεση ίσης διακύμανσης. Το R το εφαρμόζει από προεπιλογή επειδή η μεταβλητή var.equal είναι FALSE εκτός αν ορίσετε διαφορετικά. Σε αυτό το σύνολο δεδομένων και τα δύο διανύσματα δημιουργήθηκαν με την ίδια τυπική απόκλιση, επομένως μπορείτε να ορίσετε με ασφάλεια την μεταβλητή var.equal = TRUE.
Δημιουργείτε δύο τυχαία διανύσματα από μια κατανομή Gauss με υψηλότερο μέσο όρο για τις πωλήσεις μετά το πρόγραμμα.
set.seed(123) # sales before the program sales_before <- rnorm(7, mean = 50000, sd = 50) # sales after the program.This has higher mean sales_after <- rnorm(7, mean = 50075, sd = 50) # draw the distribution t.test(sales_before, sales_after,var.equal = TRUE)
Η τιμή p είναι 0.04606, ακριβώς κάτω από το όριο του 0.05, επομένως απορρίπτετε την H0 και συμπεραίνετε ότι οι δύο μέσοι όροι διαφέρουν σημαντικά. Το πρόγραμμα εκπτώσεων φαίνεται να έχει αυξήσει τις πωλήσεις.
⚠️ Σημαντικό: η παραπάνω κλήση συγκρίνει τα δύο διανύσματα ως ανεξάρτητος δείγματα. Επειδή και οι δύο σειρές είναι μετρήσεις στο ίδιο εργαστήριο, η στατιστικά σωστή κλήση προσθέτει ζεύγη = TRUE:
t.test(sales_before, sales_after, paired = TRUE)
Η ζευγαρωμένη μορφή ελέγχει τον μέσο όρο των ημερήσιων διαφορών αντί για τη διαφορά δύο μέσων όρων. Αφαιρεί την απόκλιση σε επίπεδο καταστήματος που μοιράζονται και τα δύο διανύσματα και επομένως έχει μεγαλύτερη στατιστική ισχύ.
Πώς να ελέγξετε τις υποθέσεις του T-Test στην R
Μια τιμή p ενός t-test έχει νόημα μόνο όταν ισχύουν οι υποθέσεις της. Κάθε μία έχει έναν άμεσο έλεγχο.
1. Κανονικότητα. Οι δοκιμές ενός και δύο δειγμάτων υποθέτουν ότι οι τιμές είναι περίπου κανονικές. Η δοκιμή ζευγαριών υποθέτει ότι διαφορές είναι. Επιθεωρήστε ένα διάγραμμα QQ και επιβεβαιώστε με το τεστ Shapiro-Wilk:
qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)
# for a paired design, test the differences
shapiro.test(sales_after - sales_before)
Μια τιμή p Shapiro-Wilk πάνω από 0.05 σημαίνει ότι η κανονικότητα δεν μπορεί να απορριφθεί. Με περισσότερες από περίπου 30 παρατηρήσεις ανά ομάδα, το κεντρικό οριακό θεώρημα καθιστά το t-test εύρωστο έως μέτριο skew ούτως ή άλλως.
2. Ίση διακύμανση. Μόνο η ομαδοποιημένη δοκιμή δύο δειγμάτων χρειάζεται αυτό. Δοκιμάστε την με μια δοκιμή F:
var.test(line_a, line_b)
Μια τιμή p πάνω από 0.05 υποστηρίζει ίσες διακυμάνσεις, γεγονός που δικαιολογεί την μεταβλητή var.equal = TRUE.
3. Ανεξαρτησία. Αυτό προκύπτει από τον σχεδιασμό της μελέτης και δεν μπορεί να ελεγχθεί εκ των υστέρων. Εάν το ίδιο άτομο συμβάλλει και στα δύο διανύσματα, η ανεξάρτητη δοκιμή είναι απλώς το λάθος εργαλείο και χρειάζεστε paired = TRUE.
Όταν μια υπόθεση αποτυγχάνει. Για σαφώς μη κανονικά δεδομένα με μικρά δείγματα, χρησιμοποιήστε τις εναλλακτικές λύσεις που βασίζονται σε κατάταξη: η wilcox.test(x, y) αντικαθιστά το t-test δύο δειγμάτων και η wilcox.test(x, y, paired = TRUE) αντικαθιστά την έκδοση κατά ζεύγη. Καμία από τις δύο δεν απαιτεί κανονικότητα, αν και και οι δύο ανταλλάσσουν λίγη ισχύ όταν τα δεδομένα είναι στην πραγματικότητα κανονικά.
T-Test σε R: Βασικά Συμπεράσματα και Αναφορά Δοκιμών
- Το στατιστικό συμπέρασμα είναι η τέχνη της παραγωγής συμπερασμάτων σχετικά με τη διανομή των δεδομένων.
- Το T-Test ανήκει στην οικογένεια των στατιστικών συμπερασμάτων. Συνήθως χρησιμοποιείται για να διαπιστωθεί εάν υπάρχει στατιστική διαφορά μεταξύ των μέσων των δύο ομάδων.
- Το t-test ενός δείγματος, ή το τεστ του Student, συγκρίνει τον μέσο όρο ενός διανύσματος με έναν θεωρητικό μέσο όρο.
- Το ζευγαρωμένο t-test, ή t-test εξαρτημένου δείγματος, εφαρμόζεται όταν η ίδια ομάδα μετριέται δύο φορές.
Ο παρακάτω πίνακας συνοψίζει κάθε δοκιμή που καλύπτεται παραπάνω:
| Δοκιμή | Υπόθεση προς δοκιμή | p-value | Code | Προαιρετικό επιχείρημα |
|---|---|---|---|---|
| ένα δείγμα t-test | Ο μέσος όρος ενός διανύσματος είναι διαφορετικός από τον θεωρητικό μέσο όρο | 0.05 |
t.test(x, mu = mean)
|
|
| ζευγαρωμένο δείγμα t-test | Ο μέσος όρος Α διαφέρει από τον μέσο όρο Β για τα ίδια άτομα | 0.05 |
t.test(A, B, paired = TRUE) |
var.equal = TRUE
|
Εάν είστε διατεθειμένοι να υποθέσετε ίσες διακυμάνσεις σε μια ανεξάρτητη δοκιμή δύο δειγμάτων, ορίστε την τιμή var.equal = TRUE. Αφήστε την στην προεπιλεγμένη τιμή FALSE για να εκτελέσετε την ασφαλέστερη διόρθωση Welch.




