Ejercicio 2.16

a.

Explica por qué el modelo econométrico anterior es un modelo de regresión simple, como los discutidos en este capítulo.

El modelo Econometrico \(r_j - r_f = \alpha_j + \beta_j + (r_m - r_j) + e_j\), relaciona la prima de riesgo de un activo (\(r_j - r_f\)) con la prima de riesgo del mercado (\(r_m - r_j\)) y evalua el riesgo sistematico medido por \(\beta_j\) para estimar el retorno esperado de un activo frente a cambios en el mercado, donde los inversores exigen un mayor rendimiento por asumir un mayor riesgo. Esta realcion lineal es obtenida por \(\beta_j\). Por otra parte, el error captura las desviaciones individuales del rendimiento del activo que no son explicadas por el mercado, por lo tanto, este modelo se utiliza para pronosticar el rendimiento futuro de activos basandose en una sola variable (la prima de riesgo del mercado), lo cual lo clasifica como un modelo simple. El modelo econometrico es un modelo de regresion simple ya que se enfoca en explicar y predecir una variable de interes (prima de riesgo del activo) a partir de un factor explicativo (prima de riesgo del mercado).

b.

En el archivo de datos capm5 se incluyen los rendimientos mensuales de seis empresas (GE, IBM, Ford, Microsoft, Disney y Exxon-Mobil), la tasa de rendimiento del portafolio de mercado (MKT) y la tasa libre de riesgo (RISKFREE). Las 180 observaciones cubren el periodo de enero de 1998 a diciembre de 2012.

Estima el modelo CAPM para cada empresa y comenta sobre los valores beta estimados. ¿Qué empresa parece la más agresiva? ¿Qué empresa parece la más defensiva?

Cargar librerías necesarias y archivo de Excel

library(readxl) # Para cargar el archivo Excel
library(ggplot2) # Para graficar

capm5 <- read_excel("C:\\Users\\Daniel\\OneDrive - Benemérita Universidad Autónoma de Puebla\\Documents\\Econometria 1\\capm5.xlsx")
View(capm5)
capm_data <- capm5

# Renombrar columnas para mayor claridad
colnames(capm_data) <- tolower(colnames(capm_data))

Estimar el modelo CAPM para cada empresa y mostrar las betas

empresas <- c("ge", "ibm", "ford", "msft", "dis", "xom")
resultados <- list()

for (empresa in empresas) {
  # Calcular las variables dependiente e independiente
  r_j_rf <- capm_data[[empresa]] - capm_data$riskfree
  r_m_rf <- capm_data$mkt - capm_data$riskfree
  
  # Ajustar el modelo de regresión lineal
  modelo <- lm(r_j_rf ~ r_m_rf)
  
  # Guardar resultados
  resultados[[empresa]] <- summary(modelo)
  
  # Mostrar beta estimado
  cat(paste("\nEmpresa:", toupper(empresa)))
  cat("\nBeta estimado:", coef(modelo)[2], "\n")
}
## 
## Empresa: GE
## Beta estimado: 1.147952 
## 
## Empresa: IBM
## Beta estimado: 0.9768898 
## 
## Empresa: FORD
## Beta estimado: 1.662031 
## 
## Empresa: MSFT
## Beta estimado: 1.20184 
## 
## Empresa: DIS
## Beta estimado: 1.011521 
## 
## Empresa: XOM
## Beta estimado: 0.4565208

Recordemos que la beta de una accion revela la volatibilidad de la accion, ya que mida la sensibilidad del retorno del activo j a la variacion en todo el mercado accionario, por lo tanto podemos observar que existen muchas acciones agresivas (GE, FORD, MSFT, DIS) las cuales tiene un mayor riesgo pero tambien un mayor rendimeinto.

Identificamos la empresa más agresiva y la más defensiva

