De cumulatieve verdelingsfunctie schetsen

In [35]:
import numpy as np
import matplotlib.pyplot as plt

Het verband zien tussen een continue dichtheidsfunctie $\varphi_X(x)$ en de overeenkomstige cumulatieve verdelingsfunctie $\Phi_X(x)$ is niet alleen nuttig qua inzicht. Op het examen zal je soms ook een schets van de ene grafiek moeten maken, gegeven de andere. Dit kan dus in twee richtingen werken, maar in deze blogpost focussen we ons op het schetsen van $\Phi_X(x)$ als $\varphi_X(x)$ gegeven is.

Ter herinnering: de cumulatieve verdelingsfunctie geeft de kans weer dat een toevalsvariabele $X$ een waarde aanneemt die kleiner is dan of gelijk is aan een bepaalde waarde $x$. Met andere woorden: $\Phi_X(x) = P(X \leq x)$.

Voorbeeld 1: rechthoekige dichtheidsfunctie

Laten we beginnen met een rechthoekige dichtheidsfunctie die de volgende vorm heeft:

$$ \varphi_X(x) = \begin{cases} 0.25 & \mid 1 \leq x \leq 5 \\ 0 & \mid \text{elders} \end{cases} $$

Anders gezegd: $X \sim \mathcal U(1, 5)$.

Deze dichtheidsfunctie is constant over het interval $[1, 5]$ met een hoogte van $0.25$. Dit betekent dat de totale oppervlakte onder de rechthoek (niet onverwacht) gelijk is aan $0.25 \cdot (5 - 1) = 1$.

De cumulatieve verdelingsfunctie $\Phi_X(x)$ is zoals steeds de oppervlakte onder de dichtheidsfunctie $\varphi_X(x)$ vanaf $-\infty$ tot $x$. In symbolen: $\int_{-\infty}^{x} \varphi_X(t)dt$. (We gebruiken hier de integratievariabele $t$ aangezien $x$ al gebruikt wordt om de bovengrens aan te geven.) Zo komen we tot volgende vorm voor $\Phi_X(x)$:

  • Voor $x < 1$ is er geen kans, dus $\Phi_X(x) = 0$.
  • Voor $1 \leq x \leq 5$ is de cumulatieve verdelingsfunctie gelijk aan de oppervlakte onder de constante $0.25$ van 1 tot $x$. De oppervlakte is dus gelijk aan $0.25 \cdot (x - 1)$.
  • Voor $x > 5$ is de oppervlakte onder de curve gelijk aan 1, omdat de volledige oppervlakte onder de dichtheidsfunctie dan is bereikt.

De cumulatieve verdelingsfunctie $\Phi_X(x)$ is dus:

$$ \Phi_X(x) = \begin{cases} 0, & x < 1 \\ 0.25(x - 1), & 1 \leq x \leq 5 \\ 1, & x > 5 \end{cases} $$

In [ ]:
def pdf_rect(x):
    return 0.25 if 1 <= x <= 5 else 0

def cdf_rect(x):
    if x < 1:
        return 0
    elif 1 <= x <= 5:
        return 0.25 * (x - 1)
    else:
        return 1

x_vals = np.linspace(0, 6, 500)
pdf_vals = [pdf_rect(x) for x in x_vals]
cdf_vals = [cdf_rect(x) for x in x_vals]

plt.figure(figsize=(12, 10))

plt.subplot(2, 2, 1)
plt.title(r'Dichtheidsfunctie $\varphi_X(x)$')
plt.plot(x_vals, pdf_vals)
plt.fill_between(x_vals, pdf_vals, where=[1 <= x <= 5 for x in x_vals], alpha=0.1)
plt.xlabel('$x$')
plt.xlim(0, 6)
plt.ylim(0, 1.15)
plt.yticks(np.arange(0, 1.05, 0.25))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 2)
plt.title(r'Cumulatieve verdelingsfunctie $\Phi_X(x)$')
plt.plot(x_vals, cdf_vals)
plt.xlabel('$x$')
plt.xlim(0, 6)
plt.ylim(0, 1.15)
plt.yticks(np.arange(0, 1.05, 0.25))
plt.grid(linestyle='--', alpha=0.7)

bar_width = 0.5
bar_gap = 0.02
x_riemann = [1 + i * bar_width for i in range(8)]
pdf_riemann = [pdf_rect(x) for x in x_riemann]
cdf_riemann = np.cumsum([p * bar_width for p in pdf_riemann])
colors = [plt.cm.Blues(1 - i / len(x_riemann)) for i in range(len(x_riemann))]

plt.subplot(2, 2, 3)
plt.title(r'Gediscretiseerde dichtheidsfunctie $\pi_X(x)$')
# plt.plot(x_vals, pdf_vals)
# plt.fill_between(x_vals, pdf_vals, where=[1 <= x <= 5 for x in x_vals], alpha=0.1)
for i, x in enumerate(x_riemann):
    plt.bar(x, pdf_riemann[i], width=bar_width-bar_gap, align='edge', color=colors[i])
plt.xlabel('$x$')
plt.xlim(0, 6)
plt.ylim(0, 1.15)
plt.yticks(np.arange(0, 1.05, 0.25))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 4)
plt.title(r'Gediscretiseerde cumulatieve verdelingsfunctie $\Phi_X(x)$')
# plt.plot(x_vals, cdf_vals)
for i in range(len(x_riemann)):
    for j in range(i + 1):
        plt.bar(
            x_riemann[i],
            pdf_riemann[j] * bar_width,
            width=bar_width - bar_gap,
            align='edge',
            color=colors[j],
            bottom=np.sum([p * bar_width for p in pdf_riemann[:j]]) if j > 0 else 0,
        )
for x_repeat in [5, 5.5]:
    for i in range(len(x_riemann)):
        plt.bar(
            x_repeat,
            pdf_riemann[i] * bar_width,
            width=bar_width - bar_gap,
            align='edge',
            color=colors[i],
            bottom=np.sum([p * bar_width for p in pdf_riemann[:i]]) if i > 0 else 0,
        )
