R Markdown

Här gör vi en regression med en kategorisk prediktor. Vi använder för enkelhetens skull data från “iris” som är ett känt dataset. Du behöver installera paketen “dataset” och “sjPlot” om du saknar dem. Du installerar dem genom följande kommando: install.packages(“datasets”) install.packages(“sjPlot”)

# Installerar och aktiverar "datasets" som inkluderar "iris"
# install.packages("datasets")
library(datasets)

# Laddar datasettet "iris"
data(iris)

# Vi undersöker vilka variabler som finns i iris. Detta görs med str()-funktionen. Denna funktionen visar att det finns 5 variabler och variabeln "Species" är en "Factor" med 3 kategorier. Det är denna variabeln som vi är intresserade av.
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
# Vi kan dubbelkolla att "Species" faktiskt är en kategorisk variabel (faktorvariabel) genom att använda class()-funktionen
class(iris$Species)
## [1] "factor"
# med funktionen levels() får vi veta alla kategorier som Species har och den kategorin som skrivs ut först är referenskategorin!
levels(iris$Species)
## [1] "setosa"     "versicolor" "virginica"

Då ser vi att “setosa” är referenskategorin för Species. Nu gör vi en linjär regression där vi studerar hur tre prediktorer påverkar Sepal.Length och vi är primärt intresserade av Species.

# Regressionsmodellen
modell <- lm(Sepal.Length ~ Petal.Length + Petal.Width + Species, data=iris)

# Skriv ut en snygg tabell med resultaten.
library(sjPlot)
sjt.lm(modell)
    Sepal.Length
    B CI p
(Intercept)   3.68 3.47 – 3.90 <.001
Petal.Length   0.91 0.76 – 1.05 <.001
Petal.Width   -0.01 -0.31 – 0.30 .969
Species
versicolor   -1.60 -2.00 – -1.19 <.001
virginica   -2.11 -2.71 – -1.51 <.001
Observations   150
R2 / adj. R2   .837 / .832