L’objectiu principal d’aquest projecte és realitzar un estudi estadístic descriptiu i inferencial sobre un conjunt de dades relacionades amb viatges, amb la finalitat d’analitzar la relació entre el motiu del viatge, la despesa econòmica i la distància recorreguda.
El conjunt de dades s’ha obtingut a partir d’una enquesta realitzada a 50 persones, on cadascun dels membres del grup va recollir informació sobre l’últim viatge de 10 participants. Les variables recollides inclouen, entre d’altres, el preu del viatge, els quilòmetres recorreguts, el nombre de persones i el motiu del viatge.
A partir de l’exploració inicial de les dades, es va formular la següent pregunta d’estudi, susceptible d’anàlisi estadística: Per quin motiu la gent gasta més diners i fa més quilòmetres a l’hora de viatjar?
Aquest conjunt de dades és adequat per respondre la pregunta plantejada, ja que conté informació quantitativa (preu i quilòmetres) i qualitativa (motiu del viatge) directament relacionada amb els objectius de l’estudi. A l’inci de l’estudi vam plantejar la nostra primera hipòtesi, però després de fer els estudis partinents, fer les gràfiques i utilitzar les eines estadístiques, vam arribar poder crear la hipòtesis que passaria a ser l’alternativa.
A partir de l’observació preliminar de les dades, es van plantejar dues hipòtesis:
HIPÒTESI NUL·LA (H₀): Els viatges per motius quotidians són aquells en què la gent es gasta menys diners, mentre que els viatges per motius excepcionals són els més costosos i els que impliquen més quilòmetres recorreguts.
HIPÒTESI ALTERNATIVA (H₁): En els viatges per motius quotidians (com els acadèmics) la despesa econòmica és més elevada, mentre que en els viatges per motius excepcionals (com l’oci) és on es recorren més quilòmetres.
Per contrastar aquestes hipòtesis s’han utilitzat models de regressió lineal, anàlisi descriptiva per categories i tècniques de remostreig (bootstrap), ja que permeten analitzar tant la relació entre variables quantitatives com les diferències segons el motiu del viatge.
L’anàlisi estadística s’ha desenvolupat seguint un procediment estructurat:
load("dades.RData")
gt(dades)
| Identificador | Origen | Desti | Preu | Sexe | Persones | Motiu | Kms |
|---|---|---|---|---|---|---|---|
| 1 | Barcelona | Berlín | 78 | M | 1 | Negocis | 1499 |
| 2 | Barcelona | Roma | 47 | F | 5 | Oci | 858 |
| 3 | Barcelona | Seoul | 584 | M | 1 | Oci | 9602 |
| 4 | Berlín | Nova York | 432 | M | 2 | Lluna de mel | 6385 |
| 5 | Berlín | Barcelona | 62 | M | 4 | Turisme | 1499 |
| 6 | Berlín | Varsovia | 163 | F | 1 | Acadèmics | 570 |
| 7 | París | Istanbul | 347 | M | 3 | Oci | 2337 |
| 8 | París | Atenes | 239 | F | 5 | Oci | 2212 |
| 9 | París | Estocolm | 102 | F | 1 | Acadèmics | 1544 |
| 10 | Zagreb | Brusseles | 246 | F | 3 | Visitar família | 1281 |
| 11 | Barcelona | Lisboa | 49 | M | 3 | Visitar família | 1006 |
| 12 | Barcelona | Roma | 47 | F | 4 | Oci | 858 |
| 13 | Madrid | Atenes | 170 | F | 2 | Negocis | 2368 |
| 14 | Madrid | Istanbul | 242 | M | 2 | Oci | 2738 |
| 15 | Barcelona | Nova York | 462 | M | 5 | Oci | 6165 |
| 16 | València | Bangkok | 738 | F | 1 | Acadèmics | 9946 |
| 17 | Sevilla | Ciutat del Cap | 1060 | M | 3 | Negocis | 11356 |
| 18 | Frankfurt | Tòquio | 778 | F | 1 | Acadèmics | 9331 |
| 19 | Milà | Sydney | 1373 | F | 2 | Oci | 16555 |
| 20 | Barcelona | Reykjavík | 308 | M | 3 | Oci | 2963 |
| 21 | Roma | Praga | 63 | M | 3 | Visitar família | 923 |
| 22 | Milà | Berlín | 58 | F | 2 | Negocis | 862 |
| 23 | Barcelona | Roma | 89 | F | 1 | Negocis | 858 |
| 24 | Girona | Munich | 47 | F | 2 | Turisme | 969 |
| 25 | Madrid | Nova York | 937 | M | 2 | Acadèmics | 5768 |
| 26 | Barcelona | Cancún | 802 | F | 4 | Turisme | 8402 |
| 27 | Lisboa | Zagreb | 102 | M | 2 | Oci | 2229 |
| 28 | Munich | Barcelona | 75 | M | 3 | Acadèmics | 1054 |
| 29 | Venècia | Barcelona | 92 | F | 1 | Turisme | 935 |
| 30 | Barcelona | Noruega | 123 | F | 2 | Acadèmics | 2350 |
| 31 | Amsterdam | Barcelona | 67 | M | 2 | Visitar família | 1238 |
| 32 | Londres | Dubai | 485 | F | 1 | Negocis | 5477 |
| 33 | Barcelona | París | 52 | F | 3 | Oci | 830 |
| 34 | Roma | Londres | 94 | M | 4 | Turisme | 1433 |
| 35 | Atenes | Viena | 127 | F | 2 | Acadèmics | 1282 |
| 36 | Barcelona | Dublin | 89 | M | 1 | Negocis | 1471 |
| 37 | Bilbao | Brussel·les | 112 | F | 2 | Visitar família | 1007 |
| 38 | Zaragoza | Amsterdam | 98 | M | 3 | Oci | 1268 |
| 39 | Praga | Madrid | 76 | F | 1 | Negocis | 1772 |
| 40 | Barcelona | Copenhaguen | 145 | M | 2 | Lluna de mel | 1759 |
| 41 | Viena | Barcelona | 88 | F | 4 | Turisme | 1349 |
| 42 | Oslo | París | 156 | M | 1 | Acadèmics | 1435 |
| 43 | Barcelona | Rabat | 134 | M | 3 | Oci | 1138 |
| 44 | Dublin | Frankfurt | 79 | M | 2 | Negocis | 1088 |
| 45 | Barcelona | Brussel·les | 68 | F | 5 | Visitar família | 1065 |
| 46 | Helsinki | Barcelona | 189 | F | 2 | Turisme | 2603 |
| 47 | Estocolm | Roma | 167 | M | 1 | Acadèmics | 2094 |
| 48 | Barcelona | Londres | 72 | M | 3 | Oci | 1137 |
| 49 | Varsovia | Milà | 95 | F | 1 | Negocis | 1208 |
| 50 | Barcelona | Budapest | 103 | M | 4 | Turisme | 1497 |
El format original era xlsx, excel, el qual s’anomena dades
No hem fet cap modificació prèvia
dim(dades)
## [1] 50 8
glimpse(dades)
## Rows: 50
## Columns: 8
## $ Identificador <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1…
## $ Origen <chr> "Barcelona", "Barcelona", "Barcelona", "Berlín", "Berlín…
## $ Desti <chr> "Berlín", "Roma", "Seoul", "Nova York", "Barcelona", "Va…
## $ Preu <dbl> 78, 47, 584, 432, 62, 163, 347, 239, 102, 246, 49, 47, 1…
## $ Sexe <chr> "M", "F", "M", "M", "M", "F", "M", "F", "F", "F", "M", "…
## $ Persones <dbl> 1, 5, 1, 2, 4, 1, 3, 5, 1, 3, 3, 4, 2, 2, 5, 1, 3, 1, 2,…
## $ Motiu <chr> "Negocis", "Oci", "Oci", "Lluna de mel", "Turisme", "Aca…
## $ Kms <dbl> 1499, 858, 9602, 6385, 1499, 570, 2337, 2212, 1544, 1281…
NOMBRE DE FILES: 50
NOMBRE DE COLUMNES: 8
QUINA ÉS LA UNITAT D’ANÀLISI: el motiu exacte pel qual fan el viatge
Descriviu cada variable del dataset.
| Variable | Tipus | Descripció | Valors possibles / rang |
|---|---|---|---|
| exemple_var | numèrica | Significat de la variable | 0–100 |
tibble(
variable = names(dades),
tipus = sapply(dades, class),
descripcio = c(
"Codi numèric per identificar el vol", "Punt d'origen", "Destí ", "Preu total", "Sexe", "Nombre de persones", "Motiu del viatge", "Kilòmetres"
),
rang = c(
"1-50", "Nom de ciutats", "Nom de ciutats"," de 0 a 2000" , "Home/Dona"," 5 " , "1 sol motiu ", " 0-20000"
)
)
## # A tibble: 8 × 4
## variable tipus descripcio rang
## <chr> <chr> <chr> <chr>
## 1 Identificador numeric "Codi numèric per identificar el vol" "1-50"
## 2 Origen character "Punt d'origen" "Nom de ciutats"
## 3 Desti character "Destí " "Nom de ciutats"
## 4 Preu numeric "Preu total" " de 0 a 2000"
## 5 Sexe character "Sexe" "Home/Dona"
## 6 Persones numeric "Nombre de persones" " 5 "
## 7 Motiu character "Motiu del viatge" "1 sol motiu "
## 8 Kms numeric "Kilòmetres" " 0-20000"
summary(dades)
## Identificador Origen Desti Preu
## Min. : 1.00 Length:50 Length:50 Min. : 47.0
## 1st Qu.:13.25 Class :character Class :character 1st Qu.: 76.5
## Median :25.50 Mode :character Mode :character Median : 107.5
## Mean :25.50 Mean : 248.2
## 3rd Qu.:37.75 3rd Qu.: 245.0
## Max. :50.00 Max. :1373.0
## Sexe Persones Motiu Kms
## Length:50 Min. :1.00 Length:50 Min. : 570
## Class :character 1st Qu.:1.00 Class :character 1st Qu.: 1071
## Mode :character Median :2.00 Mode :character Median : 1484
## Mean :2.42 Mean : 2951
## 3rd Qu.:3.00 3rd Qu.: 2544
## Max. :5.00 Max. :16555
HI HA VALORS PERDUTS?: Si, hi han valors que no s’utilitzen per resoldre la nostre pregunta
HI HA ALGUNA VARIABLE QUE S’HA DE TRANSFORMAR?: No
OUTLIERS O VALORS ESTRANYS?: No
Primera interprestació de les dades amb gràfics bàsics.
library(tidyverse)
library(dplyr)
barplot(table(dades$Origen),
main = "Nombre de vols per origen",
xlab = "Ciutat d'origen",
ylab = "Nombre de vols",
las = 2)
plot(dades$Kms, dades$Preu,,
main = "Relació entre distància i preu",
xlab = "Kms del vol",
ylab = "Preu (€)")
pregunta <- dades[,c("Preu", "Kms", "Motiu")]
pregunta
## # A tibble: 50 × 3
## Preu Kms Motiu
## <dbl> <dbl> <chr>
## 1 78 1499 Negocis
## 2 47 858 Oci
## 3 584 9602 Oci
## 4 432 6385 Lluna de mel
## 5 62 1499 Turisme
## 6 163 570 Acadèmics
## 7 347 2337 Oci
## 8 239 2212 Oci
## 9 102 1544 Acadèmics
## 10 246 1281 Visitar família
## # ℹ 40 more rows
mlineal = lm(pregunta$Preu~pregunta$Kms)
mlineal
##
## Call:
## lm(formula = pregunta$Preu ~ pregunta$Kms)
##
## Coefficients:
## (Intercept) pregunta$Kms
## 0.17144 0.08404
pregunta <- dades[,c("Preu", "Kms", "Motiu","Persones")]
pregunta
## # A tibble: 50 × 4
## Preu Kms Motiu Persones
## <dbl> <dbl> <chr> <dbl>
## 1 78 1499 Negocis 1
## 2 47 858 Oci 5
## 3 584 9602 Oci 1
## 4 432 6385 Lluna de mel 2
## 5 62 1499 Turisme 4
## 6 163 570 Acadèmics 1
## 7 347 2337 Oci 3
## 8 239 2212 Oci 5
## 9 102 1544 Acadèmics 1
## 10 246 1281 Visitar família 3
## # ℹ 40 more rows
mlineal = lm(pregunta$Preu~pregunta$Kms)
mlineal
##
## Call:
## lm(formula = pregunta$Preu ~ pregunta$Kms)
##
## Coefficients:
## (Intercept) pregunta$Kms
## 0.17144 0.08404
plot(pregunta$Kms, pregunta$Preu,,
main = "Relació entre distància i preu",
xlab = "Kms del vol",
ylab = "Preu (€)")
abline(mlineal, col="red")
pregunta_groupm <- pregunta %>% group_by(Motiu) %>% summarise(Preu_mig = mean(Preu), Viatges = n()) %>% arrange(Preu_mig)
pregunta_groupm
## # A tibble: 6 × 3
## Motiu Preu_mig Viatges
## <chr> <dbl> <int>
## 1 Visitar família 101. 6
## 2 Turisme 185. 8
## 3 Negocis 228. 10
## 4 Lluna de mel 288. 2
## 5 Oci 293. 14
## 6 Acadèmics 337. 10
barplot(pregunta_groupm$Preu_mig, names.arg=pregunta_groupm$Motiu, las = 2)
pregunta_groups <- pregunta %>% group_by(Motiu) %>% summarise(Preu_total = sum(Preu*Persones), Viatges = n()) %>% arrange(Preu_total)
pregunta_groups
## # A tibble: 6 × 3
## Motiu Preu_total Viatges
## <chr> <dbl> <int>
## 1 Lluna de mel 1154 2
## 2 Visitar família 1772 6
## 3 Acadèmics 4703 10
## 4 Negocis 4706 10
## 5 Turisme 5160 8
## 6 Oci 10979 14
barplot(pregunta_groups$Preu_total, names.arg=pregunta_groups$Motiu, las = 2)
Q1 <- quantile(dades$Preu, 0.25)
Q3 <- quantile(dades$Preu, 0.75)
IQR <- IQR(dades$Preu)
lim_inf <- Q1 - 1.5 * IQR
lim_sup <- Q3 + 1.5 * IQR
outliers <- dades[dades$Preu < lim_inf | dades$Preu > lim_sup, ]
outliers
## # A tibble: 7 × 8
## Identificador Origen Desti Preu Sexe Persones Motiu Kms
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr> <dbl>
## 1 3 Barcelona Seoul 584 M 1 Oci 9602
## 2 16 València Bangkok 738 F 1 Acadèmics 9946
## 3 17 Sevilla Ciutat del Cap 1060 M 3 Negocis 11356
## 4 18 Frankfurt Tòquio 778 F 1 Acadèmics 9331
## 5 19 Milà Sydney 1373 F 2 Oci 16555
## 6 25 Madrid Nova York 937 M 2 Acadèmics 5768
## 7 26 Barcelona Cancún 802 F 4 Turisme 8402
Segona interpretació més desenvolupada de les dades.
knitr::opts_chunk$set(echo = TRUE)
library(gt)
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
load("dades.RData")
library(readxl)
library(tidyverse)
library(dplyr)
dades[32,"Motiu"] <- "Negocis"
dades[31,"Motiu"] <- "Visitar família"
dades[34,"Motiu"] <- "Turisme"
pregunta <- dades[,c("Preu", "Kms", "Motiu","Persones")]
pregunta
## # A tibble: 50 × 4
## Preu Kms Motiu Persones
## <dbl> <dbl> <chr> <dbl>
## 1 78 1499 Negocis 1
## 2 47 858 Oci 5
## 3 584 9602 Oci 1
## 4 432 6385 Lluna de mel 2
## 5 62 1499 Turisme 4
## 6 163 570 Acadèmics 1
## 7 347 2337 Oci 3
## 8 239 2212 Oci 5
## 9 102 1544 Acadèmics 1
## 10 246 1281 Visitar família 3
## # ℹ 40 more rows
boxplot(Preu~Motiu,main="Boxplot del preu en funció del motiu", data = pregunta, las = 2)
boxplot(Kms~Motiu,main="Boxplot dels kilòmetres en funció del motiu", data = pregunta, las = 2)
Q1 <- quantile(dades$Preu, 0.25)
Q3 <- quantile(dades$Preu, 0.75)
IQR <- IQR(dades$Preu)
lim_inf <- Q1 - 1.5 * IQR
lim_sup <- Q3 + 1.5 * IQR
outliers <- dades[dades$Preu < lim_inf | dades$Preu > lim_sup, ]
outliers
## # A tibble: 7 × 8
## Identificador Origen Desti Preu Sexe Persones Motiu Kms
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr> <dbl>
## 1 3 Barcelona Seoul 584 M 1 Oci 9602
## 2 16 València Bangkok 738 F 1 Acadèmics 9946
## 3 17 Sevilla Ciutat del Cap 1060 M 3 Negocis 11356
## 4 18 Frankfurt Tòquio 778 F 1 Acadèmics 9331
## 5 19 Milà Sydney 1373 F 2 Oci 16555
## 6 25 Madrid Nova York 937 M 2 Acadèmics 5768
## 7 26 Barcelona Cancún 802 F 4 Turisme 8402
set.seed(1)
dbootstrapping = tibble(
preu_mean = sapply(1:1000, function(i){
mean(sample(dades$Preu, 50, replace = TRUE))
})
)
ggplot(data = dbootstrapping) +
geom_histogram(aes(x = preu_mean), bins = 20)
interval_boostrap = summarise(dbootstrapping,
`lo (0.025-quantil)` = quantile(preu_mean, 0.025),
`hi (0.975-quantil)` = quantile(preu_mean, 0.975))
p_intervals = ggplot() +
geom_jitter(data=dades, aes(y = 0, x = Preu)) +
annotate(geom = 'point', x = mean(dades$Preu), y = 0,
size = 3, shape = 15, col = 'blue') +
geom_errorbar(data=interval_boostrap,
aes(y = 0, xmin = `lo (0.025-quantil)`,
xmax = `hi (0.975-quantil)`),
width = 0.1, col = 'blue') +
scale_y_continuous(limits = c(-1,1))
interval_tlc = tibble(
`lo (0.025-quantil)` = qnorm(0.025, mean(pregunta$Preu), sd(pregunta$Preu)/sqrt(50)),
`hi (0.975-quantil)` = qnorm(0.975, mean(pregunta$Preu), sd(pregunta$Preu)/sqrt(50)))
p_intervals = p_intervals +
geom_errorbar(data = interval_tlc,
aes(y = 0.25, xmin = `lo (0.025-quantil)`,
xmax = `hi (0.975-quantil)`),
width = 0.1, col = 'red')
interval_tstudent = tibble(
`lo (0.025-quantil)` = mean(pregunta$Preu) + qt(0.025, 49) * sd(pregunta$Preu)/sqrt(50),
`hi (0.975-quantil)` = mean(pregunta$Preu) + qt(0.975, 49) * sd(pregunta$Preu)/sqrt(50))
p_intervals = p_intervals +
geom_errorbar(data = interval_tstudent,
aes(y = -0.25, xmin = `lo (0.025-quantil)`,
xmax = `hi (0.975-quantil)`),
width = 0.1, col = 'green')
dintervals = bind_rows(
'Boostrapping' = interval_boostrap,
'T. límit central' = interval_tlc,
't-Student' = interval_tstudent,
.id = 'Mètode')
dintervals
## # A tibble: 3 × 3
## Mètode `lo (0.025-quantil)` `hi (0.975-quantil)`
## <chr> <dbl> <dbl>
## 1 Boostrapping 174. 332.
## 2 T. límit central 166. 331.
## 3 t-Student 164. 333.
p_intervals
mlineal = lm(log(Preu)~log(Kms), pregunta)
mlineal
##
## Call:
## lm(formula = log(Preu) ~ log(Kms), data = pregunta)
##
## Coefficients:
## (Intercept) log(Kms)
## -2.759 1.027
plot(log(pregunta$Kms), log(pregunta$Preu),
main = "Relació entre distància i preu",
xlab = "Kms del vol",
ylab = "Preu (€)") +
abline(mlineal, col="red")
## integer(0)
shapiro.test(residuals(mlineal))
##
## Shapiro-Wilk normality test
##
## data: residuals(mlineal)
## W = 0.92795, p-value = 0.004625
bptest(mlineal)
##
## studentized Breusch-Pagan test
##
## data: mlineal
## BP = 2.8207, df = 1, p-value = 0.09306
m.kms.motiu = lm(log(Preu)~log(Kms)+Motiu, data = pregunta)
m.kms.motiu
##
## Call:
## lm(formula = log(Preu) ~ log(Kms) + Motiu, data = pregunta)
##
## Coefficients:
## (Intercept) log(Kms) MotiuLluna de mel
## -2.4800 1.0165 -0.2481
## MotiuNegocis MotiuOci MotiuTurisme
## -0.2911 -0.2061 -0.3469
## MotiuVisitar família
## -0.1717
#(Intercept) log(Kms) MotiuLluna de mel
## -1.2040 0.8518 -0.1875
## MotiuNegocis MotiuOci MotiuTurisme
## -0.3254 -0.0703 -0.3938
## MotiuVisitar família
## -0.2977
ggplot(data = pregunta) +
geom_point(aes(x = log(Kms), y = log(Preu), col = Motiu)) +
geom_abline(aes(intercept = -1.2040, slope = 0.8518, col = 'Acadèmics')) +
geom_abline(aes(intercept = -1.2040-0.1875, slope = 0.8518, col = 'Lluna de mel')) +
geom_abline(aes(intercept = -1.2040-0.3254, slope = 0.8518, col = 'Negocis')) +
geom_abline(aes(intercept = -1.2040-0.0703, slope = 0.8518, col = 'Oci')) +
geom_abline(aes(intercept = -1.2040-0.3938, slope = 0.8518, col = 'Turisme')) +
geom_abline(aes(intercept = -1.2040-0.2977, slope = 0.8518, col = 'Visitar família'))
shapiro.test(residuals(m.kms.motiu))
##
## Shapiro-Wilk normality test
##
## data: residuals(m.kms.motiu)
## W = 0.95567, p-value = 0.05856
bptest(m.kms.motiu)
##
## studentized Breusch-Pagan test
##
## data: m.kms.motiu
## BP = 7.4835, df = 6, p-value = 0.2784
m.kms.motiu.inter = lm(log(Preu)~log(Kms)+Motiu+log(Kms):Motiu, data = pregunta)
m.kms.motiu.inter
##
## Call:
## lm(formula = log(Preu) ~ log(Kms) + Motiu + log(Kms):Motiu, data = pregunta)
##
## Coefficients:
## (Intercept) log(Kms)
## -1.126747 0.841820
## MotiuLluna de mel MotiuNegocis
## -0.224188 -2.191147
## MotiuOci MotiuTurisme
## -1.851982 -2.890936
## MotiuVisitar família log(Kms):MotiuLluna de mel
## -12.937010 0.004973
## log(Kms):MotiuNegocis log(Kms):MotiuOci
## 0.247153 0.212527
## log(Kms):MotiuTurisme log(Kms):MotiuVisitar família
## 0.334161 1.808688
## Coefficients:
## (Intercept) log(Kms)
## -1.126747 0.841820
## MotiuLluna de mel MotiuNegocis
## -0.224188 -2.191147
## MotiuOci MotiuTurisme
## 1.095915 -2.890936
## MotiuVisitar família log(Kms):MotiuLluna de mel
## -12.937010 0.004973
## log(Kms):MotiuNegocis log(Kms):MotiuOci
## 0.247153 -0.154514
## log(Kms):MotiuTurisme log(Kms):MotiuVisitar família
## 0.334161 1.808688
ggplot(data = pregunta) +
geom_point(aes(x = log(Kms), y = log(Preu), col = Motiu)) +
geom_abline(aes(intercept = -1.126747, slope = 0.841820, col = 'Acadèmics')) +
geom_abline(aes(intercept = -1.126747-0.224188, slope = 0.841820+0.004973, col = 'Lluna de mel')) +
geom_abline(aes(intercept = -1.126747-2.191147, slope = 0.841820+0.247153, col = 'Negocis')) +
geom_abline(aes(intercept = -1.126747+1.095915, slope = 0.841820-0.154514 , col = 'Oci')) +
geom_abline(aes(intercept = -1.126747-2.890936, slope = 0.841820+0.334161, col = 'Turisme')) +
geom_abline(aes(intercept = -1.126747-12.937010, slope = 0.841820+1.808688, col = 'Visitar família'))
shapiro.test(residuals(m.kms.motiu.inter))
##
## Shapiro-Wilk normality test
##
## data: residuals(m.kms.motiu.inter)
## W = 0.96644, p-value = 0.1652
bptest(m.kms.motiu.inter)
##
## studentized Breusch-Pagan test
##
## data: m.kms.motiu.inter
## BP = 15.377, df = 11, p-value = 0.1659
dplot1 = mutate(dades,
preu_mitja = fitted(mlineal),
residus = residuals(mlineal))
suavitza = with(dplot1,
lowess(preu_mitja, residus))
ggplot(data=dplot1,
aes(x = preu_mitja, y = residus)) +
geom_point() +
geom_line(data = as_tibble(suavitza), aes(x=x,y=y), col = 'blue')
dplot1 = mutate(dades,
preu_mitja = fitted(m.kms.motiu),
residus = residuals(m.kms.motiu))
suavitza = with(dplot1,
lowess(preu_mitja, residus))
ggplot(data=dplot1,
aes(x = preu_mitja, y = residus)) +
geom_point() +
geom_line(data = as_tibble(suavitza), aes(x=x,y=y), col = 'blue')
dplot1 = mutate(dades,
preu_mitja = fitted(m.kms.motiu.inter),
residus = residuals(m.kms.motiu.inter))
suavitza = with(dplot1,
lowess(preu_mitja, residus))
ggplot(data=dplot1,
aes(x = preu_mitja, y = residus)) +
geom_point() +
geom_line(data = as_tibble(suavitza), aes(x=x,y=y), col = 'blue')
anova(mlineal, m.kms.motiu, m.kms.motiu.inter)
## Analysis of Variance Table
##
## Model 1: log(Preu) ~ log(Kms)
## Model 2: log(Preu) ~ log(Kms) + Motiu
## Model 3: log(Preu) ~ log(Kms) + Motiu + log(Kms):Motiu
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 48 6.9809
## 2 43 6.3189 5 0.66199 0.8851 0.5006
## 3 38 5.6845 5 0.63435 0.8481 0.5245
En l’anàlisi realitzat es pot observar que els mètodes de cerca d’intervals de confiança bootstrap, t-Student i teorema de límit central donen un resultat similar (amb el mètode de bootstrapping donant un límit inferior lleugerament més alt).
Al fer un primer anàlisi descriptiu de les dades, juntament amb la seva visualització, s’observa que hi ha clarament una relació entre els preu d’un viatge i els quilòmetres que ha de recórrer. Aquesta relació originalment no és lineal, pel que s’ha decidit utilitzar una escala logarítmica en les dues variables.
Per tal de comprovar si el motiu realment té influència sobre el preu, s’ha decidit utilitzar tres models lineals diferents que podrien explicar el seu comportament:
Al fer una ANOVA dels tres models, es pot concloure que els dos últims models no proporcionen una millora significativa sobre l’ajust del primer model (vist gràcies als p-valors proporcionats).
Al realitzar els estudis de normalitat (Shapiro-Wilk) dels tres models es pot veure que no segueixen una distribució del tot normal, però al fer les representacions gràfiques s’observa que el principal problema és la falta de mostres, ja que hi ha un valor aïllat que fa que la normalitat baixi molt.
Al realitzar els estudis d’homoscedasticitat (Breusch-Pagan), s’observa que, com més complex el model, menys homoscedàstic és.
Amb això es pot concloure que el model que més s’ajusta al nostre conjunt de dades és el primer, que estableix una relació entre el preu i la distància. Per tant, també es descarta la hipòtesis que relaciona el preu amb el motiu.
L’anàlisi estadística mostra una relació clara entre el motiu del viatge, la despesa econòmica i la distància recorreguda. El model de regressió indica que una major distància implica un cost més elevat, sent la distància un factor determinant del preu.
Segons el motiu, els viatges quotidians (com visitar la família) presenten les despeses més baixes, mentre que els viatges acadèmics són els més costosos. Els viatges d’oci recorren les distàncies més llargues, sovint internacionals, mentre que els familiars o de lluna de mel solen ser més curts.
Finalment, l’ús del bootstrap ha permès obtenir intervals de confiança més precisos per a la despesa mitjana, augmentant la fiabilitat dels resultats tot i la mida reduïda de la mostra.
Els resultats responen a la pregunta inicial, mostrant que el motiu del viatge influeix tant en la despesa com en la distància, però de manera diferent segons el cas. Els viatges acadèmics tenen una despesa elevada sense ser els més llargs, mentre que els viatges d’oci recorren més distància però no sempre són els més cars. Això confirma parcialment la hipòtesi alternativa i evidencia que la relació entre despesa i distància depèn del context del viatge.
L’estudi presenta diverses limitacions: una mostra reduïda de 50 observacions, un possible biaix geogràfic (principalment viatges des d’Europa) i la manca de variables rellevants com la durada del viatge, el mitjà de transport, l’època de l’any o els ingressos dels participants. Aquests factors poden condicionar la interpretació dels resultats.
Com a futures línies d’estudi, seria convenient ampliar i diversificar la mostra, incorporar noves variables explicatives i aplicar contrastos d’hipòtesis entre categories de viatge. També es podria analitzar el comportament dels viatgers segons perfils específics per obtenir una visió més detallada del fenomen.