Alert - deze website is nog in ontwikkeling - feedback altijd welkom via sven.demaeyer@uantwperen.be

Online (R) oefeningen

Correlaties

We zijn nu aangekomen bij het onderdeel waarin we het verband tussen twee kwantitatieve variabelen wensen te onderzoeken: correlaties. Hoe we dit doen in R kan je hier oefenen, opnieuw adhv onze dataset over de pinguïns.

Meer achtergrond over deze dataset vind je via volgende link: palmerpenguins

library(palmerpenguins)
data("penguins")
_webr_editor_1 = Object {code: "library(palmerpenguins)\ndata(\"penguins\")", options: Object, indicator: it}
Downloading webR package: palmerpenguins

Voor deze oefening willen we twee onderzoeksvragen beantwoorden:

Onderzoeksvragen
(OV1) Wat is de samenhang tussen de lengte van de snavel (bill_length_mm) en de breedte van de snavel (bill_depth_mm) van pinguïns?
(OV2) Wat is het onderlinge verband tussen de volgende verschillende metingen van lichamelijke kenmerken van pinguïns: lengte van de flipper (flipper_length_mm), lengte van de snavel (bill_length_mm) en het gewicht (body_mass_g)?

Oefening 1

De eerste onderzoeksvraag gaat over het verband tussen de lengte van de snavel (bill_length_mm) en de breedte van de snavel (bill_depth_mm) van pinguïns.

Maak in onderstaande codeblok een basisvisualisatie om dit verband te illustreren.


_webr_editor_3 = Object {code: null, options: Object, indicator: it}
_webr_value_3 = Object {result: null, evaluate_result: null, evaluator: Pa}

Een basisvisualisatie om het verband tussen twee kwantitatieve variabelen na te gaan is een puntenwolk. Die kan je maken met de generieke functie plot( ).

plot(penguins$______, penguins$______)

Oplossing:

Een basisvisualisatie om het verband tussen twee kwantitatieve variabelen na te gaan is een puntenwolk. Die kan je maken met de generieke functie plot( ).

Tussen haakjes moet je verwijzen naar beide variabelen. Indien er een vermoeden is van causaliteit, plaats je de onafhaneklijke variabele best op de x-as. In dit geval is er niet echt een duidelijk vermoeden van causaliteit, waardoor er geen reden is om de ene of de andere variabele op de x-as te zetten. Belangrijk is dat beide variabelen als numeric of als integer in de dataframe zijn gedefinieerd. Dat is in dit geval in orde.

De volledige oplossing ziet er zo uit!

plot(penguins$bill_length_mm, penguins$bill_depth_mm)
plot(penguins$bill_length_mm, penguins$bill_depth_mm)

Oefening 2

De figuur die je in de vorige oefening maakte wijst niet meteen zeer duidelijk op een verband. We hebben echter ook een maat om de samenhang na te gaan: de Pearson correlatiecoëfficiënt.

Bereken de Pearson correlatiecoëfficiënt voor het verband tussen beide kenmerken van de snavel van pinguïns. Doe ook een test om na te gaan of dit verband statistisch signifcant is.


_webr_editor_7 = Object {code: null, options: Object, indicator: it}
_webr_value_7 = Object {result: null, evaluate_result: null, evaluator: Pa}

We kunnen gebruik maken van de functie cor.test( ).

cor.test(penguins$______, penguins$______)

Oplossing:

cor.test(penguins$bill_length_mm, penguins$bill_depth_mm)
cor.test(penguins$bill_length_mm, penguins$bill_depth_mm)

Oefening 3

We hernemen de oplossing uit de vorige oefening hieronder.


library(palmerpenguins)
data("penguins")
cor.test(penguins$bill_length_mm, penguins$bill_depth_mm)
_webr_editor_11 = Object {code: "\nlibrary(palmerpenguins)\ndata(\"penguins\")\ncor.test(penguins$bill_length_mm, penguins$bill_depth_mm)", options: Object, indicator: it}

	Pearson's product-moment correlation

data:  penguins$bill_length_mm and penguins$bill_depth_mm
t = -4.4591, df = 340, p-value = 1.12e-05
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.3328072 -0.1323004
sample estimates:
       cor 
-0.2350529 

Op het examen vragen we soms meerkeuzevragen over de interpretatie van de output. Hieronder vind je een typische meerkeuzevraag (met de antwoordsleutel op een afzonderlijk tabbladje). Probeer eerst zelf tot een antwoord te komen en toets vervolgens jouw antwoord af met de antwoordsleutel.

Welke van volgende uitspraken is fout? (slechts 1 antwoord mogelijk)

  1. In de steekproef is er een negatief verband tussen lengte en breedte van de snavel van pinguïns
  2. Beide variabelen delen 5,5% variantie
  3. 95% van gelijkaardige steekproeven zou een correlatiecoëfficiënt opleveren die tussen -0,13 en -0,33 valt
  4. De kans dat we deze correlatiecoëfficiënt (-0,235) ook in de populatie vast zouden stellen is groter dan 5%

Je diende uitspraak 4 te kiezen als foute uitspraak.

  1. In de steekproef is er een negatief verband tussen lengte en breedte van de snavel van pinguïns

= JUIST! Inderdaad. In de steekproef is de correlatie -0,235, een negatief getal dus ook een negatief verband.

  1. Beide variabelen delen 5,5% variantie

