1. Introducció

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.

2. Hipòtesis

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.

3. Mètodes i procediment

L’anàlisi estadística s’ha desenvolupat seguint un procediment estructurat:

  1. Preparació de les dades
    • Selecció de les variables rellevants per a l’estudi.
    • Correcció de valors categòrics inconsistents en la variable Motiu.
    • Verificació de l’absència de valors perduts en les variables analitzades.
  2. Anàlisi descriptiva
    • Càlcul d’estadístiques resum (mitjana, mediana, desviació estàndard).
    • Representacions gràfiques bàsiques (barplots, scatterplots i boxplots).
  3. Modelització estadística
    • Ajust d’un model de regressió lineal del preu en funció dels quilòmetres.
    • Transformació logarítmica de les variables quantitatives per millorar l’ajust.
    • Comparació de tres models:
      • Preu ~ Quilòmetres
      • Preu ~ Quilòmetres + Motiu
      • Preu ~ Quilòmetres + Motiu + Interacció
  4. Validació del model
    • Normalitat dels residus (test de Shapiro-Wilk).
    • Homoscedasticitat (test de Breusch-Pagan).
    • Comparació de models mitjançant ANOVA.
  5. Estimació d’incertesa
    • Càlcul d’intervals de confiança mitjançant bootstrap, teorema del límit central i t-Student.

4. Importació de les dades

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

5. Dimensions del dataset

 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…

6. Diccionari de variables

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"

7. Estadístiques descriptives

 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

8. Primeres gràfiques

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

9. Millora de les gràfiques i les seves interpretacions

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.

10. Variables externes i dades addicionals

11. Conclusió:

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.

12. Relació amb la pregunta d’estudi inicial:

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.

13. Limitacions de l’anàlisi:

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.

14. Possibles anàlisi futures o extensions de l’estudi:

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.