betas <- sapply(resultados, function(x) coef(x)[2])
empresa_agresiva <- empresas[which.max(betas)]
empresa_defensiva <- empresas[which.min(betas)]
cat("\nEmpresa más agresiva:", toupper(empresa_agresiva), "con beta =", max(betas),"\n")
## 
## Empresa más agresiva: FORD con beta = 1.662031
cat("\nEmpresa más defensiva:", toupper(empresa_defensiva), "con beta =", min(betas))
## 
## Empresa más defensiva: XOM con beta = 0.4565208

Podemos observar que FORD tiene una accion mas agresiva lo que significa que tenemos un mayor rendimiento pero al igual un mayor riesgo, mientra que por el contrario tenemos a XOM con una accion mas defensiva considerando un bajo riesgo y a su vez un menor rendimiento.

c. 

La teoría financiera establece que el parámetro de intercepto \(\alpha_j\) debería ser cero. ¿Esto parece correcto con base en tus estimaciones? Para la acción de Microsoft, traza la línea de regresión ajustada junto con la dispersión de datos.

# c. Verificar si α ≈ 0 para Microsoft y graficar la regresión
modelo_microsoft <- resultados[["msft"]]
cat("\nAlpha para Microsoft:", coef(modelo_microsoft)[1])
## 
## Alpha para Microsoft: 0.003249601
# Graficar regresión para Microsoft
r_j_rf_microsoft <- capm_data[["msft"]] - capm_data$riskfree
r_m_rf <- capm_data$mkt - capm_data$riskfree

ggplot(data = NULL, aes(x = r_m_rf, y = r_j_rf_microsoft)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", formula = y ~ x, color = "red") +
  labs(title = "Línea de regresión ajustada (Microsoft)",
       x = "r_m - r_f",
       y = "r_j - r_f (Microsoft)") +
  theme_minimal()

No parece correcto ya que para \(\alpha_j\) significativo su p-valor < 0.05 el parametro es significativamente diferente de 0, de lo contrario, no se rechaza la hipotesis nula (\(\alpha_j = 0\)), sin embargo con valores p-valor mayor o igual que 0.05 no hay suficiente evidencia para rezhazar que \(\alpha_j = 0\) y por lo tanto son consistentes con la teoria de financiera.

d. 

Estima el modelo para cada empresa bajo la suposición de que \(\alpha_j = 0\). ¿Cambian mucho las estimaciones de los valores beta?

#Estimar modelo CAPM con α_j = 0
for (empresa in empresas) {
  # Calcular variables
  r_j_rf <- capm_data[[empresa]] - capm_data$riskfree
  r_m_rf <- capm_data$mkt - capm_data$riskfree
  
  # Modelo forzado con intercepto cero
  modelo <- lm(r_j_rf ~ 0 + r_m_rf) # Intercepto fijo en 0
  
  # Guardar resultados ajustados
  resultados[[empresa]] <- summary(modelo)
  
  # Mostrar nuevo beta estimado
  cat(paste("\nEmpresa (α_j = 0):", toupper(empresa)))
  cat("\nBeta estimado:", coef(modelo)[1], "\n")
}
## 
## Empresa (α_j = 0): GE
## Beta estimado: 1.146763 
## 
## Empresa (α_j = 0): IBM
## Beta estimado: 0.9843954 
## 
## Empresa (α_j = 0): FORD
## Beta estimado: 1.666717 
## 
## Empresa (α_j = 0): MSFT
## Beta estimado: 1.205869 
## 
## Empresa (α_j = 0): DIS
## Beta estimado: 1.012819 
## 
## Empresa (α_j = 0): XOM
## Beta estimado: 0.4630727

No cambian mucho las estimaciones de los valores de beta, sin embargo, aumentan un poco su rendimiento y por consecuencia su riesgo incrementa.

Ejercicio 2.17

El archivo de datos \(collegetwon\) contiene observaciones sobre 500 casas unifamiliares vendidas en Baton Rounge, Luisiana, durante 2009-2013. Los datos incluyen el precio de venta (en miles de dolares),\(PRICE\), y el area inferior total de la casa en cientos de pies cuadrados,\(SQFT\).

A) Diagrama de dispersion

