Gå till index

Analys med R

0% färdig
0/0 Steps
  1. Analys och forskning med R och Posit (Rstudio)
  2. Grunderna i R och Rstudio
    7 Ämnen
  3. Importera, exportera, spara och ladda data
    5 Ämnen
  4. Strängar och regular expressions (regex)
    1 Ämne
  5. Bearbetning av data med dplyr
    12 Ämnen
  6. Visualisera och presentera
    14 Ämnen
  7. Explorerande analyser
    6 Ämnen
  8. Prediktionsmodeller
    12 Ämnen
  9. Klassisk regressionsanalys
    8 Ämnen
  10. Machine learning (ML) och Artificiell Intelligens (AI)
    9 Ämnen
  11. Prediktionsmodeller: Tidymodels
  12. Hypotestester
    1 Ämne
Avsnitt 9, Ämne 1
Startad

Korrelation

Avsnitt Progress
0% färdig

Korrelation är inte regression

Att undersöka sambandet (associationen, relationen) mellan två eller flera variabler är vanligt inom all forskning och analys. I detta fall är termerna samband, association och relation synonym. Exempel på samband som kan undersökas är sambandet mellan kolesterol och hjärtinfarkt, eller mellan BMI (Body Mass Index) och blodsocker. När man kartlagt associationen mellan variabler kan följande frågor besvaras:

  1. Finns det en relation mellan variablerna?
  2. Hur stark är relationen mellan variablerna?
  3. Hur ser relationen ut?

För att studera associationer mellan variabler används oftast korrelation och regression. Med korrelation kan man studera hur starkt ett linjärt samband mellan två variabler är. Regression är ett kraftfullare verktyg; med regression kan man nämligen studera hur starkt sambandet är; man kan studera fler än två variabler samtidigt och man kan använda resultatet för att predicera (göra prediktioner). Att predicera innebär att man använder en statistisk modell för att förutsäga värdet på en variabel vars värde är okänt, utifrån variabler med kända värden. Variabler som används för att predicera kallas prediktorer. Variabeln som skall prediceras beteknas matematiskt med \(Y\) och har flera synonym, t ex utfall, utfallsmått, outcome, beroende variabel, label, etc.

Ponera att vi studerar relationen mellan BMI (Body Mass Index) och blodsocker. Med korrelation kan vi klargöra hur stark relationen mellan BMI och blodsocker är. Med regression kan vi, utöver att uttala oss om relationens styrka, även beskriva hur sambandet ser ut samt lära oss predicera (förutsäga) blodsocker för olika värden på BMI.

Korrelation och regression: kausalitet eller association?

Kausalitet har diskuterats tidigare. Se kapitlet Kausal Inferens (Kausalitet) för detaljer.

Begreppet kausalitet är centralt inom all forskning och analys. Ett kausalt samband mellan två faktorer innebär att den ena faktorn påverkar den andra. Det finns således en orsak och verkan mellan faktorerna. Det finns ett kausalt samband mellan LDL kolesterol och risken för kranskärlssjukdom. Det innebär att allteftersom LDL kolesterol stiger så ökar risken för kranskärlssjukdom. Sambandet mellan LDL kolesterol och kranskärlssjukdom är således kausalt. Som diskuterat i kapitlet Kausal Inferens (Kausalitet) är detta ämnet tämligen komplicerat. Det centrala teoremet är en matematisk association – vare sig bevisad med korrelation, regression eller machine learning – inte nödvändigtvis är kausal. Alla associationer skall tolkas med försiktighet och bedömningen att ett samband är kausalt skall baseras på omfattande, multidisciplinär och reproducerbar vetenskap.

Ett exempel på ett icke-kausalt samband följer:

Ponera att vi undersöker sambandet mellan gula fingrar och risken för lungcancer. Vi undersöker 5000 personer och graderar deras fingrar från 0 till 50 avseende hur gula fingrarna är och vi upptäcker att ju gulare fingrar desto högre risk för lungcancer. I detta fall är sambandet mellan gula fingrar och lungancer äkta; dvs det finns ett matematiskt bekräftat samband. Gula fingrar är dock inte orsaken till lungcancer, utan det är mer sannolikt att personer med gula fingrar röker och ju mer man röker desto gulare är fingrarna. Det är rökning som förklarar både gula fingrar och lungcancer. Även om gula fingrar inte var orsaken till cancern, så är klargörandet av sambandet ändå viktigt eftersom (1) gula fingrar kan användas kliniskt som screening och (2) gula fingrar kan leda oss till den verkliga orsaken till cancern.

