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. Con ellos se puede “escribir” la función de regresión \(\hat{Y} = \hat{\beta}_0 + \hat{\beta}_1 X\), 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)plot(x, y)
de los datos,abline(obj)
, donde obj
es el objeto devuelto por lm()
.predict(obj, newdata, interval, level)
:obj
: objeto devuelto por la función lm()
newdata
: hoja de datos con valores de las variables independientes. Debe llevar columnas etiquetadas como las variables independientes usadas 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.
confidence
(para el intervalo de confianza para el VALOR MEDIO de \(Y\)) o bienprediction
(para el intervalo de confianza para la PREDICCIÓN de \(Y\))level
: nivel de confianza del intervalo de confianza, si se ha pedidoconfint(obj, parm, level)
:obj
: objeto devuelto por la función lm()
parm
: nombres de los parámetros (omitir para que salgan todos)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 columna con el \(p\)-valor de cada contraste.Multiple R-squared
: el original, denotado por \(R^2\)
Adjusted R-squared
: el ajustado, denotado por \(\overline{R}^2\)
plot(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, de izquierda a derecha, en torno a una banda horizontal a nivel \(0\):
Normal Q-Q
: gráfica de cuantiles (de los residuos, respecto de los cuantiles teóricos bajo normalidad). Si el modelo lineal es adecuado, se espera una nube de puntos ceñida a la diagonal (eso sería la normalidad)Usando los datos women
, que almacena promedios de pesos de mujeres americanas con alturas determinadas.
data(women) # esto carga los datos
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
La ecuación de la recta de regresión es… CONTINUA AQUÍ
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
Usando los datos mtcars
:
mpg
sobre todas las demás, y anota el valor de los dos coeficientes de bondad de ajuste.data(mtcars) # esto carga tus datos
# aquí tu código
La ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
mpg
(es decir, aquella con MAYOR \(p\)-valor asociado), siempre que haya alguna con \(p\)-valor superior a \(0.05\). Escribe la ecuación y los dos coeficientes de bondad de ajuste.# aquí tu código
Quitamos la variable … y la ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
# aquí tu código
Quitamos la variable … y la ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
Repetir hasta que no haya p-valores mayores que 0.05
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.
x = read.table(file='colesterol.txt', header=TRUE)
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
Completa el bloque de código de más abajo (modificando el parámetro eval=TRUE
del bloque) para realizar lo siguiente:
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
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)
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
recta = lm(formula=, data=) # pedir regresión
La ecuación de la recta de regresión es …
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
plot(???) # muestra en gráfica
abline(???, col='red') # recta de regresión
abline(a=???, b=???, col='green') # "verdadera" recta
# aquí tu código
\(R^2\) = …
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS