<jupyter_start><jupyter_text>STANDAARDISEREN     In deze notebook leer je bivariate gegevens weergeven in een puntenwolk. Je leert dat je de mate van correlatie niet altijd op het zicht kunt inschatten en waarom het standaardiseren van de gegevens in dat opzicht belangrijk is.  Voor deze notebook werden we geïnspireerd door het lesmateriaal 'Statistiek voor het secundair onderwijs' dat je kan vinden op de website https://www.uhasselt.be/lesmateriaal-statistiek van de Universiteit Hasselt [1][2]. De voorbeelden uit [2] werd in deze notebook overgenomen met toestemming van professor Callaert.   De nodige modules importeren<jupyter_code>import numpy as np
import matplotlib.pyplot as plt
import pandas as pd<jupyter_output><empty_output><jupyter_text>In wat volgt zul je drie puntenwolken met elkaar vergelijken en inschatten welke data de beste correlatie vertonen.Lotte, Robbe en Kato krijgen elk een aantal bloemblaadjes waarvan ze de lengte en de breedte moeten opmeten in millimeter. Ze lijsten hun meetresultaten op in respectievelijk tabel1, tabel2 en tabel3.Vervolgens representeren ze de bivariate gegevens met een puntenwolk.  Rechtstreeks op een figuur schatten hoe sterk de lineaire samenhang is, is niet zo eenvoudig.             1. Inlezen van de data      Lees met de module pandas de datasets in.<jupyter_code>tabel1 = pd.read_csv("data/datastandaard1.dat", header=None)  # in te lezen tabel heeft geen hoofding
tabel2 = pd.read_csv("data/datastandaard2.dat", header=None)  # in te lezen tabel heeft geen hoofding
tabel3 = pd.read_csv("data/datastandaard3.dat", header=None)  # in te lezen tabel heeft geen hoofding<jupyter_output><empty_output><jupyter_text>2. Tonen van de ingelezen data       Opdracht 2.1Kijk de gegevens  van de drie tabellen in.   Opdracht 2.2Geef de juiste instructie in om info te verkrijgen over de tweede tabel. - Wat zijn de namen van de kolommen?- Hoeveel bloemblaadjes heeft Robbe opgemeten?Antwoord:             3. De data weergeven in puntenwolk      Omdat de tabellen geen header hebben, kan je geen header als sleutel gebruiken. Je kan dan in de plaats het kolomnummer gebruiken.<jupyter_code># tabel1
x1 = tabel1[0]
y1 = tabel1[1]
x1 = np.array(x1)
y1 = np.array(y1)

plt.figure()

plt.title("Tabel1 Lotte")
plt.xlabel("breedte bloemblad (mm)")
plt.ylabel("lengte bloemblad (mm)")
plt.xlim(0, 45)
plt.ylim(0, 45)

plt.scatter(x1, y1, color="red", marker="o")

plt.show()
# tabel2
x2 = tabel2[0]
y2 = tabel2[1]
x2 = np.array(x2)
y2 = np.array(y2)

plt.figure() 

plt.title("Tabel2 Robbe")
plt.xlabel("breedte bloemblad (mm)")
plt.ylabel("lengte bloemblad (mm)")
plt.xlim(0, 45)
plt.ylim(0, 45)

plt.scatter(x2, y2, color="yellow", marker=">")  

plt.show()
# tabel3
x3 = tabel3[0]
y3 = tabel3[1]
x3 = np.array(x3)
y3 = np.array(y3)

plt.figure()


plt.title("Tabel 3 Kato")
plt.xlabel("breedte bloemblad (mm)")
plt.ylabel("lengte bloemblad (mm)")
plt.xlim(0, 45)
plt.ylim(0, 45)

plt.scatter(x3, y3, color="lightblue", marker="<")  

plt.show()<jupyter_output><empty_output><jupyter_text>Bij welke tabel is er de beste samenhang? Op het eerste gezicht bij tabel .......             4. Correlatie      Het is niet vanzelfsprekend om de correlatie tussen gegevens in te schatten louter afgaand op de puntenwolk. Een betere houvast is de correlatiecoëfficiënt.  In hoeverre er samenhang is tussen de x- en y- coördinaat van de gegeven punten, kan bekeken worden a.d.h.v. de *correlatiecoëfficiënt R*. De correlatiecoëfficiënt, een reëel getal R, ligt steeds tussen -1 en 1. Hoe dichter R bij 0 ligt, hoe slechter de samenhang. Bij een positieve R spreekt men van een positieve samenhang, bij een negatieve R van een negatieve samenhang.  Vergelijk de correlatiecoëfficiënten van de drie tabellen. Vul eerst de instructies in de code-cel aan.<jupyter_code># correlatiecoëfficiënt van tabel 1
print("Correlatiecoëfficiënt R1 van de eerste tabel =", np.corrcoef(x1, y1)[0,1])
# correlatiecoëfficiënt van tabel 2 en tabel 3
print("Correlatiecoëfficiënt R2 van de tweede ...
print("...<jupyter_output><empty_output><jupyter_text>Wat besluit je over de correlatie voor de drie tabellen? Antwoord:             5. Standaardiseren      De gegevens kunnen maar vergeleken worden als ze gestandaardiseerd zijn. Je berekent daarvoor de *Z-score* van de gegevens: je trekt het gemiddelde af en je deelt vervolgens door de standaardafwijking.<jupyter_code>x1 = (x1-np.mean(x1))/np.std(x1)
y1 = (y1-np.mean(y1))/np.std(y1)
x2 = (x2-np.mean(x2))/np.std(x2)
y2 = (y2-np.mean(y2))/np.std(y2)
x3 = (x3-np.mean(x3))/np.std(x3)
y3 = (y3-np.mean(y3))/np.std(y3)<jupyter_output><empty_output><jupyter_text>Je kunt nu de puntenwolken tekenen die corresponderen met deze aangepaste gegevens.<jupyter_code># gestandaardiseerde puntenwolk

plt.figure()

plt.scatter(x1, y1, color="red", marker="o")      
plt.scatter(x2, y2, color="yellow", marker=">")
plt.scatter(x3, y3, color="lightblue", marker="<")

plt.title("Gestandaardiseerd")
plt.xlabel("breedte bloemblad (mm)")
plt.ylabel("lengte bloemblad (mm)")
plt.xlim(-2, 2)
plt.ylim(-2, 2)

plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10105757931844889, 'fraction_numerical': 0.024872698785742265, 'mean_word_length': 4.829908675799087, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '570235', 'license': 'CC0-1.0', 'n_tokens_mistral': 2067, 'n_tokens_neox': 1996, 'n_words': 588, 'path': 'Wiskunde/Spreidingsdiagram/0900_Standaardiseren.ipynb', 'repo_name': 'dwengovzw/PythonNotebooks', 'size': '5106'}