Ο διάμεσος με ολοκληρώματα

Συνοδευτικό του «Μέσος όρος και απόκλιση με ολοκληρώματα»

Στο κυρίως κείμενο, ο μέσος όρος και η απόκλιση περιγράφονταν με έναν τύπο: \(\int (\text{ποσότητα}) \cdot (\text{βάρος})\,dx\). Ο διάμεσος δεν ακολουθεί αυτό το μοτίβο. Δεν είναι μέσος όρος κάποιας ποσότητας, αλλά η τιμή που χωρίζει τα βάρη στη μέση. Γι’ αυτό τον εξετάζουμε χωριστά.

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

Διάμεσος των τιμών μιας συνάρτησης

Για \(n\) αριθμούς, ο διάμεσος είναι η τιμή κάτω από την οποία βρίσκονται οι μισοί αριθμοί και πάνω από την οποία βρίσκονται οι άλλοι μισοί. Για τις τιμές μιας συνάρτησης \(h(x)\) στο \([a, b]\), το «μισοί» γίνεται «για το μισό μήκος του διαστήματος»:

Διάμεσος είναι η τιμή \(M\) για την οποία \(h(x) \le M\) σε μήκος \(\frac{b-a}{2}\) του διαστήματος και \(h(x) \ge M\) στο υπόλοιπο.

Για αύξουσες συναρτήσεις: η τιμή στο μέσο

Αν η \(h\) είναι αύξουσα, όσο προχωράμε προς τα δεξιά οι τιμές μεγαλώνουν. Οι μικρότερες τιμές βρίσκονται λοιπόν στο αριστερό μισό του διαστήματος και οι μεγαλύτερες στο δεξί. Άρα ο διάμεσος είναι απλώς η τιμή στο μέσο του διαστήματος:

$$M = h\!\left(\frac{a + b}{2}\right)$$

Αυτή είναι η πρώτη ιδιαιτερότητα του διαμέσου. Στις μη μονότονες συναρτήσεις —π.χ. σε ένα ημίτονο που ανεβοκατεβαίνει— οι μικρές τιμές σκορπίζονται σε πολλά κομμάτια του διαστήματος, και ο υπολογισμός γίνεται πολύ πιο δύσκολος. Εδώ μένουμε σε αύξουσες.

Κώδικας
a <- 0
b <- 1
h_lin <- function(x) 2 * x
h_cvx <- function(x) x^2
h_ccv <- function(x) 2 * x - x^2

mean_values   <- function(h) integrate(h, a, b)$value / (b - a)
median_values <- function(h) h((a + b) / 2)   # ισχύει επειδή η h είναι αύξουσα

sapply(list(`2x` = h_lin, `x²` = h_cvx, `2x − x²` = h_ccv),
       function(h) c(`μέσος` = mean_values(h), `διάμεσος` = median_values(h)))
         2x        x²   2x − x²
μέσος     1 0.3333333 0.6666667
διάμεσος  1 0.2500000 0.7500000

Δύο γραφήματα για την h(x) = 2x στο [0, 1]. Αριστερά: ο μέσος όρος 1 ως ύψος ορθογωνίου ίσου εμβαδού. Δεξιά: το διάστημα χωρισμένο στη μέση στο x = 0.5, με τον διάμεσο M = h(0.5) = 1, που συμπίπτει με τον μέσο όρο.

Εικόνα 1: Μέσος όρος και διάμεσος των τιμών της \(h(x) = 2x\). Αριστερά: ο μέσος όρος ως ύψος ορθογωνίου ίσου εμβαδού. Δεξιά: ο διάμεσος ως η τιμή στο μέσο του διαστήματος. (function_values.R)

Στο δεξί πάνελ της Εικόνα 1 το διάστημα \([a, b]\) χωρίζεται στη μέση πάνω στον άξονα \(x\), με μια μπλε και μια πορτοκαλί μπάρα. Επειδή η \(h\) ανεβαίνει, το μπλε μισό δίνει τις τιμές κάτω από το \(M\) και το πορτοκαλί τις τιμές πάνω από το \(M\). Φαίνονται ως οι αντίστοιχες μπάρες στον άξονα \(y\). Για την ευθεία, μέσος όρος και διάμεσος συμπίπτουν (\(= 1\)), και οι δύο γραμμές πέφτουν η μία πάνω στην άλλη.