plt.xlabel('$x$')
plt.xlim(0, 6)
plt.ylim(0, 1.15)
plt.yticks(np.arange(0, 1.05, 0.25))
plt.grid(linestyle='--', alpha=0.7)
No description has been provided for this image

Conclusie: een horizontaal lijnstuk in $\varphi_X(x)$ wordt een stijgende rechte in $\Phi_X(x)$. De rekenregel die hierachter zit is $\int h dx = hx + C$. Hoe hoger de horizontale lijn $y = h$ ligt, hoe sneller de rechte $hx$ dus zal stijgen. Merk ook op dat de rechte nooit kan dalen. Daarvoor zouden we een $h < 0$ nodig hebben, maar $\varphi_X(x) \geq 0$ dus dat kan in deze context niet.

Wie liever niet opnieuw nadenkt over de rekenregels rond integralen kan op de twee onderste grafieken ook intuitief zien waarom een horizontaal lijnstuk plots een stijgende rechte wordt. Als we de dichtheidsfunctie benaderen met een discrete kansmassafunctie $\pi_X(x) = 0.25$ voor $x \in \{1, 1.5, \ldots, 4.5\}$ en we berekenen daar de cumulatieve variant van, zien we hetzelfde patroon ontstaan.

Nu we dit weten, moeten we in de toekomst voor rechthoeken gewoon de totale oppervlakte bij het begin en bij het einde berekenen. In ons geval is de oppervlakte $P(X \leq 1) = 0.0$ en $P(X \leq 5) = 1.0$. We kunnen dus om $\Phi_X(x)$ te schetsen de twee coordinaten $(1, 0.0)$ en $(5, 1.0)$ verbinden met een rechte en we zijn klaar.

Helaas gaat het niet altijd zo eenvoudig zijn. Driehoekige functies bijvoorbeeld zullen geen rechte meer opleveren.

Voorbeeld 2: stijgende driehoekige dichtheidsfunctie

In dit voorbeeld hebben we een dichtheidsfunctie die de vorm heeft van een driehoek. Stel dat de dichtheidsfunctie wordt gegeven door:

$$ \varphi_X(x) = \begin{cases} 2x & \mid 0 \leq x \leq 1 \\ 0 & \mid \text{elders} \end{cases} $$

De cumulatieve verdelingsfunctie $\Phi_X(x)$ is opnieuw de oppervlakte onder de curve van de dichtheidsfunctie vanaf $-\infty$ tot $x$. In dit geval stijgt de oppervlakte niet lineair maar kwadratisch aangezien $\int (ax+b) dx = a \frac{x^2}{2} + bx + C$. Specifiek ik ons geval is $a=2$ en $b=0$, dus krijgen we $x^2 + C$. De cumulatieve verdelingsfunctie wordt dus (voor $C=0$):

$$ \Phi_X(x) = \begin{cases} 0 & \mid x < 0 \\ x^2 & \mid 0 \leq x \leq 1 \\ 1 & \mid x > 1 \end{cases} $$

De grafieken van $\varphi_X(x)$ en $\Phi_X(x)$ vind je hieronder. Het gediscretiseerde voorbeeld eronder toont opnieuw visueel aan hoe we van een stijgende rechte naar een parabool gaan zonder rekenregels voor integralen.

In [ ]:
def pdf_triangle(x):
    return 2 * x if 0 <= x <= 1 else 0

def cdf_triangle(x):
    if x < 0:
        return 0
    elif 0 <= x <= 1:
        return x**2
    else:
        return 1

x_vals = np.linspace(-0.1, 1.1, 500)
pdf_vals = [pdf_triangle(x) for x in x_vals]
cdf_vals = [cdf_triangle(x) for x in x_vals]

plt.figure(figsize=(12, 10))

plt.subplot(2, 2, 1)
plt.title(r'Dichtheidsfunctie $\varphi_X(x)$')
plt.plot(x_vals, pdf_vals)
plt.fill_between(x_vals, pdf_vals, where=[0 <= x <= 1 for x in x_vals], alpha=0.1)
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 2)
plt.title(r'Cumulatieve verdelingsfunctie $\Phi_X(x)$')
plt.plot(x_vals, cdf_vals)
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

bar_width_triangle = 0.1
bar_gap = 0.005
x_riemann_triangle = [i * bar_width_triangle for i in range(10)]
pdf_riemann_triangle = [pdf_triangle(x+0.05) for x in x_riemann_triangle]
cdf_riemann_triangle = np.cumsum([p * bar_width_triangle for p in pdf_riemann_triangle])
colors_triangle = [plt.cm.Blues(1 - i / len(x_riemann_triangle)) for i in range(len(x_riemann_triangle))]

plt.subplot(2, 2, 3)
plt.title(r'Gediscretiseerde dichtheidsfunctie $\pi_X(x)$')
# plt.plot(x_vals, pdf_vals)
# plt.fill_between(x_vals, pdf_vals, where=[0 <= x <= 1 for x in x_vals], alpha=0.1)
for i, x in enumerate(x_riemann_triangle):
    plt.bar(x, pdf_riemann_triangle[i], width=bar_width_triangle-bar_gap, align='edge', color=colors_triangle[i])
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 4)
plt.title(r'Gediscretiseerde cumulatieve verdelingsfunctie $\Phi_X(x)$')
# plt.plot(x_vals, cdf_vals)
for i in range(len(x_riemann_triangle)):
    for j in range(i + 1):
        plt.bar(
            x_riemann_triangle[i],
            pdf_riemann_triangle[j] * bar_width_triangle,
            width=bar_width_triangle - bar_gap,
            align='edge',
            color=colors_triangle[j],
            bottom=np.sum([p * bar_width_triangle for p in pdf_riemann_triangle[:j]]) if j > 0 else 0,
        )
