# 1. Lesa skrána

ARA <- read.csv2("spurningar_um_lifid_24.csv", header = TRUE)

# 2. Slembiúrtak
set.seed(67)
visir <- sample(1:nrow(ARA), 200)
urtak <- ARA[visir, ]

# 3. Öryggisbil fyrir ferðatíma

# Ef R breytti nafninu (t.d. bætti við punktum), finnum við það hér:
nafn <- names(urtak)[grep("ferdatimi", names(urtak), ignore.case = TRUE)[1]]

# Búum til x og pössum að það séu tölur
x <- as.numeric(as.character(urtak[[nafn]]))
x <- x[!is.na(x)] # Hreinsa tóm hólf

# Útreikningar
n_val <- length(x)
medaltal <- mean(x)
s_dev <- sd(x)
villa <- qt(0.975, df = n_val - 1) * (s_dev / sqrt(n_val))

# Prenta niðurstöðu
cat(round(medaltal - villa, 2), "< μ <", round(medaltal + villa, 2))
## 17.91 < μ < 21.99
# Liður 4: Morgunmatur og ferðatími

# 1. Tilgreina tilgátur
cat("Tilgátur:\n")
## Tilgátur:
cat("H0: Meðalferðatími er sá sami óháð morgunmat (mu_já = mu_nei)\n")
## H0: Meðalferðatími er sá sami óháð morgunmat (mu_já = mu_nei)
cat("H1: Meðalferðatími er mismunandi eftir morgunmat (mu_já != mu_nei)\n\n")
## H1: Meðalferðatími er mismunandi eftir morgunmat (mu_já != mu_nei)
# 2. Framkvæma prófið
morgun_col <- names(urtak)[grep("morgun", names(urtak), ignore.case = TRUE)[1]]
t_res <- t.test(urtak[[nafn]] ~ urtak[[morgun_col]])

# 3. Prenta niðurstöður á skýran hátt
cat("Gildi á prófstærð (t):", round(t_res$statistic, 3), "\n")
## Gildi á prófstærð (t): -0.006
cat("p-gildi:", round(t_res$p.value, 4), "\n\n")
## p-gildi: 0.9952
# 4. Ályktun
if(t_res$p.value < 0.05) {
  cat("Ályktun: Þar sem p-gildi er minna en 0.05, höfnum við núlltilgátunni.\n")
  cat("Því er marktækur munur á meðalferðatíma hópanna.")
} else {
  cat("Ályktun: Þar sem p-gildi er stærra en 0.05, getum við ekki hafnað núlltilgátunni.\n")
  cat("Því mælist ekki marktækur munur á meðalferðatíma hópanna.")
}
## Ályktun: Þar sem p-gildi er stærra en 0.05, getum við ekki hafnað núlltilgátunni.
## Því mælist ekki marktækur munur á meðalferðatíma hópanna.
# Finnum dálkinn fyrir ferðamáta
mata_col <- names(urtak)[grep("ferdamati", names(urtak), ignore.case = TRUE)[1]]

# Liður 5: Hreinsum gögnin
urtak_siad <- urtak %>%
  rename(ferdatimi = all_of(nafn), ferdamati = all_of(mata_col)) %>%
  filter(!is.na(ferdatimi), !is.na(ferdamati)) %>%
  group_by(ferdamati) %>%
  filter(n() >= 10) %>%
  ungroup()

# Liður 6: Teiknum
ggplot(urtak_siad, aes(x = ferdamati, y = ferdatimi, fill = ferdamati)) +
  geom_boxplot() +
  labs(title = "Ferðatími eftir ferðamáta", y = "Mínútur", x = "Ferðamáti") +
  theme_minimal()

# Liður 7: Bartlett próf

b_res <- bartlett.test(ferdatimi ~ ferdamati, data = urtak_siad)

# Prenta niðurstöður
cat("Tilgátur fyrir dreifni:\n")
## Tilgátur fyrir dreifni:
cat("H0: Dreifni ferðatíma er sú sama í öllum hópum\n")
## H0: Dreifni ferðatíma er sú sama í öllum hópum
cat("H1: Dreifni er mismunandi í að minnsta kosti einum hópi\n\n")
## H1: Dreifni er mismunandi í að minnsta kosti einum hópi
cat("p-gildi Bartlett prófs:", round(b_res$p.value, 4), "\n")
## p-gildi Bartlett prófs: 0
# Ályktun
if(b_res$p.value < 0.05) {
  cat("Ályktun: Þar sem p-gildi er < 0.05, höfnum við H0. Dreifni er marktækt mismunandi.")
} else {
  cat("Ályktun: Þar sem p-gildi er > 0.05, getum við ekki hafnað H0. Við gerum ráð fyrir jafnri dreifni.")
}
## Ályktun: Þar sem p-gildi er < 0.05, höfnum við H0. Dreifni er marktækt mismunandi.
# Liður 8: Fervikagreiningu

# Framkvæma ANOVA
anova_res <- aov(ferdatimi ~ ferdamati, data = urtak_siad)
res_summary <- summary(anova_res)[[1]]

# Ná í gildi úr ANOVA töflunni
f_gildi <- res_summary$`F value`[1]
p_gildi <- res_summary$`Pr(>F)`[1]

# Prenta niðurstöður
cat("Fervikagreining (ANOVA):\n")
## Fervikagreining (ANOVA):
cat("Gildi á prófstærð (F):", round(f_gildi, 3), "\n")
## Gildi á prófstærð (F): 48.588
cat("p-gildi:", round(p_gildi, 4), "\n\n")
## p-gildi: 0
# Ályktun
if(p_gildi < 0.05) {
  cat("Ályktun: Þar sem p < 0.05, höfnum við H0. Það er marktækur munur á meðalferðatíma eftir ferðamáta.")
} else {
  cat("Ályktun: Þar sem p > 0.05, getum við ekki hafnað H0. Ekki mælist marktækur munur á meðalferðatíma.")
}
## Ályktun: Þar sem p < 0.05, höfnum við H0. Það er marktækur munur á meðalferðatíma eftir ferðamáta.
#Liður 9: Eftirápróf

# Tukey eftirápróf
tukey_res <- TukeyHSD(anova_res)

# Prenta niðurstöður
cat("Tukey HSD eftirápróf:\n")
## Tukey HSD eftirápróf:
print(tukey_res)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = ferdatimi ~ ferdamati, data = urtak_siad)
## 
## $ferdamati
##                                       diff       lwr      upr p adj
## Með einkabíl-Gangandi / skokkandi 12.04872  6.788506 17.30893 6e-07
## Með strætó-Gangandi / skokkandi   30.70833 23.348112 38.06855 0e+00
## Með strætó-Með einkabíl           18.65962 12.454424 24.86481 0e+00
# Teikna myndrænt
plot(tukey_res, las = 1)