Κυρτή και κοίλη: ο μέσος όρος ξεφεύγει

Δύο γραφήματα για την h(x) = x² στο [0, 1]. Αριστερά: ο μέσος όρος 0.3333 ως ύψος ορθογωνίου ίσου εμβαδού. Δεξιά: ο διάμεσος M = h(0.5) = 0.25, πράσινη διακεκομμένη γραμμή, κάτω από τον μέσο όρο.

Εικόνα 2: Μέσος όρος και διάμεσος των τιμών της \(h(x) = x^2\) (κυρτή). (function_values.R)

Δύο γραφήματα για την h(x) = 2x − x² στο [0, 1]. Αριστερά: ο μέσος όρος 0.6667 ως ύψος ορθογωνίου ίσου εμβαδού. Δεξιά: ο διάμεσος M = h(0.5) = 0.75, πράσινη διακεκομμένη γραμμή, πάνω από τον μέσο όρο.

Εικόνα 3: Μέσος όρος και διάμεσος των τιμών της \(h(x) = 2x - x^2\) (κοίλη). (function_values.R)

ΣχήμαΠαράδειγμαΜέσοςΔιάμεσοςΣχέση
ευθεία\(2x\)11μέσος = διάμεσος
κυρτή (λυγίζει πάνω)\(x^2\)1/31/4μέσος > διάμεσος
κοίλη (λυγίζει κάτω)\(2x - x^2\)2/33/4μέσος < διάμεσος

Στην Εικόνα 2 η καμπύλη μένει χαμηλά για πολύ καιρό και ανεβαίνει απότομα στο τέλος. Λίγα \(x\) κοντά στο 1 δίνουν πολύ μεγάλες τιμές. Ο μέσος όρος τις λαμβάνει υπόψη με το πραγματικό τους μέγεθος, οπότε ανεβαίνει. Ο διάμεσος κοιτάζει μόνο πόσες τιμές είναι πάνω και κάτω, όχι πόσο μεγάλες είναι, οπότε δεν επηρεάζεται. Στην Εικόνα 3 συμβαίνει το ανάποδο: λίγες πολύ μικρές τιμές στην αρχή τραβάνε τον μέσο όρο προς τα κάτω.

Υπάρχει και ένας κομψός τρόπος να το δει κανείς. Ο διάμεσος των \(x\) στο \([a, b]\) είναι το μέσο \(\frac{a+b}{2}\), και ο μέσος όρος τους είναι επίσης το \(\frac{a+b}{2}\). Για αύξουσα \(h\):

  • ο διάμεσος των τιμών είναι πάντα \(h(\text{μέσο})\),
  • ο μέσος όρος των τιμών είναι \(h(\text{μέσο})\) μόνο για ευθεία. Για κυρτή είναι μεγαλύτερος και για κοίλη μικρότερος.

Ο διάμεσος «περνάει μέσα» από μια αύξουσα συνάρτηση, ενώ ο μέσος όρος όχι.

Διάμεσος μιας πυκνότητας

Στις πυκνότητες η τιμή είναι η θέση \(x\) και το ύψος \(f(x)\) είναι το βάρος (δες τη μετάβαση στο κυρίως κείμενο). Ο διάμεσος \(m\) είναι η θέση που χωρίζει το συνολικό βάρος στα δύο: 50% αριστερά, 50% δεξιά.

$$F(m) = \int_{-\infty}^{m} f(x)\,dx = 0.5$$

Η \(F\) λέγεται αθροιστική συνάρτηση κατανομής. Εδώ είναι η δεύτερη ιδιαιτερότητα του διαμέσου: ο άγνωστος είναι το άνω όριο του ολοκληρώματος, όχι το αποτέλεσμά του. Δεν αρκεί λοιπόν να υπολογίσουμε ένα ολοκλήρωμα. Πρέπει να ψάξουμε το \(m\) που κάνει την εξίσωση αληθή. Αυτό το κάνει η uniroot(): βρίσκει πού μηδενίζεται η \(F(m) - 0.5\).

