1
Solución Práctica Grupal
Base de datos: “pisos”
Pregunta 1. ¿Cuál es el modelo teórico de regresión a ajustar? ¿Cuál es la variable respuesta?
¿Cuáles son las covariables?
El modelo teórico a ajustar es: pv = β0 + β1m2 + β2euribor + β3pmbarrio
La variable respuesta (Y) es el precio de venta de los pisos en Elche.
Las covariables (X) son las variables explicativas analizadas, concretamente el número
de metros cuadrados de los pisos, el Euribor cuando se vendieron los pisos y el precio
medio del barrio donde se ubica la vivienda.
Pregunta 2. Realiza el análisis preliminar de los datos. Explica todos los resultados que obtengas.
datos=read.table("pisos.txt",header=T)
attach(datos)
plot(datos)
En primer lugar, en el análisis preliminar vamos a realizar el análisis gráfico, para lo
que estudiamos el gráfico de dispersión que nos dará una idea inicial de las relaciones
existentes entre las variables. Así, podemos deducir que no se detectan relaciones
lineales entre el precio de los pisos y las variables metros cuadrados y Euribor, por el
contrario sí que existe una clara relación lineal entre el precio de los pisos y el precio
medio del barrio donde se ubican, siendo ésta creciente (a mayor precio medio del
barrio mayor precio final de venta de los pisos).
2
Corroboramos las impresiones del análisis gráfico mediante el estudio numérico.
En este estudio cuantificaremos el grado de linealidad existente entre la variable
respuesta y las variables explicativas mediante la correlación simple, y el grado de
relación entre las variables cuando consideramos la información de las restantes
mediante la correlación parcial (creando además un ranking de importancia de las
covariables).
Obtenemos tanto las correlaciones simples como las parciales.
cor(datos)
pv m2 euribor pmbarrio
pv 1.000 0.0216 -0.000278 0.978
Ciertamente, y como cabía esperar, la correlación simple entre pv y pmbarrio es altísima
y positiva.
Correlaciones Parciales
library(Rcmdr)
partial.cor(datos)
3
pv m2 euribor pmbarrio
pv 1.000 0.608 -0.337 0.987
Deducimos pues que la variable explicativa “precio medio barrio” es la que tiene un
mayor grado de relación lineal con la variable respuesta. El segundo mayor grado de
relación se da con los metros cuadros, y por último con el euribor. El orden es el mismo
tanto para las correlaciones simples como las parciales, aunque las correlaciones
aumentan considerablemente para las variables m2 y euribor cuando se considera el
cálculo de las parciales.
Pregunta 3. Ajusta el Modelo (escribe el modelo estimado). ¿Qué significa que alguno de los betas
sea negativo? Evalúa lo bueno o lo malo que es dicho modelo. Comprueba que se
cumplen todas las hipótesis básicas del modelo.
AJUSTE DEL MODELO:
En el ajuste del modelo obtenemos los valores que estima R para 0, 1, 2 y 3, así como
sus intervalos de confianza al 95% y los contrastes de hipótesis asociados. En concreto,
resolveremos el contraste de hipótesis asociado a la pregunta de si cada coeficiente es
igual a cero o distinto de cero; cuando rechazamos la hipótesis de coeficiente cero la
variable es verdaderamente útil para explicar el precio de venta del piso, por el
contrario, cuando el coeficiente puede ser cero podemos llegar a plantearnos la
idoneidad de mantener o no en el modelo la covariable (X) asociada.
fit=lm(pv~m2+euribor+pmbarrio) sfit=summary(fit);sfit
MODELO DE REGRESIÓN (Estimación Puntual)
pv = 6.66 + 0.021m2 – 0.283euribor + 0.049pmbarrio
El 2 es negativo, (-0.283), de lo que deducimos que cuando aumentamos en una unidad
el precio del euribor y mantenemos el resto de variables constantes (ceteris paribus), la
variable respuesta (precio de venta) disminuye en 0.28 unidades.
Por otra parte, los intervalos de confianza al 95% de los coeficientes son:
confint(fit)
IC 95% 0 (4.96233, 8.36833) IC 95% m2 (0.01007, 0.03239)
IC 95% euribor (-0.60271, 0.03586)
IC 95% pmbarrio (0.04674, 0.05309)
Contraste de Hipótesis para las distintas variables:
H0: β1 = 0
H1: β1 0.
4
A β1 le corresponde un p-valor de 0.000588, con lo que es menor que 0,05, por tanto
rechazamos H0 y concluimos que m2 es una variable estadísticamente significativa a la
hora de explicar el precio de venta de los pisos (Y).
A β2 le corresponde un p-valor de 0.07956, con lo que es mayor que 0,05, por tanto no
podemos rechazar H0 a favor de H1. Lo que, en definitiva, significa que Euribor no es
una variable relevante en el modelo de regresión si tenemos en cuenta el resto de
covariables.
A β3 le corresponde un p-valor de 2x10-16
, con lo que es mucho menor que 0,05, por
tanto rechazamos H0 y y concluimos que pmbarrio es una variable estadísticamente
significativa a la hora de explicar el precio de venta de los pisos (Y).
BONDAD DEL AJUSTE:
Para evaluar lo bueno o malo del modelo realizamos la Bondad del Ajuste, para lo que
contamos con varias medidas para cuantificarla.
Como mostramos a continuación los tres criterios concluyen que el modelo es bueno.
cv=100*(0.4708/mean(pv));cv
El Error Estándar Residual. Es una medida relativa a la escala de medida
utilizada. Se prefieren valores bajos para el error estándar residual. Nuestro
modelo nos da un valor de 0,4708 (si acudimos al summary de fit), y para
esclarecer si es un valor grande o pequeño (es bueno cuando es inferior al 10%)
calculamos el coeficiente de variación de la siguiente manera:
cv=100*(0.4708/la media de pv)% = 3.08 %. Al ser claramente inferior a 10%,
concluimos que el modelo es bueno según este criterio.
Tabla de ANOVA. Vamos a cuantificar cuánta de la variabilidad contenida en los
datos ha conseguido ser explicada por nuestro modelo. Lo obtenemos mediante
la respuesta al siguiente contrate :
H0: β1 = β2 = β3 = 0
H1: Lo contrario.
Dado que el p-valor que nos ofrece el modelo es de 2.2x10-16
(si acudimos al summary
de fit) es menor que 0,05, rechazamos H0 en favor de H1, dando el modelo como bueno
según este criterio.
Coeficiente de determinación. : es la proporción de la varianza que es explicada
por la recta de regresión. El valor que obtengamos nos indica el valor en tanto
por ciento de la variabilidad total de los datos, cuánto más se aproxime al 100%
es evidente que más parte de la varianza es explicada por la recta de regresión.
Obtenemos los datos del resumen.
Multiple R-square: 0.97, lo que indica que es muy bueno, el modelo de regresión
estimado explica el 97% de la variabilidad total de la variable pv.
5
Finalmente, comparamos el R2 (0,9757) y el R
2 (0,9729) Ajustado, esto lo realizamos
porque el mero hecho de tener varias variables explicativas puede distorsionar el valor
del R2 original. En nuestro estudio son prácticamente iguales, por lo que tomamos como
referencia el R2.
En definitiva, el modelos es bueno según los tres criterios analizados.
DIAGNÓSTICO DEL MODELO:
Diagnosticamos a continuación si el modelo satisface las distintas hipótesis básicas del
modelo de regresión lineal para los errores:
La media de los errores son igual a 0. Hipótesis que siempre se verifica porque
usamos el método de máxima verosimilitud que nos asegura que la media de los
residuos es siempre cero.
La hipótesis de normalidad. Para verificar esta hipótesis construiremos un
histograma para ver las desviaciones respecto a la campana de Gauss y
analizaremos el gráfico qqplot donde se representa los residuos ordenados
versus los cuantiles correspondientes de una normal.
par(mfrow=c(2,2)) plot(fit)
e<-residuals(fit) d<-e/sfit$sigma hist(d,probability=T,xlab="Residuo standarizados",main="",xlim=c(-3,3)) d.seq<-seq(-3,3,length=50) lines(d.seq,dnorm(d.seq,mean(d),sd(d)))
En el gráfico qqplot no todos los puntos están sobre la línea discontinua de
referencia. Se observan desviaciones de la normalidad en ambas colas. Por otra
parte, el histograma correspondiente también presenta una clara desviación de la
simetría, por lo que concluimos que existen ciertas dudas sobre la normalidad
que el test de Shapiro-Wilks puede despejar.
6
En el análisis numérico mediante el contraste de Shapiro- Wilks, obtenemos un p-valor
de 0.3135, que es superior a 0.05, para dar respuesta al siguiente contraste de hipótesis:
shapiro.test(e)
H0: e ~Normal
H1: Lo contrario.
Por lo tanto, no encontramos evidencias estadísticas para rechazar la normalidad de los
residuos. Asumiremos, en definitiva, que sí se verifica la hipótesis de normalidad.
Varianza Constante. Homocedasticidad. Gráficamente analizamos el gráfico de
residuos versus valores predichos de la variable respuesta. Y numéricamente
resolveremos el contraste de hipótesis de Breusch-Pagan.
En el gráfico correspondiente, se visualiza con claridad cierta curvatura. Si
embargo, no se observan problemas de heterocedasticidad, dado que la banda de
puntos que se visualiza en el gráfico (aunque siguiendo una curva) presenta una
“amplitud” o “anchura” similar a lo largo del eje de abscisas. Parece, por tanto,
que esta hipótesis se verifica también. Saldremos definitivamente de dudas con
el siguiente contraste de hipótesis.
7
Veamos el diagnóstico numérico mediante el test de Breusch-Pagan, es decir, el
siguiente contraste de hipótesis:
library(lmtest) bptest(fit)
H0: Homocedasticidad.
H1: Heterocedasticidad.
El p-valor que se obtiene es igual a 0.3653, con lo que es mayor a 0.05, no rechazamos H0,
y por tanto asumiremos que se cumple la hipótesis de Homocedasticidad.
Incorrelación. Vamos a analizar si las observaciones de la variable respuesta
están correladas o no, si no lo están se cumple la hipótesis y los valores de unas
no afectan a los de otras. Lo analizaremos a través del estudio de la
autocorrelación de los residuos.
Realizaremos el estudio gráfico con el gráfico de residuo i frente al anterior i-1 y
el test de Durbin-Watson para el análisis numérico.
Como observamos en el siguiente gráfico, no queda claro si existe incorrelación o no,
aunque podemos decir que cierto grado de correlación positiva sí que existe.
n<-length(d) plot(d[1:(n-1)],d[2:n],xlab="Residuo i",ylab="Residuo i-1") lines(lowess(d[1:(n-1)],d[2:n]),col="red")
8
Para salir de dudas, realizamos el diagnóstico numérico mediante el contraste siguiente
(el test de Dubin-Watson).
library(lmtest) dwtest(fit,alternative="two.sided")
H0: = 0
H1: 0
El p-valor resultante es de 0.03123, por lo que al ser inferior a 0.05 debemos rechazar H0, y
concluir que atendiendo a este diagnóstico la hipótesis de incorrelación no se verificaría.
En definitiva, y a modo de resumen, el modelo cumple con todas las hipótesis básicas
excepto con la de incorrelación.
Pregunta 4. ¿Cuál sería la transformación de la variable respuesta que propone el método de Box-
Cox? Realiza el ajuste del nuevo modelo. ¿Consigue solucionar los problemas que
teníamos con el modelo original? [A este modelo le llamaremos MODELO FINAL].
library(MASS)
bc<-boxcox(fit,plotit=F) lambda<-bc$x[which.max(bc$y)];lambda lambda
Mediante el modelo Box-Cox, obtenemos un valor de lamba de 1,9.
Al dar un valor distinto de cero realizamos la trasformación de la variable elevada a
lambda en vez de la transformación en logaritmo neperiano que sería el adecuado si
lambda hubiera valido cero (o próximo a cero).
Transformamos la variable respuesta pv en z:
library(labstatR) z<-(pv^lambda-1)/(lambda*mean.g(pv)^(lambda-1));z
9
Realizamos el ajuste del nuevo modelo (MODELO FINAL), llamando a la variable
respuesta z. (precio de la vivienda transformada.)
fit=lm(z~m2+euribor+ pmbarrio) sfit=summary(fit);sfit
Modelo de Regresión Ajustado sería:
z= 0,1841 + 0.01757m2 – 0.2864euribor + 0.04943pmbarrio
Aunque deberíamos realizar los cuatro pasos fundamentales en el análisis
pormenorizado del nuevo modelo (MODELO FINAL), a continuación realizaremos
directamente el diagnóstico del modelo para ver si se han solucionado los problemas del
modelo original (incorrelación).
Diagnóstico del modelo. Modelo Final.
Estudiamos a continuación las distintas hipótesis, mediante el análisis de los residuos.
La media de los errores son igual a 0. Hipótesis que siempre se verifica por
hacer uso del Estimador Máximo Verosímil.
La hipótesis de normalidad. Según el gráfico qqplot, las colas que existen en
ambos lados denotan que no se distribuye mediante una distribución normal. El
histograma también presenta cierta desviación con respecto a la simetría que
cabría esperar.
par(mfrow=c(2,2)) plot(fit) e<-residuals(fit) d<-e/sfit$sigma hist(d,probability=T,xlab="Residuo standarizados",main="",xlim=c(-3,3)) d.seq<-seq(-3,3,length=50) lines(d.seq,dnorm(d.seq,mean(d),sd(d)))
10
Sin embargo mediante el contraste de Shapiro-Wilks, obtenemos un p-valor de 0.6953,
que es superior a 0.05, y por tanto no podemos rechazar el cumplimiento de esta
hipótesis.
shapiro.test(e)
H0: e ~ Normal
H1: Lo contrario.
Varianza Constante. Homocedasticidad. Analizando el gráfico siguiente
observamos cómo parece que sí se cumple la hipótesis de varianza constante.
Además, la curvatura que observamos con el modelo anterior ha desaparecido.
Además realizamos el diagnóstico numérico mediante el test de Breusch-Pagan, es
decir, el siguiente contraste de hipótesis:
library(lmtest) bptest(fit)
11
H0: Homocedasticidad.
H1: Heterocedasticidad.
El p-valor es de 0.923, con lo que es mayor a 0.05 y no debemos rechazar H0. Por lo tanto,
asumiremos que sí se cumple la hipótesis de Homocedasticidad.
Incorrelación. En el siguiente gráfico observamos un claro grado de correlación
positiva. Por lo que la hipótesis parece que no se cumple.
n<-length(d) plot(d[1:(n-1)],d[2:n],xlab="Residuo i",ylab="Residuo i-1") lines(lowess(d[1:(n-1)],d[2:n]),col="red")
Para salir de dudas, realizamos el diagnóstico numérico mediante el siguiente contraste:
(el test de Dubin-Watson).
library(lmtest) dwtest(fit,alternative="two.sided")
H0: = 0
H1: 0
El p-valor resultante es de 0.01061, por lo que al ser inferior a 0.05 debemos rechazar H0 a
favor de H1, y concluir que atendiendo a este diagnóstico el modelo no verificaría la
hipótesis de incorrelación.
En definitiva, la transformación de Box-Cox no ha conseguido solucionar los problemas de
incorrelación que tenía nuestro modelo original.
12
Pregunta 5. Utiliza el procedimiento secuencial paso a paso (ligado al criterio AIC) para determinar
el mejor modelo posible a partir del MODELO FINAL.
Step(fit)
Obtenemos un valor AIC de inicio de -52.373.
Dado que todos los valores AIC para el caso de eliminar cualquiera de las tres
covariables son superiores al AIC de referencia, concluimos que todas las variables
explicativas son importantes para explicar el modelo, sin eliminar por tanto ninguna de
ellas.
Pregunta 6. La empresa decide utilizar el MODELO FINAL para estimar el precio de venta de un
piso de nueva construcción. Las características de dicha vivienda y del contexto
económico del momento son las siguientes: m2=89, euribor= 3.64%, precio medio del
barrio = 155. Obtén dicha estimación de forma puntual y por intervalo de confianza al
95%.
m2.0=89 euribor.0=3.64 pmbarrio.0=155 pv.0=predict(fit,data.frame(m2=m2.0,euribor=euribor.0,pmb arrio=pmbarrio.0),interval="prediction");pv.0
La estimación puntual del precio de un piso de nueva construcción con las
características citadas anteriormente es de 8.3672 unidades.
Por otra parte, el precio de venta de esa nueva vivienda estará entre 7.5466 y 9.1878
unidades, a un nivel de confianza del 95%.
Pregunta 7. Determina intervalos de confianza al 95% para los parámetros del MODELO FINAL
(Si lo hiciste en la pregunta 4, entonces simplemente escribe de nuevo los intervalos de
confianza e interprétalos).
confint(fit) IC 95% 0 ……… (-1.23643, 1.69464) IC 95% m2 ……… (0.00826, 0.02687)
IC 95% euribor …. (-0.55273, -0.02006)
IC 95% pmbarrio .. (0.04678, 0.052079)
Los distintos intervalos de confianza nos indican los valores entre los que pueden estar comprendidos los distintos parámetros con un 95% de confianza. Por
Top Related