Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica 2
Practica 2
Ejercicio 1
Considere nuevamente el modelo del ejercicio 2 de la practica 1 dado por:
2
disti = β0 + β1 speedi + β2 speed + ϵ
i
In [128… data(cars)
head(cars)
A data.frame: 6 × 2
speed dist
<dbl> <dbl>
1 4 2
2 4 10
3 7 4
4 7 22
5 8 16
6 9 10
In [129… pairs(cars)
(b) Graficar la matriz de covarianza de la matriz de diseño asociada X como un mapa de calor con la función heatmap.
dim(X)
head(X)
tail(X)
50 · 3
1 1 4 16
2 1 4 16
3 1 7 49
4 1 7 49
5 1 8 64
6 1 9 81
45 1 23 529
46 1 24 576
47 1 24 576
48 1 24 576
49 1 24 576
50 1 25 625
In [132… heatmap(cov_X)
(c) Estimar el vector β del modelo via la factorización QR y comparar con resultado de la función lm. Se puede apoyar de la función qr.
#summary(cars.mod_1)
coef(cars.mod)
(d) Historicamente la solución ́ optima del vector β está dada por la expresión: β = (X
T
X)
−1
X
T
y . Estimar el vector β via la expresion anterior (método clásico) y comparar con los resultados obtenidos via qr y la función lm.
print(beta_clas)
[,1]
(Intercept) 2.4701378
speed 0.9132876
I(speed^2) 0.0999593
In [136… cars.mod$coefficients
(e) Grafique los residuales del modelo ajustado ¿Cumplen con los supuestos distribucionales? ¿Con esta información como estimaría la desviación estándar de cada elemento de β?
Ejercicio 2
Las 10 corporaciones industriales más grandes de Estados Unidos arrojan los datos mostrados en la figura 1 Resuelva los incisos (a),(b), (c), y (d) del ejercicio anterior con estos nuevos datos. En este caso considere profits como la variable dependiente y sales y
assets como la variable independiente. Los datos se anexan a la practica con el nombre de datos.txt
A data.frame: 10 × 3
sales profits assets
In [140… pairs(corps_data)
(b) Graficar la matriz de covarianza de la matriz de diseño asociada X como un mapa de calor con la función heatmap.
dim(X_2)
head(X_2)
tail(X_2)
10 · 3
A matrix: 6 × 3 of type dbl
(Intercept) sales assets
1 1 108.28 1484.10
2 1 152.36 750.33
3 1 95.04 766.42
4 1 65.45 1110.46
5 1 62.97 1031.29
6 1 263.99 195.26
5 1 62.97 1031.29
6 1 263.99 195.26
7 1 265.19 193.83
8 1 285.06 191.11
9 1 92.01 1175.16
10 1 165.68 211.15
In [143… heatmap(cov_X_2)
(c) Estimar el vector β del modelo via la factorización QR y comparar con resultado de la función lm. Se puede apoyar de la función qr.
#summary(cars.mod_1)
coef(corps.mod)
(d) Historicamente la solución ́ optima del vector β está dada por la expresión: β = (X
T
X)
−1
X
T
y . Estimar el vector β via la expresion anterior (método clásico) y comparar con los resultados obtenidos via qr y la función lm.
In [146… beta_clas_2 = solve ( t(X_2) %*% X_2 ) %*% t(X_2) %*% y_2
print(beta_clas_2)
[,1]
(Intercept) 0.013325232
sales 0.068057598
assets 0.005768244
Ejercicio 3
Regresando al ejercicio 1, calcule lo siguiente:
In [147… summary(cars.mod)
Call:
lm(formula = dist ~ speed + I(speed^2), data = cars)
Residuals:
Min 1Q Median 3Q Max
-28.720 -9.184 -3.188 4.628 45.152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.47014 14.81716 0.167 0.868
speed 0.91329 2.03422 0.449 0.656
I(speed^2) 0.09996 0.06597 1.515 0.136
In [148… dim(X)
head(X)
#tail(X)
50 · 3
1 1 4 16
2 1 4 16
3 1 7 49
4 1 7 49
5 1 8 64
6 1 9 81
^2
^ = R−1 R−T σ
Σ ^
β
2
||r|| ||Y − Xβ||
^2
σ = =
n − p n − p
^ )
diag(√Σ ^ β
habíamos estimado:
^
β0 = 2.4701378 (Intercept)
^
β
1
= 0.9132876 speed
^
β 2
= 0.0999593 I(speed^2)
calculamos σ^2
In [149… y = as.matrix(y)
betas_qr = as.matrix(beta_qr) #los beta que sacamos con fact. QR
dim(y)
dim(X)
dim(b)
50 · 1
50 · 3
3·1
230.313104418511
In [151… #ESTE NO
sigma_2_mod <- sum(resid(cars.mod)^2) / cars.mod$df.residual
sigma_2_mod
230.313104418511
obtenemos Q y R
sacamos Σ^β^
ahora diag(√Σ^β^ )
(Intercept): 14.8171647250236
^ − β
β i i
∼ tn−p
σ^^
βi
In [156… beta_qr
mis σ^β^
i
In [157… desv_beta_i
In [158… beta_null = 0
t_stats
47
47
son iguales
(c) Estime los coeficientes β vía la factorización de Cholesky. Se puede apoyar de la función chol. Compare su resultado que el que arroja la función lm.
T T
X Xβ = X y
Factorización de Cholesky:
T T
X X = L L
#calculamos XTy
Xty = t(X) %*% y
#verificamos
#t(L) %*% L
#L %*% t(L) # no
speed 0.9132876
I(speed^2) 0.0999593
:(
In [164… summary(cars.mod)$coefficients[, c("Estimate")]
(d) Estime el error estándar de los residuales. Compare su resultado que el que arroja la función lm.
2 2
RSS1 ||r|| ||Y − Xβ||
2
σϵ = = =
n − p n − p n − p
obtenemos RSS_1
15.1760701243277
15.1760701243277
(e) Estime el estadístico F y el p-value asociado. Considere como modelo nulo: disti = β0 + ε . Compare su resultado que el que arroja la función lm. ¿Su modelo es estadísticamente significativo?
obtenemos RSS_0
In [169… q = length(beta_qr) - 1
q
In [170… n = length(y)
q = length(beta_qr) - 1
#f stat
F_stat <- ((RSS_0 - RSS_1)/q ) / (RSS_1 / (n - q))
#p-value
p_value <- 1 - pf(F_stat, df1 = deg_freedom, df2 = deg_freedom)
#imprimir
print(c(F_value = F_stat, Pr = p_value))
#comparar
summary(cars.mod)
F_value Pr
48.14374 0.00000
Call:
lm(formula = dist ~ speed + I(speed^2), data = cars)
Residuals:
Min 1Q Median 3Q Max
-28.720 -9.184 -3.188 4.628 45.152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.47014 14.81716 0.167 0.868
speed 0.91329 2.03422 0.449 0.656
I(speed^2) 0.09996 0.06597 1.515 0.136
In [171… summary(null_model)
Call:
lm(formula = dist ~ 1, data = cars)
Residuals:
Min 1Q Median 3Q Max
-40.98 -16.98 -6.98 13.02 77.02
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 42.980 3.644 11.79 6.38e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
modelo:
F-statistic: 47.14 on 2 and 47 DF, p-value: 5.852e − 12
nuestro resultado:
F-statistic: 48.14374 on 2 and 47 DF, p-value: 0.00000
No acabo de entender el por que de la diferencia en el F stat, pero supongo que nuestro p value es valido, solo que no alcanza a mostrar con precision hasta los digitos requeridos. Igual nos indica que es pequeño y no hay suficiente evidencia para rechazar
nuestra hipotesis.
(f) Calcule las métricas conocidas como R2 y R2 ajustado. Las expresiones matemáticas las puede encontrar en la solución de la práctica 1. Compare su resultado que el que arroja la función lm.
model$response = y
In [172… cars.mod$coefficients[]
length(cars.mod$coefficients[])
R2 R2_adj
0.6673308 0.6456350
R2 R2_adj
0.6673308 0.6531747
son iguales
In [174… summary(cars.mod)
Call:
lm(formula = dist ~ speed + I(speed^2), data = cars)
Residuals:
Min 1Q Median 3Q Max
-28.720 -9.184 -3.188 4.628 45.152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.47014 14.81716 0.167 0.868
speed 0.91329 2.03422 0.449 0.656
I(speed^2) 0.09996 0.06597 1.515 0.136
In [176… res_standard_error
15.1760701243277
# Graficar los valores absolutos de los residuales estandarizados vs. los valores ajustados
plot(fitted(cars.mod), abs(stand_resid), xlab = "Valores ajustados", ylab = "Valores absolutos de los residuales estandarizados", main = "Valores absolutos de los residuales estandarizados vs. Valores ajustados")
son similares