Κώδικας
f <- function(x) (1 / sqrt(2 * pi)) * exp(-x^2 / 2)

F <- function(m) integrate(f, -Inf, m)$value
m <- uniroot(function(m) F(m) - 0.5, interval = c(-5, 5), tol = 1e-10)$root
m
[1] 2.579831e-10

Η καμπάνα της N(0, 1). Το εμβαδόν αριστερά του 0 είναι μπλε και δεξιά πορτοκαλί, 0.50 το καθένα. Μια κόκκινη και μια πράσινη διακεκομμένη γραμμή πέφτουν μαζί στο 0: ο μέσος όρος και ο διάμεσος συμπίπτουν.

Εικόνα 4: Τυπική κανονική κατανομή. Ο διάμεσος (πράσινη διακεκομμένη) χωρίζει το εμβαδόν σε δύο ίσα μισά: μπλε αριστερά, πορτοκαλί δεξιά. Ο μέσος όρος (κόκκινη) πέφτει στο ίδιο σημείο. (normal_mean_median.R)

Στην Εικόνα 4 η μπλε περιοχή είναι το ολοκλήρωμα \(F(m)\): ακριβώς το μισό βάρος. Επειδή η κανονική είναι συμμετρική, μέσος όρος και διάμεσος συμπίπτουν στο 0, όπως στην ευθεία της Εικόνα 1.

Μη συμμετρική: η κανονική σε διάστημα

Αν κρατήσουμε την κανονική καμπύλη μόνο στο \([-0.5, 2]\) (λεπτομέρειες στο συνοδευτικό κείμενο για το διάστημα), η κατανομή παύει να είναι συμμετρική. Κόβεται νωρίς αριστερά αλλά απλώνεται ως το 2 δεξιά.

Κώδικας
lo <- -0.5
hi <- 2
Z <- integrate(f, lo, hi)$value
g <- function(x) f(x) / Z                       # κανονικοποιημένη πυκνότητα

mu_ab <- integrate(function(x) x * g(x), lo, hi)$value
m_ab  <- uniroot(function(m) integrate(g, lo, m)$value - 0.5,
                 interval = c(lo, hi), tol = 1e-10)$root
c(`μέσος` = mu_ab, `διάμεσος` = m_ab)
    μέσος  διάμεσος 
0.4457438 0.3662044 

Η κανονικοποιημένη κανονική g(x) στο [−0.5, 2], κομμένη απότομα στα δύο άκρα. Το εμβαδόν αριστερά του διαμέσου 0.366 είναι μπλε και δεξιά πορτοκαλί, 0.50 το καθένα. Ο μέσος όρος 0.446, κόκκινη γραμμή, είναι λίγο δεξιότερα από τον διάμεσο, πράσινη διακεκομμένη.

Εικόνα 5: Η κανονική στο \([-0.5, 2]\). Μπλε: το μισό βάρος \([a, m]\). Πορτοκαλί: το άλλο μισό \([m, b]\). Ο μέσος όρος (κόκκινη) είναι δεξιότερα από τον διάμεσο (πράσινη). (normal_mean_median_interval.R)

Στην Εικόνα 5 τα δύο χρωματιστά εμβαδά είναι ίσα, γιατί αυτός είναι ο ορισμός του διαμέσου. Ο μέσος όρος όμως (\(\approx 0.446\)) είναι δεξιότερα από τον διάμεσο (\(\approx 0.366\)). Ο λόγος είναι ο ίδιος με την κυρτή συνάρτηση: οι λίγες μακρινές τιμές στα δεξιά μετράνε στον μέσο όρο με την απόστασή τους, ενώ στον διάμεσο μετράνε απλώς ως «μία ακόμα τιμή δεξιά».

Σύνοψη