Dibuje un diagrama de dispersion que muestre el precio de la vivienda en funcion de el tamaño de la misma.

#Carga de datos
library(readxl)
library(ggplot2)
datos_collegetwon <- read_excel("C:\\Users\\Daniel\\OneDrive - Benemérita Universidad Autónoma de Puebla\\Documents\\Econometria 1\\collegetown.xlsx")


ggplot(data = datos_collegetwon, aes(x=sqft,y=price))+
  geom_point(color="purple",alpha=0.6)+
  labs(title = "Diagrama de dispercion: Precio vs area ",x="SQFT",Y="PRICE")+
  theme_minimal()

B) Modelo de regresion lineal

Estime el modelo de regresion lineal \(PRICE = \beta_1 + \beta_2SQFT + e.\) Interprete las estimaciones. Dibuje un esquema de la linea ajustada.

attach(datos_collegetwon)
summary(datos_collegetwon)
##      price             sqft            age             pool      
##  Min.   :  50.0   Min.   :10.00   Min.   : 1.00   Min.   :0.000  
##  1st Qu.: 157.9   1st Qu.:20.56   1st Qu.: 7.00   1st Qu.:0.000  
##  Median : 199.9   Median :25.55   Median : 9.00   Median :0.000  
##  Mean   : 250.2   Mean   :27.28   Mean   : 8.19   Mean   :0.064  
##  3rd Qu.: 279.0   3rd Qu.:31.20   3rd Qu.:10.00   3rd Qu.:0.000  
##  Max.   :1370.0   Max.   :91.67   Max.   :11.00   Max.   :1.000  
##    fireplace         close          twostory        occupied   
##  Min.   :0.000   Min.   :0.000   Min.   :0.000   Min.   :0.00  
##  1st Qu.:0.000   1st Qu.:0.000   1st Qu.:0.000   1st Qu.:0.00  
##  Median :1.000   Median :0.000   Median :0.000   Median :1.00  
##  Mean   :0.546   Mean   :0.378   Mean   :0.138   Mean   :0.56  
##  3rd Qu.:1.000   3rd Qu.:1.000   3rd Qu.:0.000   3rd Qu.:1.00  
##  Max.   :1.000   Max.   :1.000   Max.   :1.000   Max.   :1.00
modl <- lm(price~sqft,data=datos_collegetwon)
summary(modl)
## 
## Call:
## lm(formula = price ~ sqft, data = datos_collegetwon)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -316.93  -58.90   -3.81   47.94  477.05 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -115.4236    13.0882  -8.819   <2e-16 ***
## sqft          13.4029     0.4492  29.840   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 102.8 on 498 degrees of freedom
## Multiple R-squared:  0.6413, Adjusted R-squared:  0.6406 
## F-statistic: 890.4 on 1 and 498 DF,  p-value: < 2.2e-16
modl$coefficients
## (Intercept)        sqft 
##  -115.42361    13.40294
ggplot(data = datos_collegetwon, aes(x=sqft,y=price))+
  stat_smooth(method = "lm",formula = y~x,col="black",size=1)+
  geom_point(color="purple1",alpha=1)+
  labs(title = "Diagrama de dispercion: Precio vs area ",x="SQFT",Y="PRICE")+
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Ambos coeficientes tienen valor p demasiado bajos lo que significa que son altamente significativos. Esto nos idica que el intercepto como SQFT tiene un efecto relevante en el modelo.

Los valores t son altos. especialmente para sqft, lo que refuerza la evidencia de que la varibale es altamente significativa.

Pero aun que \(R^2\) es alto, todavía hay variabilidad no explicada.

Por lo tanto exploraremos tranformaciones de la variable

C) Modelo de Regresion Cuadratico

Estime el modelo de regresión cuadrático para \(PRICE = \alpha_1 + \alpha_2SQFT^2 + e\). Calcule el efecto marginal de 100 pies cuadrados adicionales al area habitable en una casa con 2000 pies cuadrados de espacio habitable.

