# Importamos librerias.
library(tidyverse)
library(readxl)
# Importamos datos.
mariposa = read_excel("datos_mariposas.xlsx")
# Observamos los datos.
print(mariposa)
## # A tibble: 16 × 11
## Colonia X1 X2 X3 X4 X5 X6 Y1 Y2 Y3 Y4
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 SS 0 3 22 57 17 1 500 43 98 17
## 2 SB 0 16 20 38 13 13 800 20 92 32
## 3 WSB 0 6 28 46 17 3 570 28 98 26
## 4 JRC 0 4 19 47 27 3 550 28 98 26
## 5 JRH 0 1 8 50 35 6 550 28 98 26
## 6 SJ 0 2 19 44 32 3 380 15 99 28
## 7 CR 0 0 15 50 27 8 930 21 99 28
## 8 UO 10 21 40 25 4 0 650 10 101 27
## 9 LO 14 26 32 28 0 0 600 10 101 27
## 10 DP 0 1 6 80 12 1 1500 19 99 23
## 11 PZ 1 4 34 33 22 6 1750 22 101 27
## 12 MC 0 7 14 66 13 0 2000 58 100 18
## 13 IF 0 9 15 47 21 8 2500 34 102 16
## 14 AF 3 7 17 32 27 14 2000 21 105 20
## 15 GH 0 5 7 84 4 0 7850 42 84 5
## 16 GL 0 3 1 92 4 0 10500 50 81 -12
Primer conjunto de variables:
Este tipo de variables son ambientales.
Segundo conjunto de variables:
Este tipo de variables son geneticas.
mariposa2 = mariposa %>%
select(-c(Colonia, X6)) %>% # Forma simple 1.
as.matrix()
media = apply(mariposa2, 2, mean)
uno = matrix(1, nrow = 16)
I = diag(16)
centrada = mariposa2 - (uno %*% media)
s1 = (1/15)*t(mariposa2) %*% (I - (1/15) * (uno %*% t(uno))) %*% mariposa2
print(s1 %>% data.frame())
## X1 X2 X3 X4 X5 Y1
## X1 16.915556 25.622222 25.24000 -50.52000 -24.68889 -2675.067
## X2 25.622222 52.488889 40.20000 -108.53333 -57.02222 -5173.333
## X3 25.240000 40.200000 91.62667 -245.61333 -37.40000 -20549.600
## X4 -50.520000 -108.533333 -245.61333 216.24000 -119.60000 34346.133
## X5 -24.688889 -57.022222 -37.40000 -119.60000 95.15556 -16772.667
## Y1 -2675.066667 -5173.333333 -20549.60000 34346.13333 -16772.66667 7976549.333
## Y2 -34.208889 -57.288889 -119.94667 94.10667 -55.11111 18668.800
## Y3 -4.302222 -41.422222 -91.52000 -445.84000 -88.71111 -29746.800
## Y4 7.435556 9.555556 42.52000 -242.89333 23.17778 -32658.533
## Y2 Y3 Y4
## X1 -34.20889 -4.302222 7.435556
## X2 -57.28889 -41.422222 9.555556
## X3 -119.94667 -91.520000 42.520000
## X4 94.10667 -445.840000 -242.893333
## X5 -55.11111 -88.711111 23.177778
## Y1 18668.80000 -29746.800000 -32658.533333
## Y2 139.79556 -236.817778 -149.715556
## Y3 -236.81778 -631.804444 -94.062222
## Y4 -149.71556 -94.062222 89.128889
s = (1/15)*(t(centrada) %*% mariposa2)
print(s)
## X1 X2 X3 X4 X5 Y1
## X1 17.13333 26.516667 27.55000 -44.15000 -22.55000 -2413.500
## X2 26.51667 56.162500 49.68750 -82.37083 -48.23750 -4099.042
## X3 27.55000 49.687500 116.12917 -178.04583 -14.71250 -17775.125
## X4 -44.15000 -82.370833 -178.04583 402.56250 -57.03750 41996.958
## X5 -22.55000 -48.237500 -14.71250 -57.03750 116.16250 -14203.708
## Y1 -2413.50000 -4099.041667 -17775.12500 41996.95833 -14203.70833 8290709.583
## Y2 -30.71667 -42.945833 -82.90417 196.25417 -20.81250 22863.208
## Y3 7.80000 8.283333 36.85000 -91.85000 30.15000 -15211.167
## Y4 10.03333 20.225000 70.07500 -166.90833 48.69167 -29538.417
## Y2 Y3 Y4
## X1 -30.71667 7.800000 10.03333
## X2 -42.94583 8.283333 20.22500
## X3 -82.90417 36.850000 70.07500
## X4 196.25417 -91.850000 -166.90833
## X5 -20.81250 30.150000 48.69167
## Y1 22863.20833 -15211.166667 -29538.41667
## Y2 195.79583 -42.750000 -108.05833
## Y3 -42.75000 40.733333 50.30000
## Y4 -108.05833 50.300000 120.11667
D = diag(apply(mariposa2, 2, sd))
R = solve(D) %*% s %*% solve(D)
print(R %>% data.frame())
## X1 X2 X3 X4 X5 X6 X7
## 1 1.0000000 0.8548202 0.6176323 -0.5316100 -0.5054668 -0.2025026 -0.5303364
## 2 0.8548202 1.0000000 0.6152523 -0.5478146 -0.5972121 -0.1899605 -0.4095398
## 3 0.6176323 0.6152523 1.0000000 -0.8234638 -0.1266726 -0.5728569 -0.5497990
## 4 -0.5316100 -0.5478146 -0.8234638 1.0000000 -0.2637612 0.7269513 0.6990375
## 5 -0.5054668 -0.5972121 -0.1266726 -0.2637612 1.0000000 -0.4576916 -0.1380033
## 6 -0.2025026 -0.1899605 -0.5728569 0.7269513 -0.4576916 1.0000000 0.5674657
## 7 -0.5303364 -0.4095398 -0.5497990 0.6990375 -0.1380033 0.5674657 1.0000000
## 8 0.2952560 0.1731837 0.5357866 -0.7172780 0.4383080 -0.8277357 -0.4786956
## 9 0.2211682 0.2462429 0.5933225 -0.7590314 0.4122114 -0.9360299 -0.7046199
## X8 X9
## 1 0.2952560 0.2211682
## 2 0.1731837 0.2462429
## 3 0.5357866 0.5933225
## 4 -0.7172780 -0.7590314
## 5 0.4383080 0.4122114
## 6 -0.8277357 -0.9360299
## 7 -0.4786956 -0.7046199
## 8 1.0000000 0.7191035
## 9 0.7191035 1.0000000
\(\lambda_{1} = 0.77311\) \(\lambda_{2} = 0.55701\) \(\lambda_{3} = 0.16943\) \(\lambda_{4} = 0.04720\)
RXX = R[1:5, 1:5]
RXY = R[1:5, 6:9]
RYX = R[6:9, 1:5]
RYY = R[6:9, 6:9]
eigen(solve(RYY) %*% RYX %*% solve(RXX) %*% RXY)$values
## [1] 0.77311956 0.55701920 0.16943899 0.04720573