Απλή συνάρτηση (αύξουσα)Πυκνότητα
ορισμός\(h(x) \le M\) στο μισό μήκος του \([a, b]\)\(\int_{-\infty}^{m} f(x)\,dx = 0.5\)
υπολογισμός\(M = h\!\left(\frac{a+b}{2}\right)\)αναζήτηση με uniroot()
ίσος με τον μέσο όρο ότανη \(h\) είναι ευθείαη \(f\) είναι συμμετρική

Γιατί ο διάμεσος είναι σε χωριστό κείμενο:

  1. Δεν είναι μέσος όρος κάποιας ποσότητας, οπότε δεν χωράει στο \(\int (\text{ποσότητα}) \cdot (\text{βάρος})\,dx\).
  2. Ο άγνωστος είναι όριο ολοκλήρωσης, οπότε χρειάζεται αναζήτηση και όχι απλός υπολογισμός.
  3. Στις απλές συναρτήσεις απαιτεί μονοτονία, αλλιώς γίνεται πολύπλοκος.

Η δύναμή του είναι ότι δεν επηρεάζεται από το πόσο μακριά είναι οι ακραίες τιμές. Γι’ αυτό, όταν ο μέσος όρος και ο διάμεσος διαφέρουν, η διαφορά τους δείχνει προς τα πού «τραβάει» η κατανομή.

Ασκήσεις

1. Υπολόγισε μέσο όρο και διάμεσο των τιμών της \(h(x) = x^3\) στο \([0, 1]\). Ποιος είναι μεγαλύτερος, και ταιριάζει με το ότι η \(x^3\) είναι κυρτή;

Λύση

Μέσος \(= \int_0^1 x^3\,dx = 1/4\), διάμεσος \(= h(0.5) = 1/8\). Ο μέσος είναι μεγαλύτερος, όπως σε κάθε κυρτή συνάρτηση. Η διαφορά είναι μάλιστα μεγαλύτερη από εκείνη της \(x^2\) (\(1/3\) έναντι \(1/4\)), γιατί η \(x^3\) λυγίζει ακόμη περισσότερο.

2. Η \(f(x) = 2x\) στο \([0, 1]\) είναι πυκνότητα με μέσο όρο \(2/3\) (δες την άσκηση 4 του κυρίως κειμένου). Βρες τον διάμεσό της με το χέρι. Είναι πάνω ή κάτω από τον μέσο όρο;

Λύση

\(F(m) = \int_0^m 2x\,dx = m^2 = 0.5\), άρα \(m = 1/\sqrt{2} \approx 0.707\). Εδώ η εξίσωση λύνεται με το χέρι, χωρίς uniroot. Ο διάμεσος είναι πάνω από τον μέσο όρο (\(0.667\)). Υπάρχει λίγο βάρος κοντά στο 0 και πολύ βάρος κοντά στο 1, οπότε η «ουρά» είναι αριστερά και τραβάει τον μέσο όρο προς τα εκεί.

Κώδικας
uniroot(function(m) integrate(function(x) 2 * x, 0, m)$value - 0.5, c(0, 1))$root
[1] 0.7071067

Συντελεστές

Συγγραφή: Kostas Maistrelis (ORCID 0000-0002-0851-2866). Το κείμενο, οι εικόνες και ο κώδικας R αναπτύχθηκαν σε συνεργασία με το Claude της Anthropic.

Γλωσσική επιμέλεια: Codex της OpenAI.

Άδεια χρήσης

Το κείμενο και οι εικόνες διατίθενται με την άδεια Creative Commons Αναφορά Δημιουργού 4.0 (CC BY 4.0): μπορείς να τα χρησιμοποιήσεις, να τα αλλάξεις και να τα μοιραστείς, αρκεί να αναφέρεις την πηγή. Ο κώδικας (τα scripts R, το Makefile και τα κομμάτια κώδικα του κειμένου) διατίθεται με την άδεια MIT.

Ο κώδικας που παράγει αυτό το μάθημα βρίσκεται στο github.com/maisk/continuous-descriptive-stats-leson.