Byrjum á að lesa inn gögnin.
tVerk2.df <- read.table('tverk2.txt')
Framkvæmum einfalda línulega aðfallsgreiningu.
require(papaja); require(broom); require(knitr); require(dplyr)
lm_model <- lm(sponn ~ haed, data = tVerk2.df)
apa_model <- apa_print(lm_model) # Sækja niðurstöður á APA-formi
summary(lm_model)
##
## Call:
## lm(formula = sponn ~ haed, data = tVerk2.df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4786 -1.4334 0.2233 1.3417 4.0214
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.54903 8.57578 -0.880 0.38917
## haed 0.16295 0.04993 3.263 0.00389 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.944 on 20 degrees of freedom
## Multiple R-squared: 0.3475, Adjusted R-squared: 0.3148
## F-statistic: 10.65 on 1 and 20 DF, p-value: 0.003889
Jafna líkansins er gefin með: \(\hat Y = 0.163*X_{haed} - 7.549\)
Við getum notað papaja pakkann eftir Frederik Aust & Marius Barth til að prenta út upplýsingar um líkön á alþjóðlegu APA formi með því að geyma apa_print(lm_model) í stakinu apa_model og skrifa svo í samfelldum texta skipun eins og apa_model$full_results$haed. Þá fáum við út eftirfarandi setningu:
\(b = 0.16\), 95% CI \([0.06\), \(0.27]\), \(t(20) = 3.26\), \(p = .004\).
Sömuleiðis getum við skrifað apa_model$full_results$modelfit$r2 og prentað:
\(R^2 = .35\), 90% CI \([0.08\), \(0.60]\), \(F(1, 20) = 10.65\), \(p = .004\)
Teiknum nú fylgnirit af breytunum til að fá betri mynd af sambandinu milli þeirra. Notum ýmsa pakka úr Tidyverse pakkasafninu frá Hadley Wickham. Auk þess notum við Broom pakkan eftir David Robinson sem var gerður til að færa upplýsingar um ýmis líkön í R yfir á meðferðarlegt form.
require(broom); require(dplyr); require(ggthemes); require(ggplot2)
augment(lm_model) %>% # Skilar upprunalegum gagnaramma auk forspár og leifar hvers staks
ggplot() + # Búa til teikniramma
geom_point(aes(haed, sponn)) + # Hæð á X-ás og spönn á Y-ás
geom_smooth(aes(haed, sponn),
method = 'lm', se = F) + # Bæta við aðfallslínu líkans
geom_segment(aes(x = haed, xend = haed, # Tekna Leifalínur (bleikar)
y = sponn, yend = .fitted, col = '1'),
alpha = 0.5) + # Frá raun- til spágildis (á línu)
theme_tufte(base_size = 12) + # Fallegri þema
labs(x = 'Hæð', y = 'Spönn', title = 'Fylgnirit með Aðfallslínu') + # Merkingar
scale_color_manual(name = '', labels = 'Leif staks',
values = '#fa9fb5') # Velja sjálfur lit
Hér sjáum við betri mynd af línulega sambandinu milli breytanna. Við sjáum mikla dreifni í Spönn meðal fólks sem skorar á bilinu [165-175] í Hæð. Þá sérstaklega eru tveir einstaklingar með sömu hæð (í kringum 173cm)
augment(lm_model) %>% # Búa aftur til gagnaramma auk leifar og forspárgilda
ggplot() + # Búa til teikniramma
geom_point(aes(.fitted, .resid)) + # Forspá á X-ás og leif á Y-ás
geom_hline(yintercept = 0, lty = 2) + # Lárétt líka í (0,0) til samanburðar
geom_segment(aes(x = .fitted, xend = .fitted, # Teikna bleikar villulinur
y = .resid, yend = 0, col = '1'), ## frá spágildum til
alpha = 0.5) + ## láréttrar línunnar
geom_smooth(aes(.fitted, .resid), # Teikna staðbundna línu til að
alpha = 0.01, col = 'lightsalmon2') + ## skoða mynstur í leif
theme_tufte(base_size = 12) + # Fá fallegri þema
labs(x = 'Spágildi', y = 'Leif', title = 'Leifarit') + # Merkingar
scale_color_manual(name = '', labels = 'Leif staks',
values = '#fa9fb5') # Velja lit sjálfur
Við sjáum ekkert þýðingarmikið mynstur í leifinni. Við sjáum aftur þessa einstaklinga sem voru með mjög mismunandi spönn en svipaða hæð í kringum 175cm