Bajo el capó del particionamiento recursivo basado en modelos
Una de las mayores contrariedades de estar sentado cerca de alguien que es más matemático que un servidor (de Vds., no de silicio) es que oye siempre preguntar por qué. Una letanía de preguntas me condujo a leer papelotes que ahora resumo.
Primero, unos datos:
set.seed(1234)
n <- 100
x1 <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
y <- 0.3 + 0.2 * x1 + 0.5 * (x2 > 0) + 0.2 * rnorm(n)
Luego, un modelo:
modelo <- lm(y ~ x1)
summary(modelo)
# Call:
# lm(formula = y ~ x1)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.9403 -0.2621 0.0420 0.2299 0.6877
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.55632 0.03364 16.538 < 2e-16 ***
# x1 0.21876 0.03325 6.579 2.34e-09 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.3323 on 98 degrees of freedom
# Multiple R-squared: 0.3063, Adjusted R-squared: 0.2992
# F-statistic: 43.28 on 1 and 98 DF, p-value: 2.341e-09
Pocos que no entiendan cómo se han generado los datos advertirían lo malo de su especificación: hemos omitido una variable explicativa cuyo efecto ha ido a incrementar el error de manera que los tests habituales de bondad de ajuste no advierten.