mdc <- lm(data = datos_collegetwon,price~I(sqft^2))
summary(mdc)
## 
## Call:
## lm(formula = price ~ I(sqft^2), data = datos_collegetwon)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -383.67  -48.39   -7.50   38.75  469.70 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 93.565854   6.072226   15.41   <2e-16 ***
## I(sqft^2)    0.184519   0.005256   35.11   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 92.08 on 498 degrees of freedom
## Multiple R-squared:  0.7122, Adjusted R-squared:  0.7117 
## F-statistic:  1233 on 1 and 498 DF,  p-value: < 2.2e-16

El efecto marginal se calcula como \[\frac{d(\widehat{PRICE})}{dSQFT} = 2 \hat{\alpha}_2 SQFT\]

alpha <- coef(mdc)[[2]]

ev <- data.frame(income=c(20,21))

EM <- 2*alpha*ev
print(EM)
##     income
## 1 7.380760
## 2 7.749798

D) Grafico de curva ajustada

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Crear una nueva columna para la transformación cuadrática
datos_collegetwon <- datos_collegetwon %>%
  mutate(sqft2 = sqft^2) 

# Ajustar el modelo cuadrático
modelo_cuadratico <- lm(price ~ I(sqft^2), data = datos_collegetwon)

# Generar valores predichos
datos_collegetwon <- datos_collegetwon %>%
  mutate(predicted_price_c = predict(modelo_cuadratico))

# Gráfica
ggplot(datos_collegetwon, aes(x = sqft, y = price)) +
  geom_point(alpha = 0.6, color = "green4", size = 2) +  # Datos originales transformados
  stat_smooth(method = "lm", formula = y~poly(x,2),col="black" ,size = 1) + # Línea de regresión
  labs(
    title = "Transformación cuadrática y línea de regresión",
    x = "sqft^2 (Pies cuadrados elevados al cuadrado)",
    y = "Price (Precio)"
  ) +
  theme_minimal()

E) Elasticidad

Para el modelo de la parte c), calcule la eslasticidad de PRECIO con respecto a los pies cuadrados para una casa con 2000 pies cuadrados habitables.

sqftx <- 20 #Estamos evaluando el precio para cada uno de ellos 
b1 <- coef(mdc)[[1]]
b2 <- coef(mdc)[[2]]
pricex <- b1+b2*sqftx^2
DpriceDsqft <- 2*b2*sqftx #Efecto marginal para cada uno de ellos (pendiente)
DpriceDsqft
## [1] 7.38076
elasti <- DpriceDsqft*sqftx/pricex
b1; b2; DpriceDsqft; elasti
## [1] 93.56585
## [1] 0.184519
## [1] 7.38076
## [1] 0.8819511

En el caso de 2000 pies cuadrados, estimamos que un aumento del 1% en el tamaño de la casa aumentara el precio en un 0.88%. Este dato nos dice que es un bien con poca elasticidad. Es decir, un aumento proporcional en el tamaño de la vivienda produce un aumento menos que proporcional en el precio.

F) Residuo de minimos cuadrados

Para las regresiones b) y c), calcule los residuos de minimos cuadrados y representa graficamente los mismos frente SQFT Parece que viola alguna de nuestras suposiciones?

library(dplyr)

# Ajustar el modelo lineal
modelo_lineal <- lm(price ~ sqft, data = datos_collegetwon)

# Generar valores predichos
datos_collegetwon <- datos_collegetwon %>%
  mutate(residuos_1 = residuals(modelo_lineal))


# Ajustar el modelo cuadrático
modelo_cuadratico <- lm(price ~ I(sqft^2), data = datos_collegetwon)

# Generar valores predichos
datos_collegetwon <- datos_collegetwon %>%
  mutate(residuos_2 = residuals(modelo_cuadratico))

# Graficar residuos del modelo lineal
plot(datos_collegetwon$sqft, datos_collegetwon$residuos_1,
     main = "Residuos vs SQFT (Modelo Lineal)",
     xlab = "SQFT", ylab = "Residuos", pch = 20)
abline(h = 0, col = "red", lty = 2)