for x_repeat in [1]:
    for i in range(len(x_riemann_triangle)):
        plt.bar(
            x_repeat,
            pdf_riemann_triangle[i] * bar_width_triangle,
            width=bar_width_triangle - bar_gap,
            align='edge',
            color=colors_triangle[i],
            bottom=np.sum([p * bar_width_triangle for p in pdf_riemann_triangle[:i]]) if i > 0 else 0,
        )
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)
No description has been provided for this image

Net zoals voorheen kunnen we dus starten met het aanduiden van de twee coordinaten: in dit geval $(0, 0.0)$ en $(1, 1.0)$. Maar in plaats van de twee punten te verbinden met een rechte, moeten we ze nu verbinden met een dalparabool ($ax^2+bx+c$ met $a>0$).

Als de driehoek omgekeerd had gestaan (dus gevormd door een dalende rechte), dan moesten we de twee punten verbinden door een bergparabool ($ax^2+bx+c$ met $a<0$).

Voorbeeld 3: dalende driehoekige dichtheidsfunctie

In dit voorbeeld hebben we een dichtheidsfunctie die de vorm heeft van een driehoek die afneemt van $2$ bij $x = 0$ naar $0$ bij $x = 1$. De dichtheidsfunctie wordt als volgt gegeven:

$$ \varphi_X(x) = \begin{cases} 2(1 - x) & \mid 0 \leq x \leq 1 \\ 0 & \mid \text{elders} \end{cases} $$

Dit geeft ons de cumulatieve verdelingsfunctie:

$$ \Phi_X(x) = \begin{cases} 0 & \mid x < 0 \\ 2x - x^2 & \mid 0 \leq x \leq 1 \\ 1 & \mid x > 1 \end{cases} $$

Deze cumulatieve verdelingsfunctie heeft inderdaad de vorm van een bergparabool aangezien $a = -1 < 0$. Verder is de werkwijze helemaal identiek aan die van voorbeeld 2.

In [15]:
def pdf_reverse_triangle(x):
    return 2 * (1 - x) if 0 <= x <= 1 else 0

def cdf_reverse_triangle(x):
    if x < 0:
        return 0
    elif 0 <= x <= 1:
        return 2 * x - x**2
    else:
        return 1

x_vals = np.linspace(-0.1, 1.1, 500)
pdf_vals = [pdf_reverse_triangle(x) for x in x_vals]
cdf_vals = [cdf_reverse_triangle(x) for x in x_vals]

plt.figure(figsize=(12, 10))

plt.subplot(2, 2, 1)
plt.title(r'Dichtheidsfunctie $\varphi_X(x)$')
plt.plot(x_vals, pdf_vals)
plt.fill_between(x_vals, pdf_vals, where=[0 <= x <= 1 for x in x_vals], alpha=0.1)
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 2)
plt.title(r'Cumulatieve verdelingsfunctie $\Phi_X(x)$')
plt.plot(x_vals, cdf_vals)
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

bar_width_triangle = 0.1
bar_gap = 0.005
x_riemann_triangle = [i * bar_width_triangle for i in range(10)]
pdf_riemann_triangle = [pdf_reverse_triangle(x + 0.05) for x in x_riemann_triangle]
cdf_riemann_triangle = np.cumsum([p * bar_width_triangle for p in pdf_riemann_triangle])
colors_triangle = [plt.cm.Blues(1 - i / len(x_riemann_triangle)) for i in range(len(x_riemann_triangle))]

plt.subplot(2, 2, 3)
plt.title(r'Gediscretiseerde dichtheidsfunctie $\pi_X(x)$')
for i, x in enumerate(x_riemann_triangle):
    plt.bar(x, pdf_riemann_triangle[i], width=bar_width_triangle-bar_gap, align='edge', color=colors_triangle[i])
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(2, 2, 4)
plt.title(r'Gediscretiseerde cumulatieve verdelingsfunctie $\Phi_X(x)$')
for i in range(len(x_riemann_triangle)):
    for j in range(i + 1):
        plt.bar(
            x_riemann_triangle[i],
            pdf_riemann_triangle[j] * bar_width_triangle,
            width=bar_width_triangle - bar_gap,
            align='edge',
            color=colors_triangle[j],
            bottom=np.sum([p * bar_width_triangle for p in pdf_riemann_triangle[:j]]) if j > 0 else 0,
        )
for x_repeat in [1]:
    for i in range(len(x_riemann_triangle)):
        plt.bar(
            x_repeat,
            pdf_riemann_triangle[i] * bar_width_triangle,
            width=bar_width_triangle - bar_gap,
            align='edge',
            color=colors_triangle[i],
            bottom=np.sum([p * bar_width_triangle for p in pdf_riemann_triangle[:i]]) if i > 0 else 0,
        )
plt.xlabel('$x$')
plt.xlim(-0.1, 1.1)
plt.ylim(0, 2.15)
plt.yticks(np.arange(0, 2.15, 0.2))
plt.grid(linestyle='--', alpha=0.7)
No description has been provided for this image

Voorbeeld 4: complexe dichtheidsfunctie

We hebben een samengestelde dichtheidsfunctie die bestaat uit een trapezium en een rechthoek:

  • Voor $1 \leq x \leq 2$: Een stijgende lijn van $0$ naar $0.20$
    • Dit segment moeten we vertalen in een dalparabool van $(1, 0)$ naar $(2, 0.10)$
  • Voor $2 \leq x \leq 5$: Een horizontale lijn t.h.v. $0.20$
    • Dit segment moeten we vertalen in een stijgende rechte van $(2, 0.10)$ naar $(5, 0.70)$
  • Voor $5 \leq x \leq 6$: Een dalende lijn van $0.20$ naar $0$
    • Dit segment moeten we vertalen in een bergparabool van $(5, 0.70)$ naar $(6, 0.80)$
  • Voor $7 \leq x \leq 8$: Een horizontale lijn t.h.v. $0.20$
    • Dit segment moeten we vertalen in een stijgende rechte van $(7, 0.80)$ naar $(8, 1.00)$
  • De tussenliggende waarden zijn nul
    • Deze segmenten moeten we vertalen in horizontale lijnen

We kunnen dit als volgt beschrijven:

$$ \varphi_X(x) = \begin{cases} 0.20(x - 1) & \mid 1 \leq x \leq 2 \\ 0.20 & \mid 2 < x \leq 5 \\ -0.20(x - 6) & \mid 5 < x \leq 6 \\ 0.20 & \mid 7 \leq x \leq 8 \\ 0 & \text{elders} \end{cases} $$

Voor de liefhebbers (dit moet je niet kunnen uitschrijven op het examen):

$$ \Phi_X(x) = \begin{cases} 0 & \mid x < 1 \\ 0.10(x - 1)^2 & \mid 1 \leq x \leq 2 \\ 0.10 + 0.20(x - 2) & \mid 2 < x \leq 5 \\ 0.70 + 0.10(1 - (6 - x)^2) & \mid 5 < x \leq 6 \\ 0.80 & \mid 6 < x \leq 7 \\ 0.80 + 0.20(x - 7) & \mid 7 < x \leq 8 \\ 1 & \mid x > 8 \end{cases} $$

De constante $C$ die steeds uit de berekening van een integraal rolt, kiezen we hier zodanig dat elk segment van de grafiek mooi aansluit op het vorige.

In [109]:
def pdf_composite(x):
    if 1 <= x <= 2:
        return (x - 1) / 5
    elif 2 < x <= 5:
        return 0.20
    elif 5 < x <= 6:
        return -(x - 6) / 5
    elif 7 <= x <= 8:
        return 0.20
    else:
        return 0

def cdf_composite(x):
    if x < 1:
        return 0
    elif 1 <= x <= 2:
        return (x - 1)**2 / 10
    elif 2 < x <= 5:
        return 0.1 + 0.20 * (x - 2)
    elif 5 < x <= 6:
        return 0.7 + (1 - (6 - x)**2) / 10
    elif 6 < x <= 7:
        return 0.8
    elif 7 < x <= 8:
        return 0.8 + 0.2 * (x - 7)
    else:
        return 1

pdf_segments = {
    "0 <= x < 1": {"x": np.linspace(0, 1, 100), "color": "gray"},
    "1 <= x < 2": {"x": np.linspace(1, 2, 100), "color": "blue"},
    "2 <= x < 5": {"x": np.linspace(2, 5, 100), "color": "green"},
    "5 <= x < 6": {"x": np.linspace(5, 6, 100), "color": "red"},
    "6 <= x < 7": {"x": np.linspace(6, 6.99, 100), "color": "orange"},
    "7 <= x < 8": {"x": np.linspace(7, 8, 100), "color": "purple"},
    "8 <= x < 9": {"x": np.linspace(8.01, 9, 100), "color": "gray"},
}

cdf_segments = {
    "0 <= x < 1": {"x": np.linspace(0, 1, 100), "color": "gray"},
    "1 <= x < 2": {"x": np.linspace(1, 2, 100), "color": "blue"},
    "2 <= x < 5": {"x": np.linspace(2, 5, 100), "color": "green"},
    "5 <= x < 6": {"x": np.linspace(5, 6, 100), "color": "red"},
    "6 <= x < 7": {"x": np.linspace(6, 7, 100), "color": "orange"},
    "7 <= x < 8": {"x": np.linspace(7, 8, 100), "color": "purple"},
    "8 <= x < 9": {"x": np.linspace(8, 9, 100), "color": "gray"},
}

colors = [plt.cm.Blues(i / len(pdf_segments)) for i in range(len(pdf_segments))]

plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.title(r'Dichtheidsfunctie $\varphi_X(x)$')

for label, segment in pdf_segments.items():
    x_segment = segment["x"]
    pdf_segment_vals = [pdf_composite(x) for x in x_segment]
    plt.plot(x_segment, pdf_segment_vals, color=segment["color"])
    plt.fill_between(x_segment, pdf_segment_vals, alpha=0.1, color=segment["color"])

plt.xlabel('$x$')
plt.xlim(0, 9)
plt.ylim(0, 1.05)
plt.yticks(np.arange(0, 1.05, 0.1))
plt.grid(linestyle='--', alpha=0.7)

plt.subplot(1, 2, 2)
plt.title(r'Cumulatieve verdelingsfunctie $\Phi_X(x)$')

for label, segment in cdf_segments.items():
    x_segment = segment["x"]
    cdf_segment_vals = [cdf_composite(x) for x in x_segment]
    plt.plot(x_segment, cdf_segment_vals, color=segment["color"])

plt.xlabel('$x$')
plt.xlim(0, 9)
plt.ylim(0, 1.05)
plt.yticks(np.arange(0, 1.05, 0.1))
plt.grid(linestyle='--', alpha=0.7)
No description has been provided for this image

Conclusie

Om een schets te maken van $\Phi_X(x)$ kan je $\varphi_X(x)$ segment per segment vertalen. Eerst bepaal je de begin en eindcoordinaat o.b.v. de oppervlakte onder $\varphi_X(x)$ tot respectievelijk het begin en het einde van het segment. Vervolgens bepaal je de vorm van de lijn tussen de twee coordinaten die je nodig hebt:

$\varphi_X(x)$ segment $\Phi_X(x)$ segment
$0$ horizontale lijn
horizontale lijn stijgende rechte
stijgende rechte dalparabool
dalende rechte bergparabool

Dubbelcheck op het einde steeds dat je op oppervlakte $1.0$ uitkomt.

Statistische maten voor lineaire transformaties

Lineaire transformaties: wie zijn ze? Wat doen ze? Wat drijft hen?

Stel je hebt een variabele . Dan kan je een nieuwe variabele berekenen aan de hand van een lineaire transformatiefunctie door die functie op elke waarde van toe te passen. Notatie: .

Voorbeeld:

  • gegeven
    • : zie tabel
  • gevraagd
  • oplossing

De normale manier ()

Op basis van deze gegevens kunnen we de tabel uitbreiden met . Eens je alle waarden van berekend hebt, kan je er verdere analyses op doen. Zo kan je verschillende statistische maten van (gemiddelde, variantie, ...) berekenen. Je hebt daarvoor geen speciale formules van lineaire transformaties nodig. Je kan gewoon dezelfde formules gebruiken als diegene die je zou gebruiken om te analyseren.

  • oplossing (vervolg)