= JUIST! Ook dit klopt aangezien het kwadraat van de correlatiecoëfficiënt kan geïnterpreteerd worden als gedeelde variantie tussen beide variabelen. Het kwadraat van -0,235 bedraat 0,055. Dit is een percentage uitgedrukt in een getal tussen 0 en 1. Doen we dit maal 100 dan krijgen we het percentage op 100 (5,5% in dit geval).

  1. 95% van gelijkaardige steekproeven zou een correlatiecoëfficiënt opleveren die tussen -0,13 en -0,33 valt

= JUIST! Dit lezen we af in de output bij het 95 betrouwbaarheidsinterval. Zo’n betrouwbaarheidsinterval geeft een beeld van de steekproevenverdeling. Deze steekproevenverdeling is de verdeling van onze parameter, de correlatie, overheen alle mogelijke steekproeven die we zouden kunnen getrokken hebben. Uit die verdeling leren we dat 95% van deze mogelijke steekrpoeven een correlatie tussen -0,13 en -0,33 zou opleveren.

  1. De kans dat we deze correlatiecoëfficiënt (-0,235) ook in de populatie vast zouden stellen is groter dan 5%

= FOUT! Dit is een typische verkeerde interpretatie van de p-waarde. Een p-waarde is een probabiliteit van de data onder de veronderstelling dat de nul-hypothese geldig is. Anders uitgedrukt: de p-waarde drukt de kans uit dat we een correlatiecoëfficiënt van -0,235 of extremer (meer negatief) zouden vaststellen in onze steekproef indien de correlatie in de populatie nul bedraagt.

Oefening 4

Nu richten we onze aandacht op de tweede onderzoeksvraag. Centraal in die onderzoeksvraag staat het nagaan van het verband van meerdere kwantitatieve variabelen.

Creër een visualisatie die de onderlinge samenhang tussen alle 3 de variabelen in één figuur weergeeft.


_webr_editor_12 = Object {code: null, options: Object, indicator: it}
_webr_value_12 = Object {result: null, evaluate_result: null, evaluator: Pa}

Om deze figuur te maken moet je twee stappen doorlopen:

  • een dataframe maken met daarin enkel de betrokken variabelen;
  • deze nieuwe dataframe ‘plotten’ met het commando plot( ).

Oplossing:

Verschillende stappen zijn nodig om deze figuur te maken. In de onderstaande oplossing kan je de twee stappen zien.

# Dataframe maken met enkel de betrokken variabelen Variabelen <- data.frame( penguins$flipper_length_mm, penguins$bill_length_mm, penguins$body_mass_g ) # plot maken van de nieuwe dataframe plot(CVariabelen)

# Dataframe maken met enkel de betrokken variabelen
Variabelen <- data.frame(
  penguins$flipper_length_mm,
  penguins$bill_length_mm,
  penguins$body_mass_g
)

# plot maken van de nieuwe dataframe
plot(CVariabelen)

Oefening 5

De visualisatie uit de voorgaande oefening duidt op een positief verband tussen elk van deze variabelen onderling. De vraag is uiteraard of dit een sterk verband is en in welke mate we dit verband kunnen verwachten te zien in de gehele populatie.

Bereken de drie correlatiecoëfficiënten in één beweging en schrijf voor jezelf een rapportage neer over de bekomen resultaten. Heb bij het schrijven van een conclusieluik ook oog voor “effectgrootte”.


_webr_editor_16 = Object {code: null, options: Object, indicator: it}
_webr_value_16 = Object {result: null, evaluate_result: null, evaluator: Pa}

Net als bij de visualisatie zijn er twee stappen nodig om een correlatiematrix te berekenen:

  • een dataframe maken met daarin de variabelen (is zelfde eerste stap als in oefening 4);
  • de correlatiematrix berekenen gebruikmakend van de functie cor.prob( ) .

Oplossing:

Om deze correlatiematrix te berekenen maken we eerst een nieuwe dataframe aan (met de naam Variabelen) waarin de drie variabelen alleen zijn weggeschreven. Daarna gebruiken we die nieuwe dataframe Variabelen als inpunt voor de functie cor.prob( ).

# Dataframe maken met enkel de betrokken variabelen Variabelen <- data.frame( penguins$flipper_length_mm, penguins$bill_length_mm, penguins$body_mass_g ) # De correlatiematrix berkenen cor.prob(Variabelen)
# Dataframe maken met enkel de betrokken variabelen
Variabelen <- data.frame(
  penguins$flipper_length_mm,
  penguins$bill_length_mm,
  penguins$body_mass_g
)

# De correlatiematrix berkenen

cor.prob(Variabelen)

Indien je alle output graag ter beschikking hebt om de rapportage na te kunnen lezen, kan je onderstaand codeblok nog een keer laten lopen.


library(palmerpenguins) # indien nodig package laden
data("penguins") # indien nodig de data laden

# Dataframe maken met enkel de betrokken variabelen
Variabelen <- data.frame(
penguins$flipper_length_mm,
penguins$bill_length_mm,
penguins$body_mass_g
)

# De correlatiematrix berkenen

cor.prob(Variabelen)
_webr_editor_20 = Object {code: null, options: Object, indicator: it}

De drie variabelen flipperlengte, snavellengte en gewicht zijn onderling sterk positief gecorreleerd. De correlaties situeren zich tussen 0,595 en 0,871 en zijn alledrie statistisch significant (p <0,001). We verwachten in de populatie ook positieve correlaties te observeren tussen deze drie variabelen.