# Graficar residuos del modelo cuadrático
plot(datos_collegetwon$sqft, datos_collegetwon$residuos_2,
     main = "Residuos vs SQFT (Modelo Cuadrático)",
     xlab = "SQFT", ylab = "Residuos", pch = 20)
abline(h = 0, col = "red", lty = 2)

hist(datos_collegetwon$residuos_2,breaks = 25,col = "red4")

Parece ser que el modelo cuadratico presenta menos dispersion que los datos del modelo lineal, y en vista de los graficos para ser que no viola niguno de nuestros supuesto.

G) Comparacion

Una base para elegir entre estas dos especificaciones es el grado de ajuste de los datos al modelo. Compare la suma de los residuos al cuadrado (SEE) de los modelos en b) y c). Que modelo tiene una SSE mas baja? Como indica un modelo que se ajusta mejor a un modelo si tiene una SEE mas baja?

library(dplyr)


# Ajustar el modelo lineal
modelo_lineal <- lm(price ~ sqft, data = datos_collegetwon)

# Generar valores predichos
datos_collegetwon <- datos_collegetwon %>%
  mutate(predicted_price_l = predict(modelo_lineal))

# Ajustar el modelo cuadrático
modelo_cuadratico <- lm(price ~ I(sqft^2), data = datos_collegetwon)

# Generar valores predichos
datos_collegetwon <- datos_collegetwon %>%
  mutate(predicted_price_c = predict(modelo_cuadratico))


#Creamos una columna con los errores para el modelo lineal y el modelo cuadratico

datos_collegetwon <- datos_collegetwon %>%
  mutate(SE_1 = (datos_collegetwon$price - datos_collegetwon$predicted_price_l)^2)

SSEmodl <- sum(datos_collegetwon$SE_1)

datos_collegetwon <- datos_collegetwon %>%
  mutate(SE_2 = (datos_collegetwon$price - datos_collegetwon$predicted_price_c)^2)


SSEmdc <- sum(datos_collegetwon$SE_2)

SSEmodl;SSEmdc
## [1] 5262847
## [1] 4222356
SSEmodl - SSEmdc
## [1] 1040491
anova(modl)
anova(mdc)
 View(datos_collegetwon)

Un SSE menor indica que el modelo cuadrático explica mejor la relación entre las variables, ya que deja menos error residual. Esto nos dice que que la inclusión del término cuadrático \(SQFT^2\) es relevante para describir la relación. Y podemos ver que los errores tienes aproximandamente una distribucion normal.

hist(datos_collegetwon$residuos_2,breaks = 25,col = "red4")

Ejercicio 2.18

The data file collegetown contains observations on 500 single-family houses sold in Baton Rouge, Louisiana, during 2009–2013. The data include sale price (in thousands of dollars), PRICE,and total interior area of the house in hundreds of square feet, SQFT.

a

Create histograms for PRICE and ln(PRICE). Are the distributions skewed or symmetrical?

library(readxl)
clltown <- read_excel("C:\\Users\\Daniel\\OneDrive - Benemérita Universidad Autónoma de Puebla\\Documents\\Econometria 1\\collegetown.xlsx")
attach(clltown)
## The following objects are masked from datos_collegetwon:
## 
##     age, close, fireplace, occupied, pool, price, sqft, twostory
summary(clltown)
##      price             sqft            age             pool      
##  Min.   :  50.0   Min.   :10.00   Min.   : 1.00   Min.   :0.000  
##  1st Qu.: 157.9   1st Qu.:20.56   1st Qu.: 7.00   1st Qu.:0.000  
##  Median : 199.9   Median :25.55   Median : 9.00   Median :0.000  
##  Mean   : 250.2   Mean   :27.28   Mean   : 8.19   Mean   :0.064  
##  3rd Qu.: 279.0   3rd Qu.:31.20   3rd Qu.:10.00   3rd Qu.:0.000  
##  Max.   :1370.0   Max.   :91.67   Max.   :11.00   Max.   :1.000  
##    fireplace         close          twostory        occupied   
##  Min.   :0.000   Min.   :0.000   Min.   :0.000   Min.   :0.00  
##  1st Qu.:0.000   1st Qu.:0.000   1st Qu.:0.000   1st Qu.:0.00  
##  Median :1.000   Median :0.000   Median :0.000   Median :1.00  
##  Mean   :0.546   Mean   :0.378   Mean   :0.138   Mean   :0.56  
##  3rd Qu.:1.000   3rd Qu.:1.000   3rd Qu.:0.000   3rd Qu.:1.00  
##  Max.   :1.000   Max.   :1.000   Max.   :1.000   Max.   :1.00
hist(price, breaks = 30, col = "aquamarine", xlab = "Price", ylab = "Frecuencia", main = "Histograma de Price"); hist(log(price), breaks = 30, col = "darkgoldenrod1", xlab = "ln-Price", ylab = "Frecuencia", main = "Histograma de ln-Price")

