La regressió és un conjunt de tècniques estadístiques que permeten modelitzar la relació entre una o més variables independents (o explicatives) i una variable dependent (o resposta).
En funció de quantes variables explicatives tenim i quin tipus de variable volem predir, podem distingir tres grans tipus de regressió:
regressió lineal simple: s’utilitza quan volem explicar o predir una variable quantitativa a partir d’una única variable predictora, també quantitativa, assumint que la relació entre elles és aproximadament lineal (una recta).
regressió lineal múltiple: és una extensió de la regressió lineal simple en què la variable dependent quantitativa s’explica a partir de dues o més variables predictives, també quantitatives.
regressió logística: s’utilitza quan la variable dependent no és quantitativa sinó categòrica.
En els següents apartats desenvoluparem les dues primeres categories (regressió lineal simple i múltiple).
Suposem que volem analitzar si la disponibilitat d’equipaments culturals (biblioteques, centres cívics, teatres, museus, etc.) en un municipi està relacionada amb l’assistència a activitats culturals.
Variable independent (X): Equipaments culturals per 10.000 habitants
Variable dependent (Y): Assistència anual a activitats culturals per 1.000 habitants
Intuitivament, podem pensar que, a més equipaments per habitant, més oportunitats i, per tant, més assistència a activitats culturals (tot i que també hi poden influir altres factors com renda, edat, turisme, programació, transport, etc.).
La taula mostra les dades de les dues variables per a una mostra de 10 municipis.
cultura <- data.frame(municipi = paste0("Municipi_", 1:10),
equipaments_per_10k = c(1.2, 0.8, 2.0, 1.5, 2.3, 0.6, 1.8, 2.6, 1.0, 2.1),
assistencia_per_1000 = c(45, 30, 70, 55, 80, 25, 65, 90, 35, 75))
cultura
La regressió lineal simple modelitza aquesta relació amb una equació del tipus:
\[ Y = a + \beta_1 X \]
On:
Per visualitzar la possible relació, una bona idea és representar les dades en un diagrama de dispersió.
plot(cultura$equipaments_per_10k, cultura$assistencia_per_1000,
xlab = "Equipaments culturals",
ylab = "Assistència a activitats culturals",
main = "Relació entre equipaments i assistència")
El model que volem ajustar és el següent:
\[ Assistència = a + \beta_1 \cdot Equipaments \]
Calculem el model amb R fent servir la funció lm.
Aquesta és una funció disponible en R base, no cal instal·lar cap paquet
addicional:
model_cultura <- lm(formula = assistencia_per_1000 ~ equipaments_per_10k,
data = cultura)
summary(model_cultura)
##
## Call:
## lm(formula = assistencia_per_1000 ~ equipaments_per_10k, data = cultura)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.3716 -0.6352 0.1673 0.9893 1.0331
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.1032 1.0446 3.928 0.00437 **
## equipaments_per_10k 33.2684 0.6093 54.598 1.4e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.235 on 8 degrees of freedom
## Multiple R-squared: 0.9973, Adjusted R-squared: 0.997
## F-statistic: 2981 on 1 and 8 DF, p-value: 1.405e-11
Com hem d’interpretar les dades anteriors? El coeficient associat a la variable equipaments_per_10k és positiu i estadísticament significatiu (β = 33.27; p < 0.001). Això indica que, de mitjana, un increment d’un equipament cultural per cada 10.000 habitants s’associa amb un augment aproximat de 33 persones per 1.000 habitants en l’assistència anual a activitats culturals. L’error estàndard del coeficient és reduït (0.61), la qual cosa indica una estimació molt precisa.
L’intercept del model (a = 4.10; p = 0.004) representa el nivell estimat d’assistència quan el nombre d’equipaments és zero. Tot i ser estadísticament significatiu, la seva interpretació substantiva és limitada, ja que aquest valor queda fora del rang habitual observat en les dades.
\[ Assistència = 4.1032 + 33.2684 \cdot Equipaments \]
Pel que fa a la qualitat de l’ajust, el model presenta un coeficient de determinació molt elevat (R² = 0.997), fet que indica que el 99,7% de la variabilitat observada en l’assistència és explicada pel nombre d’equipaments culturals.
En conjunt, els resultats mostren una associació lineal positiva molt forta entre la disponibilitat d’equipaments culturals i la participació cultural. No obstant això, cal interpretar aquests resultats amb prudència. En primer lloc, la mostra és reduïda (n = 10). En segon lloc, el model és bivariant i no controla altres factors potencialment rellevants, com ara el nivell de renda, la composició demogràfica o el capital cultural del municipi. Per tant, els resultats descriuen una relació estadística d’associació, però no permeten establir una relació causal.
Per visualitzar el model, tornem a representar les dades en un diagrama de dispersió afegint-hi la línia de tendència.
plot(cultura$equipaments_per_10k, cultura$assistencia_per_1000,
xlab = "Equipaments culturals",
ylab = "Assistència a activitats culturals",
main = "Relació entre equipaments i assistència")
abline(model_cultura, lwd = 2, col = "blue")
A partir del model, podem predir l’assistència a activitats culturals per 1000 habitants d’un nou municipi amb 1.7 equipaments per 10.000 habitants de la manera següent:
nou_municipi <- data.frame(equipaments_per_10k = 1.7)
predict(model_cultura, newdata = nou_municipi)
## 1
## 60.65953
Mitjançant la funció predict(), el model estima un
nivell d’assistència aproximat de 60,66 persones per cada 1.000
habitants.
A més dels equipaments culturals, afegirem una segona variable: la despesa pública cultural per habitant de cada municipi (euros anuals).
La taula mostra el dataset actualitzat.
cultura.act <- data.frame(municipi = paste0("M", 1:10),
equipaments_per_10k = c(1.2, 0.8, 2.0, 1.5, 2.3, 0.6, 1.8, 2.6, 1.0, 2.1),
despesa_cultural = c(85, 60, 120, 95, 130, 55, 110, 150, 70, 125),
assistencia_per_1000 = c(45, 30, 70, 55, 80, 25, 65, 90, 35, 75))
cultura.act
En aquest cas, el model prendrà la següent forma:
\[ Assistència = a + \beta_1 \cdot Equipaments + \beta_2 \cdot Despesa \]
Construim el model:
model_multiple <- lm(assistencia_per_1000 ~
equipaments_per_10k +
despesa_cultural,
data = cultura.act)
summary(model_multiple)
##
## Call:
## lm(formula = assistencia_per_1000 ~ equipaments_per_10k + despesa_cultural,
## data = cultura.act)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.8203 -0.5988 0.1987 0.7095 1.1950
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.6603 4.1505 -0.641 0.5420
## equipaments_per_10k 20.1908 7.8344 2.577 0.0366 *
## despesa_cultural 0.2756 0.1647 1.673 0.1382
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.116 on 7 degrees of freedom
## Multiple R-squared: 0.9981, Adjusted R-squared: 0.9975
## F-statistic: 1827 on 2 and 7 DF, p-value: 3.055e-10
El coeficient associat a equipaments_per_10k és positiu i estadísticament significatiu (β = 20.19; p = 0.0366). Això indica que, mantenint constant la despesa cultural, un increment d’un equipament cultural per cada 10.000 habitants s’associa amb un augment aproximat de 20 persones per 1.000 habitants en l’assistència anual.
Pel que fa a la despesa cultural per habitant, el coeficient estimat és positiu (β = 0.276), cosa que indica que, mantenint constant el nombre d’equipaments, cada euro addicional de despesa cultural s’associa amb un increment aproximat de 0,28 persones per 1.000 habitants en l’assistència. No obstant, aquest coeficient no és estadísticament significatiu al nivell convencional del 5% (p = 0.138), fet que implica que, amb aquesta mostra, no podem afirmar que la despesa tingui un efecte independent clar sobre l’assistència.
L’intercept (a = −2.66) tampoc no és estadísticament significatiu (p = 0.542) i no té una interpretació substantiva rellevant, ja que correspondria al nivell d’assistència quan ambdues variables explicatives prenen el valor zero, una situació que no és real.
El model presenta un coeficient de determinació molt elevat (R² = 0.99), fet que indica que el 99% de la variabilitat observada en l’assistència és explicada conjuntament per les dues variables incloses.
En conjunt, els resultats indiquen que la quantitat d’equipaments culturals manté un efecte positiu sobre la participació cultural fins i tot quan es controla la despesa pública. En canvi, la despesa cultural mostra una associació positiva però no significativa en presència de la variable d’equipaments. Això podria suggerir que la infraestructura cultural té un paper més estructural en l’explicació de l’assistència, o bé que existeix una certa correlació entre ambdues variables que dificulta la separació neta dels seus efectes en una mostra tan reduïda.
Acabarem amb un exemple de predicció corresponent a un nou municipi amb 1.7 equipaments per 10.000 habitants i 100 € de despesa cultural per habitant
nou_municipi <- data.frame(
equipaments_per_10k = 1.7,
despesa_cultural = 100
)
predict(model_multiple, newdata = nou_municipi)
## 1
## 59.22099
Això significa que el model prediu una assistència aproximada de 59,2 persones per cada 1.000 habitants en activitats culturals per a un municipi amb aquestes característiques. A diferència de la regressió simple, aquesta estimació té en compte simultàniament l’efecte de la infraestructura cultural i el nivell de despesa pública. Per tant, la predicció reflecteix l’efecte combinat d’ambdues variables, mantenint constant l’impacte de cadascuna mentre s’estima l’altra.
Una web de ressenyes de restaurants publica un conjunt de dades que inclou, per a 15 restaurants, la valoració de tres dimensions específiques (menjar, ambient i servei) així com la puntuació global atorgada pels clients. El dataset està disponible al Campus Virtual.
## menjar ambient servei puntuacio
## 1 85 82 89 78
## 2 80 90 80 85
## 3 83 86 83 85
## 4 70 96 75 72
## 5 68 80 78 75
## 6 65 70 56 54
## 7 64 68 61 62
## 8 72 95 72 73
## 9 69 70 78 70
## 10 75 80 75 77
## 11 75 70 75 74
## 12 72 90 78 76
## 13 81 72 78 80
## 14 71 91 71 71
## 15 67 86 78 64
Calcula la correlació entre cadascuna de les tres dimensions (menjar, ambient i servei) i la puntuació global, i determina quina d’elles presenta una associació més forta amb la valoració global.
A continuació, construeix un model de regressió lineal múltiple utilitzant la puntuació global com a variable dependent i les tres dimensions com a variables explicatives.
Fent servir el model estimat, calcula la puntuació global prevista per a un restaurant que obté les següents valoracions:
Menjar: 90
Ambient: 70
Servei: 80