Korrelation och korrelationskoefficienten

En korrelation inbegriper två variabler (hädanefter \(X\) och \(Y\)). Dessa variabler behandlas lika, så till vida att ingen av de betraktas som prediktor eller utfall (outcome).  Korrelationen mellan \(X\) och \(Y\) representerar sambandet mellan variablerna. Korrelationen sträcker sig från –1 till +1 och detta värde, som kallas korrelationskoefficienten, har ingen enhet. Om korrelationskoefficient är +1 så indikerar det ett perfekt positivt linjärt samband mellan \(X\) och \(Y\). Om koefficienten istället är –1 så indikerar det ett perfekt negativt linjärt samband mellan \(X\) och \(Y\). Om korrelationskoefficienten är 0 så finns inget samband mellan \(X\) och \(Y\).

Vi ska nu visualisera och beräkna korrelationen för två variabler i mtcars data. För att visualisera korrelationen och beräkna korrelationskoefficienten använder vi paketet ggpubr som har funktionen ggscatter(). Kommentarerna nedan förklarar argumenten.

R
library(tidyverse)
data("mtcars")

library(ggpubr)
ggscatter(mtcars,
          x = "wt",
          y = "mpg",
          size = 3,
          add = "reg.line",
          cor.coef = TRUE,
          cor.coeff.args = list(method = "pearson", label.x = 3, label.sep = "\n"))

Korrelationskoefficienten var -0.87. Vilket är ett starkt negativt samband. Notera att linjen i ovanstående graf är en regressionslinje. Korrelationer resulterar inte i linjer genom data.

Vi kan generera en korrelationsmatris för många variabler samtidigt med funktionen ggpairs() i paketet GGally. Koden och resultatet är som följer:

R
library(GGally)
ggpairs(mtcars,
        # Vilka kolumner?
       columns = 1:4,
       ggplot2::aes(colour=factor(am)))

Korrelationskoefficienten är ett mått på det linjära sambandet mellan X och Y. Koefficienten kan maximalt vara –1 eller +1, beroende på om sambandet är negativt respektive positivt. Ju närmare korrelation är 0, desto svagare är sambandet. Ju närmare korrelationen är –1 eller +1, desto starkare är sambandet. Om korrelationskoefficienten är 0 så leder en ändring i X inte till en ändring i Y.

Pearsons korrelationskoefficient

Korrelationskoefficienten måste beräknas utifrån data. Det finns flera alternativ för att beräkna koefficienten. Den mest populära korrelationskoefficienten är Pearson’s Product-Moment Coefficient of Correlation, eller bara Pearsons korrelationskoefficient. Denna förkortas med bokstaven r. Pearsons korrelationskoefficient erhålls genom att dividera variablerna \(X\) och \(Y\) kovarians med produkten av deras standarddeviationer.

\(r = \frac{\sum{(x-m_x)(y-m_y)}}{\sqrt{\sum{(x-m_x)^2}\sum{(y-m_y)^2}}}\)

Kovarians och korrelation

Kovarians påminner om korrelation. Kovarians är ett mått på två variablers (\(X\), \(Y\)) samvariation (dvs hur \(X\) och \(Y\) samvarierar). Om högre värden på X motsvarar högre värden på Y, och vice versa, så finns en samvariation mellan \(X\) och \(Y\). Positiv kovarians innebär att högre värden på \(X\) motsvarar högre värden på \(Y\). Negativ kovarians innebär det omvända.