Al graficar los histogramas podemos notar que el histograma de price, esta sesgado a la derecha a diferencia del histograma de log(price) pues este es simetrico, esto nos quiere decir entonces que las casas mas caras son más que la media sin ebargo hay mas casa baratas que caras. En la simetria de log-price, al usarse un logaritmo, se esta reduciendo el sesgo es decir, se esta reduciendo la asimetría en los datos normalizando asi los precios.

b

  1. Estimate the log-linear regression model ln(PRICE)=γ1 +γ2SQFT + e. Interpret the OLS estimates, ̂ γ1 and ̂ γ2. Graph the fitted PRICE, PRICE⋀= exp(̂γ1 +̂γ2SQFT),against SQFT,and sketch the tangent line to the curve for a house with 2000 square feet of living area. What is the slope of the tangent line?
#Aplicamos el modelo de regresión log - lineal
mlli <- lm(log(price) ~ sqft, data = clltown)
summary(mlli)
## 
## Call:
## lm(formula = log(price) ~ sqft, data = clltown)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.32528 -0.19199  0.00122  0.21678  0.86609 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.393866   0.043288  101.50   <2e-16 ***
## sqft        0.036044   0.001486   24.26   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.34 on 498 degrees of freedom
## Multiple R-squared:  0.5417, Adjusted R-squared:  0.5408 
## F-statistic: 588.7 on 1 and 498 DF,  p-value: < 2.2e-16
mlli$coefficients
## (Intercept)        sqft 
##  4.39386582  0.03604449
anova(mlli)
#Graficamos Price ajustado a sqft
library(ggplot2)
clltown$fitted_PRICE <- exp(predict(mlli))
ggplot(clltown, aes(x = sqft, y = price)) +
  geom_point(alpha = 0.5) +
  geom_line(aes(y = fitted_PRICE), color = "red", size = 1) +
  labs(title = "Precio ajustado vs. Área interior", x = "Área interior", y = "Precio")

#Incluyendo la linea tangente para una casa de 2000 sqft
tangente_sqft <- (2000/100)
b1 <- coef(mlli)[1]
b2 <- coef(mlli)[2]
tangente_2000 <- b2 * exp(b1 + b2 * tangente_sqft)
tangente_2000
##     sqft 
## 5.999969

Tenemos que el valor del price nos muestra una asimetria positiva a diferencia de cuando lo ponemos con log-price pues nos arroja que es más simetrica como en el inciso a) indicando que este es mejor para los datos. La linea roja nos indica el valor ajustado del modelo mostrando relación entre las variables, además la pendiente nos menciona el cambio de precio dependiendo el área de la casa.

c

Compute the least squares residuals from the model in (b) and plot them against SQFT.Do any of our assumptions appear violated?

clltown$residuals <- residuals(mlli)

ggplot(clltown, aes(x = sqft, y = residuals))+
  geom_point(color = "turquoise1", alpha = 0.5)+
  geom_hline(yintercept = 0, color = "purple", linetype = "dashed")+
  labs(x = "Sqft", y = "Residuos", title = "Residuos vs Area de sqft")

