Matriz y

mat_Y<-matrix(data = c(30,20,36,24,40),
          nrow = 5,
          ncol = 1,byrow = TRUE)
colnames(mat_Y) <-c("mat_Y")
print(mat_Y)
##      mat_Y
## [1,]    30
## [2,]    20
## [3,]    36
## [4,]    24
## [5,]    40

Matriz X

mat_X <- cbind(rep(x = 1, 5),
          matrix(data = c(4, 10, 3, 8, 6, 11, 4, 9,8, 12),
                 nrow = 5,
                 ncol = 2,
                 byrow = TRUE))
colnames(mat_X) <-c("Cte", "X1", "X2")
print(mat_X)
##      Cte X1 X2
## [1,]   1  4 10
## [2,]   1  3  8
## [3,]   1  6 11
## [4,]   1  4  9
## [5,]   1  8 12

Matriz A

mat_A <- (t(mat_X )%*% mat_X) %*% t(mat_X)
print(mat_A)
##     [,1] [,2] [,3] [,4] [,5]
## Cte  605  480  705  555  805
## X1  3209 2544 3753 2947 4297
## X2  6198 4916 7232 5688 8266

Beta

Beta <- mat_A %*% mat_Y
print(Beta)
##       mat_Y
## Cte   98650
## X1   524866
## X2  1011764

Matriz P

mat_P <- mat_X %*% solve(t(mat_X) %*% mat_X) %*% t(mat_X)
print(mat_P)
##        [,1]  [,2]   [,3]  [,4]   [,5]
## [1,]  0.825 -0.05  0.325 0.075 -0.175
## [2,] -0.050  0.70 -0.050 0.450 -0.050
## [3,]  0.325 -0.05  0.325 0.075  0.325
## [4,]  0.075  0.45  0.075 0.325  0.075
## [5,] -0.175 -0.05  0.325 0.075  0.825

Estimacion de “Y”

Y_estimada <- mat_P %*% mat_Y
print(Y_estimada)
##      mat_Y
## [1,] 30.25
## [2,] 19.50
## [3,] 35.25
## [4,] 24.75
## [5,] 40.25

Matriz M

mat_M <- diag(nrow(mat_X)) - mat_P
print(mat_M)
##        [,1]  [,2]   [,3]   [,4]   [,5]
## [1,]  0.175  0.05 -0.325 -0.075  0.175
## [2,]  0.050  0.30  0.050 -0.450  0.050
## [3,] -0.325  0.05  0.675 -0.075 -0.325
## [4,] -0.075 -0.45 -0.075  0.675 -0.075
## [5,]  0.175  0.05 -0.325 -0.075  0.175

Propiedades de P y M

Idempotencia

# Demostrar que: P.P = P
Idem_p <- mat_P %*% mat_P 
print(Idem_p)
##        [,1]  [,2]   [,3]  [,4]   [,5]
## [1,]  0.825 -0.05  0.325 0.075 -0.175
## [2,] -0.050  0.70 -0.050 0.450 -0.050
## [3,]  0.325 -0.05  0.325 0.075  0.325
## [4,]  0.075  0.45  0.075 0.325  0.075
## [5,] -0.175 -0.05  0.325 0.075  0.825
# P.P - P = 0
nula_1 <- (mat_P %*% mat_P - mat_P) |> round(digits = 4)
print(nula_1)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0
# Demostrar que: M.M = M
Idem_M <- mat_M %*% mat_M 
print(Idem_M)
##        [,1]  [,2]   [,3]   [,4]   [,5]
## [1,]  0.175  0.05 -0.325 -0.075  0.175
## [2,]  0.050  0.30  0.050 -0.450  0.050
## [3,] -0.325  0.05  0.675 -0.075 -0.325
## [4,] -0.075 -0.45 -0.075  0.675 -0.075
## [5,]  0.175  0.05 -0.325 -0.075  0.175
# M.M - M = 0
nula_2 <- (mat_M %*% mat_M - mat_M) |> round(digits = 4)
print(nula_2)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0

Simetricas

# Demostrar que: t(P) = P
sim_P <- t(mat_P) |> all.equal(mat_P)
print(sim_P)
## [1] TRUE
# t(P) - P = 0
nula_3  <-  (t(mat_P) -mat_P)|> round(digits = 4)
print(nula_3)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0
# Demostrar que: t(M) = M
sim_M <- t(mat_M) |> all.equal(mat_M)
print(sim_M)
## [1] TRUE
# t(P) - P = 0
nula_3  <-  (t(mat_M) -mat_M)|> round(digits = 4)
print(nula_3)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0

Ortogonales

# Demostrar que: MP = 0
ort_MP <- mat_M %*% mat_P |> round(digits = 4)
print(ort_MP)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0
# Demostrar que: MX = 0
ort_MX <- mat_M %*% mat_X |> round(digits = 4)
print(ort_MX)
##      Cte X1 X2
## [1,]   0  0  0
## [2,]   0  0  0
## [3,]   0  0  0
## [4,]   0  0  0
## [5,]   0  0  0

Proy. de X sobre X

# Demostrar que: PX = X
Proy_XX <- mat_P %*% mat_X |> round(digits = 4)
print(Proy_XX) |> all.equal(mat_X)
##      Cte X1 X2
## [1,]   1  4 10
## [2,]   1  3  8
## [3,]   1  6 11
## [4,]   1  4  9
## [5,]   1  8 12
## [1] TRUE