De shortcut ()

Wat hierboven opvalt is dat net die -waarde is die bij de -waarde hoort, en dat . Met andere woorden: . Dat is geen toeval:

Meer algemeen geldt dus: . Dit inzicht kunnen we gebruiken als shortcut. In plaats van eerst de tabel uit te breiden met alle waardes van - wat voor grotere steekproeven toch wat werk vraagt - kunnen we direct uit berekenen. De formules voor lineaire transformaties openen dus geen nieuwe deuren, ze stellen ons enkel in staat om bepaalde berekeningen efficienter te doen.

We nemen opnieuw hetzelfde voorbeeld:

  • gegeven
    • : zie tabel
  • gevraagd
  • oplossing

We komen dus inderdaad dezelfde uitkomst uit, maar op een veel kortere manier.

Overzicht formules

We hebben de shortcut voor lineaire transformaties nu aangetoond voor gemiddeldes, maar er zijn ook shortcuts voor een hele hoop andere statistische maten. Probeer elk van onderstaande maten eens te berekenen op het voorbeeld hierboven met en zonder shortcut. Je zal snel merken dat je op de tweede manier veel tijd bespaart. Door dit op beide manieren uit te testen ga je ook beter begrijpen waarom onderstaande formules wel of niet werken.

  • centrale tendensmaten
    • gemiddelde
    • mediaan
    • modus
  • spreidingsmaten
    • komt enkel voor als absolute waarde of kwadraat zodat ook bij de spreiding positief blijft
    • geeft geen effect want verschuivingen beinvloeden de spreiding niet
    • variantie
    • standaarddeviatie
    • bereik
    • interkwartielbereik
  • associatiematen
    • heeft opnieuw geen effect
    • de transformatie mag ook in de tweede variabele zitten aangezien en
    • covariantie
      • mag negatief zijn, dus heeft geen absolute waarde of kwadraat nodig
      • merk op dat
    • correlatie
      • moet in interval blijven liggen, dus we kunnen niet zomaar met vermenigvuldigen
        • enkel het teken van heeft nog een effect
      • als
      • als
      • als
      • als

Voor de tegenhangers uit inductieve statistiek () gelden dezelfde regels.

Conclusie

Voor lineaire transformaties is het meestal een goed idee om de shortcuts te gebruiken om statistische maten te berekenen. Onthoud wel dat deze shortcuts enkel gelden voor lineaire transformaties. Niet-lineaire transformaties zoals hebben geen kortere formules. Daarbij moet je dus de normale manier blijven gebruiken.

Bivariate kansmassafunctie berekenen uit bivariate cumulatieve kansmassafunctie

De bivariate kansmassafunctie geeft de kans en weer. De bivariate cumulatieve kansmassafunctie daarentegen geeft de kans en weer. Het is redelijk eenvoudig om uit te berekenen, maar hoe ga je te werk als je de omgekeerde vraag krijgt?

Voorbeeld 1

Voorbeeld 2

Laten we een concreet voorbeeld bekijken met een 3x4 tabel voor de cumulatieve kansmassafunctie . Stel dat we de volgende tabel hebben:

0.1 0.2 0.3 0.4
0.2 0.4 0.5 0.7
0.3 0.6 0.8 1.0

Dit betekent dat bijvoorbeeld .

We willen nu de bijbehorende kansmassafunctie berekenen. Begin met de eerste (laagste) rij en de eerste (laagste) kolom aangezien die vrij eenvoudig zijn:

0.1 0.1 0.1 0.1
0.1 ? ? ?
0.1 ? ? ?

Voor alle duidelijkheid: als in de eerste rij stond, zouden we nog steeds met de rij beginnen aangezien cumulatieve berekeningen altijd van kleine naar grote waarden gebeuren.

0.1 ? ? ?
0.1 ? ? ?
0.1 0.1 0.1 0.1

Met deze nieuwe gegevens kunnen we gemakkelijk berekenen. , dus moet om samen uit te komen.

0.1 0.1 0.1 0.1
0.1 0.1 ? ?
0.1 ? ? ?

In plaats van enkel naar te kijken kunnen we ook info uit en combineren om onszelf wat rekenwerk te besparen:

0.1 0.1 0.1 0.1
0.1 0.1 0 ?
0.1 ? ? ?

De rest van de tabel kunnen we op een gelijkaardige manier aanvullen:

0.1 0.1 0.1 0.1
0.1 0.1 0 0.1
0.1 0.1 0.1 0

Dubbelcheck op het einde dat .

Als je niet heel de tabel moet berekenen, maar enkel één specifieke waarde nodig hebt, kan volgende formule nuttig zijn:

Gotcha's

Hieronder beschrijven we enkele instinkers die elk jaar opnieuw studenten doen struikelen op het (proef)examen.

"Geval 2" bij kwantielen

  • bij de meeste oefeningen rond kwantielen zit je in "geval 1": de gezocht waarde komt niet voor in de kolom
  • uitzonderlijk komt de waarde wel voor in de kolom ("geval 2")
    • neem dan het gemiddelde van huidige en eerstvolgende x-waarde
1 0.2
2 1.0

X-waarden met frequentie nul

  • gegeven
1 2
2 2
3 5
4 9
5 9
6 9
7 10
  • bereken frequenties en cumulatieve proporties
1 2 2 0.2
2 2 0 0.2
3 5 3 0.5
4 9 4 0.9
5 9 0 0.9
6 9 0 0.9
7 10 1 1.0
  • waarden komen dus eigenlijk niet voor
  • kan verwarrend zijn voor kwantielberekeningen
    • voorbeeld:
  • oplossing: schrap waarden uit tabel
1 2 2 0.2
3 5 3 0.5
4 9 4 0.9
7 10 1 1.0