Observando la grafica podemos decir que se cumplen las suposiciones del modelo de regresion lineal, es decir, que hay una relación entre log-price y el sqft, los residuos son independientes es decir no hay una correlación clara entre ellos, por lo que el modelo log-lineal que es el que se esta aplicando, es correcto para usar con estos datos.

d.

Calculate summary statistics for PRICE and SQFT for homes close to Louisiana State University (CLOSE = 1) and for homes not close to the university (CLOSE = 0). What differences and/or similarities do you observe?

library(dplyr)
clltown %>% 
  group_by(close) %>%  
  summarize(
    mean_PRICE = mean(price, na.rm = T),
    sd_PRICE = sd(price, na.rm = T),
    mean_SQFT = mean(sqft, na.rm = T),
    sd_SQFT = sd(sqft, na.rm = T)
  )

Calculamos los valores estadisticos para cada caso (media y desviación estándar) para poder comparar sus resultados, dependiendo el valor de cada uan será la preferencia que tiene el cliente conforme a la cercania con Louisiana, sin embargo si estos son positivos entonces podemos inferir en que da igual la cercanía con Louisiana pues esta no afecta en la casa.

e.

Estimate the log-linear regression model ln(PRICE)=γ1 +γ2SQFT + e for homes close to Louisiana State University (CLOSE = 1) and for homes not close to the university (CLOSE = 0). Interpret the estimated coefficient of SQFT in each sample’s regression.

#Estimamos para casas cerca y que no esten cerca de Louisiana 
#Cerca
casas_cerca <- lm(log(price) ~ sqft, data = clltown %>% filter(close == 1))
summary(casas_cerca)
## 
## Call:
## lm(formula = log(price) ~ sqft, data = clltown %>% filter(close == 
##     1))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6363 -0.2071  0.0055  0.2043  0.8402 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.763696   0.064503   73.85   <2e-16 ***
## sqft        0.026855   0.002305   11.65   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2761 on 187 degrees of freedom
## Multiple R-squared:  0.4205, Adjusted R-squared:  0.4174 
## F-statistic: 135.7 on 1 and 187 DF,  p-value: < 2.2e-16
casas_lejos <- lm(log(price) ~ sqft, data = clltown %>% filter(close == 0))
summary(casas_lejos)
## 
## Call:
## lm(formula = log(price) ~ sqft, data = clltown %>% filter(close == 
##     0))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.23107 -0.19550  0.02418  0.20729  1.01626 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.201935   0.052767   79.63   <2e-16 ***
## sqft        0.040220   0.001769   22.73   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3444 on 309 degrees of freedom
## Multiple R-squared:  0.6257, Adjusted R-squared:  0.6245 
## F-statistic: 516.6 on 1 and 309 DF,  p-value: < 2.2e-16
#coeficientes
b1_cerca <- coef(casas_cerca)[2]
b2_lejos <- coef(casas_lejos)[2]

Podemos llegar a que como b2 es mayor que b1 entonces, el precio de las casas cerca de Louisiana si se ven afectadas por su tamaño.

f.

Are the regression results in part (b) valid if the differences you observe in part (e) are substantial? Think in particular about whether SR1 is satisfied.

La cercanía con Louisiana, si afecta en el tamaño de la casa y como consiguiente en el precio por lo que debemos incluirla en el modelo para que de esa forma se satisfaga SR1.

incluyendo_close <- lm(log(price) ~ sqft + close, data = clltown)
summary(incluyendo_close)
## 
## Call:
## lm(formula = log(price) ~ sqft + close, data = clltown)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.24686 -0.20719  0.01839  0.19918  0.95128 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.303624   0.043606  98.694  < 2e-16 ***
## sqft        0.036550   0.001426  25.635  < 2e-16 ***
## close       0.202282   0.030096   6.721 4.96e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3259 on 497 degrees of freedom
## Multiple R-squared:  0.5799, Adjusted R-squared:  0.5782 
## F-statistic:   343 on 2 and 497 DF,  p-value: < 2.2e-16