lm(formula, data)
:formula
: expresión del tipo y ~ x
o y ~ x1 + x2 + ... + xp
que indica qué variable (y
) depende de cuáles (x
o bien x1
, x2
, etc.)data
: hoja de datos que contiene las columnas implicadas (o no poner nada si los datos están en vectores)$coefficients
: vector etiquetado con los parámetros \(\hat{\beta}_0\), \(\hat{\beta}_1\), etc.$fitted.values
: \(\hat{y}_i\), predicciones de \(Y\) para los datos de la muestra$residuals
: residuos en la muestra (\(y_i - \hat{y}_i\), observadas menos predichas)abline(obj)
, donde obj
es el objeto devuelto por lm()
predict(obj, newdata, interval)
:obj
: objeto devuelto por la función lm()
newdata
: hoja de datos que contiene columnas etiquetadas como se usan en la función lm()
. Por ejemplo, data.frame(x=5)
o bien data.frame(x1=5, x2=3)
interval
: por defecto no lo calcula. Poner confidence
(para el intervalo de confianza para la esperanza de \(Y\)) o bien prediction
(para el intervalo de confianza para la predicción de \(Y\))confint(obj, level)
:obj
: objeto devuelto por la función lm()
level
: nivel de confianzasummary(obj)
:obj
: el objeto devuelto por la función lm()
(Intercept)
, etc.), y una primera columna con la estimación, y la última con el \(p\)-valorsummary(obj)
:obj
: objeto devuelto por la función lm()
Multiple R-squared
: adecuado para la regresión linealAdjusted R-squared
: adecuado para la regresión múltipleplot(x)
:x
: objeto devuelto por la función lm()
Residuals versus Fitted
: Residuos en función de valores predichos. Si el modelo lineal es adecuado, se espera una nube de residuos con forma de banda horizontal, sin grandes diferencias de izquierda a derechaNormal Q-Q
: gráfica de cuantiles de los residuos respecto de los teóricos bajo normalidad. Si el modelo lineal es adecuado, se espera una nube de puntos ceñida a la diagonalProblema 1: Completa el código para realizar lo siguiente:
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# 1er apartado
set.seed(???) # poner semilla
xi = runif(500, 0, 3) # 500 muestreos de la X
ei = # 500 muestreos del error (normal)
yi = # valores de Y a partir de la fórmula del modelo
xx = data.frame(X=xi, Y=yi) # muestra conjunta (en hoja de datos)
# 2o apartado
recta = lm(formula=, data=) # pedir regresión
# 3er apartado
plot(???) # muestra en gráfica
abline(???) # recta de regresión
abline(a=???, b=???) # "verdadera" recta
# continuar con el resto
AQUÍ COMENTARIO SOBRE LA ADECUACIÓN DEL MODELO
Problema 2: Completa el código para realizar lo siguiente:
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# 1er apartado
set.seed(???) # poner semilla
xi = runif(500, 0, 3) # 500 muestreos de la X
ei = # 500 muestreos del error (uniforme)
yi = # valores de Y a partir de la fórmula del modelo
xx = data.frame(X=xi, Y=yi) # muestra conjunta (en hoja de datos)
# 2o apartado
recta = lm(formula=, data=) # pedir regresión
# 3er apartado
plot(???) # muestra en gráfica
abline(???) # recta de regresión
# continuar con el resto
AQUÍ COMENTARIO SOBRE LA ADECUACIÓN DEL MODELO
Problema 3: Usando los datos mtcars
, haz el estudio de la regresión de mpg
sobre el resto de variables (todas). Suprime “secuencialmente” las variables que no parecen influir sobre mpg
(por orden de mayor \(p\)-valor), hasta obtener un modelo final con menos variables y una bondad de ajuste suficiente.
data(mtcars)
# aquí tu código
AQUÍ TUS COMENTARIOS
Problema 4: Usando los datos mtcars
, haz el estudio de la regresión de mpg
sobre la potencia (hp
) y el peso (wt
), y compáralo con la regresión de mpg
sobre la potencia (hp
), el peso (wt
) y el producto de ambos. ¿Cuál de los dos modelos parece ser más adecuado?
# aquí tu código
AQUÍ TUS COMENTARIOS
Problema 5: Usando los datos women
, que almacena promedios de pesos de mujeres americanas con alturas determinadas.
# aquí tu código
AQUÍ TUS COMENTARIOS
Problema 6: Supongamos que se pretende analizar el efecto de un medicamento sobre el nivel de colesterol en sangre. Se experimenta con pacientes de características muy similares, administrando distintas dosis del medicamento a cada uno. Usa el modelo de regresión lineal múltiple para ajustar los datos del fichero colesterol.txt
a un modelo polinómico de hasta grado 4.
# aquí tu código
AQUÍ TUS COMENTARIOS