Tchebychev: niet vergeten afronden

  • Tchebychev levert een proportie op
  • vermenigvuldig met om naar frequentie te gaan
  • rond correct af tot op geheel getal
    • niet: onder .5 naar onder, anders naar boven afronden
    • wel: vraag goed lezen en dan juiste keuze maken

Transformaties die sortering beinvloeden

  • gevaar 1: transformatie draait gesorteerde gegevens om
    • voorbeeld
    • probleem voor berekening , , kwantielen
  • gevaar 2: transformatie is geen bijectie en voegt waardes samen
    • voorbeeld: (of )
  • oplossing: maak extra tabel gesorteerd op de nieuwe waarde
-2 3 3 2 2
0 1 4 0 0
2 2 6 -2 2
-2 2 2
0 1 3
2 3 6
0 1 1
2 5 6

Bivariate freqentiefuncties via ZRM

Somvariabelen van standaarddeviaties

  • geen rechtstreekse formule
  • bereken via

Somvariabelen van correlaties

  • geen rechtstreekse formule
  • bereken via

Verschil tussen disjunct en statistisch onafhankelijk

  • disjunct
  • onafhankelijk

Ongelijkheden

  • strikt
    • groter dan vs. strikt groter dan
    • kleiner dan vs. strikt kleiner dan
    • voorbeeld: is geen geldige waarde voor maar wel voor
  • complementen
    • voorbeeld:

Tip voor oefeningen combinatoriek: vereenvoudigen

In tegenstelling tot veel oefeningen rond statistiek, is het bij combinatoriek moeilijk om een uitkomst te dubbelchecken. Daardoor is het moeilijk om zeker te weten of je op de goede weg bent. Een alternatief is om een vereenvoudigde versie van de gegeven oefening uit te werken. Daarbij kan je dan alle mogelijk combinaties uitschrijven om te kijken of dat aantal overeenkomt met jouw formule.

Voorbeeld

Neem opgave 8 van practicum 5. Dit is een klassieke oefening op combinatoriek. Er zijn drie brieven en zes brievenbussen. Je vermoedt dat de uitkomst gaat zijn. Dat is een vrij groot getal, dus alle combinaties uitschrijven om te dubbelchecken gaat lastig zijn. In de plaats daarvan kan je dezelfde oefening oplossen voor twee brieven (1, 2) en drie brievenbussen (A, B, C). Onze voorspelling is dan dat - met dezelfde aanpak als hierboven - de uitkomst zal zijn. Schrijf vervolgens alle combinaties uit, en kijk of het klopt.

(Zoals gewoonlijk helpt het om hierbij een tekening te maken om een beter zicht te krijgen op alle mogelijkheden.)

  • 1A, 2B
  • 1A, 2C
  • 1B, 2A
  • 1B, 2C
  • 1C, 2A
  • 1C, 2B

Perfect! Zes is inderdaad het juiste antwoord. Dat is een sterk signaal dat onze aanpak klopt, en ook geldig zal zijn voor de originele oefening.

Je moet bij deze strategie de balans te vinden tussen enerzijds voldoende kleine getallen kiezen zodat het aantal combinaties beperkt blijft, maar anderzijds ook niet te laag gaan. Werken met het cijfer twee is bijvoorbeeld altijd een risico omdat . Zo krijg je met een foute formule soms toch een vals gevoel van veiligheid als je puur toevallig het juiste aantal uitkomt. Dat probleem ga je veel minder hebben bij getallen groter dan twee. In ons voorbeeld is , dus we zouden al veel pech moeten hebben als we dan met een foute formule toevallig toch op de juiste uitkomst zouden uitkomen.

Dit was nog een redelijk eenvoudige oefening, maar dezelfde strategie kan je ook bij moeilijkere oefeningen gebruiken. Vereenvoudig de opgave zodat het volledig uitschrijven van alle combinaties haalbaar wordt, en dubbelcheck vervolgens of jouw methode het juiste antwoord geeft.

Reconstructie Examen Statistiek 1

Dit is de eerste examenperiode met prof. De Roover. We zijn dan ook erg benieuwd hoe verschillend haar examens zijn t.o.v. haar voorganger prof. Van Mechelen. Onderstaande reconstructie werd uitgewerkt op basis van de Google docs van de studenten. Het document is helaas onvolledig en bevat een aantal fouten, wat een perfecte reconstructie onmogelijk maakt. Laat gerust iets weten als jij je meer details zou herinneren.

Extra tip voor studenten die binnenkort hun examen gaan inkijken: je hebt recht op een examenkopie.

Eerste indruk

  • wat bleef hetzelfde
    • grote lijn zijn onveranderd
    • populaire topics
      • kansrekenen
      • optimale lineaire voorspelling
      • somvariabelen
      • scatterplot tekenen
  • wat is nieuw
    • 15 meerkeuze + 5 open vragen
      • in plaats van 15 open vragen
      • de drie foute alternatieven zijn niet random maar gebaseerd op veelgemaakte fouten
      • puntenverdeling
        • vroeger: 2 punten per vraag
        • nu
          • 1 punt per meerkeuzevraag (met giscorrectie)?
          • 2 punten per open vraag?
    • geen bewijzen
    • geen vraag over verzamelingenleer
    • weinig combinatoriek
    • beperkt aantal vragen over nieuwe leerstof (modellen)
    • meer Steiner en Tchebychev oefeningen
    • meer weggevertjes
    • Van Mechelen had elke examenperiode nieuwe vragen
      • maar hier merken we toch wat hergebruik van oude vragen op

Meerkeuzevragen

Q1

  • gegeven
  • gevraagd
  • opties
    1. 0.50
    2. 0.75
    3. 0.90
    4. 1.00
  • oplossing
    • tabel omvormen
    • tabel uitbreiden met
      • opgelet: sorteren op van klein naar groot
1 0 0.30
1 1 0.20
2 0 0.40
2 1 0.10
1 0 5 0.30 0.30 0.30
- - 6 - 0.00 0.30
1 1 7 0.20 0.20 0.50
- - 8 - 0.00 0.50
- - 9 - 0.00 0.50
2 0 10 0.40 0.40 0.90
- - 11 - 0.00 0.90
2 1 12 0.10 0.10 1.00

Q2

  • gegeven
    • cfreq
  • gevraagd
  • oplossing
    • cfreq -> freq
    • via ZRM

Q3

  • gegeven
    • ?
  • gevraagd

Q4

  • gegeven
  • gevraagd
    • welke stelling is onjuist?
      • de dichtheid van ... is kleiner dan die van ...
      • de dichtheid van ... is kleiner dan die van ...
      • de dichtheid van ... is kleiner dan die van ...
      • de dichtheid van ... is kleiner dan die van ...
  • oplossing
    • dichtheid is lager als verder weg ligt van
    • bereken afstand
      • grotere afstand lagere dichtheid
    • dus

Q5

  • gegeven
    • klas,
    • gemiddelde gekwadrateerde verschil van de punten met 10 is 9.1
  • gevraagd
  • oplossing
    • Steiner

Q6

  • gegeven
    • test met score op 20
    • omgezet naar score op 100
    • i.i.d.
  • gevraagd
  • oplossing
      • doet er niet toe dat score is omgezet op 100
      • er zijn maar 20 vragen, dus 20 kansen om punten te verdienen
  • opties
    • 2.1761 -> dit is
    • 10.8806 -> dit is
    • 23.6775 -> dit is met
    • 4.8660 -> dit is

Q7

  • gegeven
    • 14 koppels
  • gevraagd
  • oplossing
    • neem koppels waar
    • sorteer o.b.v. -waarde van klein naar groot
    • als oneven
      • neem middelste waarde
    • als even
      • neem gemiddelde van twee middelste waardes

Q8

  • gegeven
    • ?
  • gevraagd
    • lineaire transformatie van covariantie
  • oplossing
    • rekenregel
    • en aangezien geldt ook
    • gecombineerd
      • (regel lineaire transformatie toegepast op )
      • (regel lineaire transformatie toegepast op )
      • ...

Q9

  • gegeven
  • welke variabele kan en hebben?
  • opties
    • en
    • enkel
    • enkel
    • geen van beide
  • oplossing
    • stel dat en
    • test
      • Tchebychev
        • kan niet, dus gemiddele en/of variantie kloppen niet voor
    • test
      • Tchebychev
        • OK

Q10

  • gegeven
    • elke conditie komt even vaak voor
    • tabel
  • gevraagd
    • welke waarde is fout?
  • oplossing
    • tabel uitbreiden (zie onder)
    • dan is ...
      • als , dan
      • dus is fout

Q11

  • gegeven
    • werp met twee dobbelstenen
    • : hoogste aantal ogen van de twee
  • gevraagd
  • oplossing
    • tabellen opstellen
    • (ZRM)
1 1 1
1 2 2
1 3 3
1 4 4
1 5 5
1 6 6
2 1 2
2 2 2
...
5 6 6
6 1 6
6 2 6
6 3 6
6 4 6
6 5 6
6 6 6
1 1/36
2 3/36
3 5/36
4 7/36
5 9/36
6 11/36

Q12

  • gegeven
    • grafiek
  • gevraagd
    • interkwartielbereik
  • oplossing

Q13

  • gegeven
    • OLV
    • zit 1 standaarddeviatie boven gemiddelde
  • gevraagd
  • opties
  • oplossing

Q14

  • cf. examen 2020-01-13, vraag 7
  • gegeven
  • gevraagd
  • opties
  • oplossing
    • opgepast:
    • (distributiviteit)
      • (chiastische eigenschap)
      • ()
      • (somvariabelen)

Q15

  • gegeven
    • tabel
    • OLV
  • gevraagd
    • proportie verklaarde variantie
  • oplossing

Open vragen

Q16

  • gegeven
    • i.i.d.
  • gevraagd
  • oplossing
      • (somvariabelen variantie)
      • (onafhankelijk)
      • (identiek verdeeld, dus )
      • (eigenschap correlatie)
      • (somvariabelen covariantie)
      • (i.i.d.)
      • (vereenvoudig)
      • (zie hierboven)
  • merk op
    • dit zou te gemakkelijk zijn voor een open vraag

Q17

  • gegeven
  • gevraagd
    • scatterplot
    • 8 punten
  • oplossing
    • (veel mogelijkheden)
    • 4 punten op stijgende rechte vanaf
    • spiegellijn halverwege tussen en , dus op
    • 4 punten op dalende rechte vanaf
1 6
2 7
3 8
4 9
1 2
2 1
3 0
4 -1

q17-plot

Q18

  • gegeven
  • gevraagd
    • teken
  • oplossing
    • dubbelcheck oppervlakte onder
      • -> OK
      • dus op andere plaatsen
    • teken
      • assen
        • horizontaal
          • label:
          • schaal: in stappen van
        • verticaal
          • label:
          • schaal:
      • elke rechthoek in wordt een driehoek in
0 0
0.05 0
0.25 0.20
0.35 0.20
0.65 0.80
0.80 0.80
0.85 1

q18-plot

Q19

  • gegeven
    • dagen
    • : stemming score
    • : dag
    • onafhankelijk
  • gevraagd
  • oplossing
    • stel
    • tabel opstellen
    • (ZRM)

Q20

  • cf. examen 2020-08-17, vraag 8
  • gegeven
    • : lichamelijke klachten
    • : cursus voltooid
    • ?: therapie gevolgd
  • gevraagd
  • oplossing

Nieuw examenformularium voor statistiek 1

Bij prof. Van Mechelen mochten studenten geen formularium gebruiken voor statistiek 1. Voor statistiek 2 mocht wel een handgeschreven formularium van 2 blz. worden meegenomen. In het nieuwe curriculum is er nog een ander systeem: de prof voorziet een formularium en statistische tabellen als appendix bij de examenbundel. Helaas krijg je enkel de highlights over het deel rond statistische modellen. Formules uit de rest van de cursus moet je dus nog wel van buiten leren. Hieronder vind je een overzicht van wat je mag verwachten.