Kovarians är den linjära samvariationen mellan \(X\) och \(Y\), vilket påminner mycket om korrelationen mellan \(X\) och \(Y\). Kovarians är dock svårare att tolka och jämföra. Exempelvis kan man inte jämföra om kovariansen mellan ålder och kroppsvikt är lika stark som kovariansen mellan ålder och längd eftersom kovariansen är skalberoende (om variablerna inte har samma skala kan de inte jämföras). Lösningen på problemet är att normalisera kovariansen. Detta görs genom att dividera kovariansen en faktor som representerar skalan och variationen i \(X\) och \(Y\). Detta ger ett värde som sträcker sig från –1 till +1 oavsett vilka variabler man undersöker. Det gör det också möjligt att jämföra korrelationer mellan variabler. För Pearsons korrelationskoefficient är denna faktorn alltså produkten av variablernas (\(X\), \(Y\)) standarddeviation.

Pearsons korrelationskoefficient bygger på antagandet att \(X\) och \(Y\) är normalfördelade och att sambandet mellan \(X\) och \(Y\) är linjärt. Pearsons metod är alltså parametrisk (den kräver att variablerna är normalfördelade). Figuren nedan visar ett linjärt respektive icke-linjärt samband.

Spearman rank correlation coefficient (Spearmans korrelationskoefficient)

Om variablerna (\(X\) och \(Y\)) inte uppfyller antagandena ovan så finns icke-parametriska metoder (dvs kräver inte normalfördelning). Den mest använda icke-parametriska metoden är Spearman rank correlation coefficient, eller bara Spearmans korrelationskoefficient. Med denna metoden jämförs istället rangordningen mellan \(X\) och \(Y\). Genom att använda rangordning blir beräkningen mer robust om sambandet inte är linjärt. Rangordningen minskar också betydelsen av eventuella outliers (extremvärden).

\(rho = \frac{\sum(x' - m_{x'})(y'i - m{y'})}{\sqrt{\sum(x' - m_{x'})^2 \sum(y' - m_{y'})^2}}\)

\(x′=rank(x), y′=rank(y)\)

Om antagandena för Pearsons korrelationskoefficient är uppfyllda så bör man inte använda Spearmans korrelation eftersom den är mindre effektiv, vilket innebär att Pearsons har större möjlighet att upptäcka ett samband (om ett sådant existerar).

Man kan också transformera \(X\) och \(Y\) (eller båda) om de inte uppfyller Pearsons antaganden. Transformationen kan exempelvis göras genom att en eller båda variabler logaritmeras. Detta kan ofta resultera i att Pearsons antaganden blir tillfredsställda. Transformationen påverkar inte Spearmans korrelationskoefficient eftersom denna enbart använder variablernas rangordning, vilken inte påverkas av transformationen.

Hur undersöker jag om variablerna är normalfördelade?

Svar: Gör ett histogram för varje variabel.

Hur undersöker jag om relationen mellan \(X\) och \(Y\) är linjär?

Svar: Spridningsdiagram kan används för att undersöka (visuellt) hur relationen ser ut.

Exempel i R

Aktivera tidyverse, ladda diamonds data, vilket innehåller information om olika diamanter.

R
library(tidyverse)
data(diamonds)

Gör sedan ett spridningsdiagram med pris (price) på x-axeln, karat (carat) på y-axeln och färga punkterna efter slipningen (cut).

R
ggplot(diamonds,
       aes(x=price, y=carat, color=cut)) +
  geom_point() +
  theme_bw()
R
# Hur stark är korrelationen enligt Pearsons metod
cor(tabell$price, tabell$carat, method="pearson")
R
# Hur stark är korrelationen enligt Spearmans metod
cor(tabell$price, tabell$carat, method="spearman")
Resultat
[1] 0.9215913
R
# Hur stark är korrelationen enligt Spearmans metod
cor(tabell$price, tabell$carat, method="spearman")
Resultat
[1] 0.9628828

Visuell bedömning av relationen

Man bör alltid göra en visuell bedömning av en korrelation. Ett spridningsdiagram är utmärkt för att göra detta, särskilt om en regressionslinje kan visualiseras på grafen. Anledningen till att en visuell bedömning är viktig är för att själva korrelationskoefficienten inte karaktäriserar sambandet mellan variablerna.

Korrelationskoefficienten är alltså ett sammanfattande mått och skall därför aldrig ersätta en visuell bedömning av relationen mellan \(X\) och \(Y\).