Statistische modellen

Bernoulli

Binomiaal

Geometrisch

Poisson

Exponentieel

Uniform

Normaal

Statistische tabellen

Standaard normaalverdeling

  • met
0.0005 -3.2905
0.001 -3.0902
...
0.999 3.0902
0.9995 3.2905

Hervorming statistiek (update)

Nu de lessen van het eerste semester voorbij zijn, kunnen we meer in detail terugblikken op concrete veranderingen sinds de statistiek hervormingen begin dit academiejaar.

Wat in de eerste plaats opvalt, is dat de studielast in theorie verminderd is van 8 naar 7 studiepunten, maar dat er toch meer onderwerpen besproken worden in de cursus. Specifiek is het deel over statistische modellering uit het oude statistiek 2 vak overgeheveld naar statistiek 1. Daarin leren we o.a. over de Bernoulli-, Binomiaal- en Normaalverdelingen. Ik gaf voorheen al het advies aan studenten statistiek 1 om de binomiaalverdeling kort te bekijken, aangezien die stiekem in veel vragen voorkwam. Dat probleem is bij deze opgelost, maar de vraag blijft hoe we hier dan kunnen spreken over een daling in studiebelasting? Hoewel prof. De Roover niet meer verwijst naar de cursus van prof. Van Mechelen, is het duidelijk dat haar slides daar nog steeds heel sterk op gebaseerd zijn. Alle oude hoofdstukken zijn behouden gebleven, dus er moeten per hoofdstuk hier en daar elementen gesneuveld zijn om plaats te maken voor de nieuwe leerstof.

We merken vooraan in de cursus dat het hoofdstuk rond verzamelingenleer sterk vereenvoudigd is. De leerstof rond cartesische producten, machtsverzamelingen, partities en oneindige verzamelingen is weggevallen. Dat deel van de leerstof zorgde voor veel problemen bij studenten, maar was eigenlijk niet erg relevant voor de rest van de cursus. Ook logaritmes zijn subtiel weggewerkt uit de cursus.

Doorheen de cursus merken we ook dat de focus op bewijzen fel verminderd is. Hier en daar wordt nog wel aangetoond hoe men aan een formule komt, maar de vaardigheid heeft duidelijk aan belang ingeboet. Als er op het examen ook geen vragen over bewijzen meer komen, winnen studenten hier inderdaad opnieuw wat tijd. Dat verklaart ook ineens waarom er minder geoefend wordt op rekenen met sommatietekens (en dan vooral dubbele sommatietekens). Die had je namelijk vooral nodig om bewijzen uit te werken.

De cursus van Prof. Van Mechelen bevatte ook opdrachten (los van de practica) die bij de theorie hoorden. Die hielpen zeker om de leerstof te verwerken, maar zijn niet overgenomen in het lesmateriaal van prof. De Roover. Ook daar moeten studenten dus geen tijd meer insteken. (Wie toch benieuwd is, kan de vragen terugvinden onder de tab "Oplossingen" op deze site.)

We kunnen dus concluderen dat prof. De Roover vooral tijd heeft proberen te besparen op de wiskundige achtergrond, om zo toch voldoende tijd aan de statistische leerstof te kunnen besteden. Die is namelijk wel grotendeels gelijk gebleven, al merk je hier en daar ook wel enkele besparingen. Zo moeten formules voor somvariabelen nu niet meer gekend zijn voor variabelen, maar zijn de formules uitgewerkt voor het concrete geval van twee of drie variabelen. Ook Tchybychev moet het nu stellen met één formule in plaats van twee.

Veel is er verder niet veranderd. Er zijn nieuwe practicumopgaven die qua vorm nu een voorproefje zijn van de meerkeuzevragen die we op het examen mogen verwachten. Nochtans was het proefexamen (op het meerkeuze aspect na) heel gelijkaardig aan proefexamens van prof. Van Mechelen. Het is duidelijk dat de nieuwe docent dus vooral voor continuiteit gaat.

Nu is het vooral afwachten hoe haar eerste examen er zal uitzien. Gaat er nog iets gevraagd worden van verzamelingenleer? Gaat er nog een bewijs inzitten? Waarschijnlijk zal het antwoord tweemaal nee zijn. We weten ondertussen wel dat er een formularium aan het examen zal toegevoegd worden, maar dat gaat enkel over het deel rond statistische modellen, niet over de rest van de cursus.

We weten natuurlijk allemaal uit het tijdperk van prof. Van Mechelen dat de grote moeilijkheid van het vak niet echt in de inhoud zat, maar wel in de manier van verbeteren. Afwachten dus wat de moeilijkheidsgraad van het echte examen zal zijn, hoeveel meerkeuzevragen er zullen zijn t.o.v. de open vragen en hoe die open vragen verbeterd zullen worden.

Variantie en i.i.d.

Wie het laatste hoofdstuk van deel 1 bestudeerd heeft, weet ondertussen waar i.i.d. voor staat: independent and identically distributed. Als en onafhankelijk zijn, geldt dat:

Als ze identiek verdeeld zijn, weten we dat hun verdelingsfuncties (kansmassafunctie of dichtheidsfunctie) exact hetzelfde zijn, en dat het dus weinig zin heeft om nog een subscript te gebruiken:

Hoe kunnen we dat nu toepassen op varianties? Stel dat we willen berekenen waarbij en i.i.d. zijn. Dan beginnen we zoals altijd met de rekenregels van somvariabelen toe te passen:

Normaal moeten we hier stoppen, maar met het extra gegeven van i.i.d. kunnen we nog verder gaan. Uit onafhankelijkheid volgt dat , en dus ook dat :

We zijn er nu bijna, maar nog niet helemaal. We hebben al iets met de eerste i gedaan, maar nog niet met de tweede. Als en identiek verdeeld zijn, zijn ook al hun statistische maten gelijk. Dus en . Zo komen we finaal tot:

We kunnen dit ook uitbreiden naar i.i.d. Dan krijgen we:

Als krijgen we tot slot: