librerias
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
library(readxl)
MAIZ <- read_excel("C:/Users/lufca/OneDrive/Escritorio/Tesis/REVISSAS/Dialelicos/MAIZ1.xlsx",
sheet = "Hoja1")
View(MAIZ)
MAIZ$BLOQUE
## [1] "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0"
## [13] "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "2.0" "2.0" "2.0"
## [25] "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0"
## [37] "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
## [49] "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
## [61] "3.0" "3.0" "3.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0"
## [73] "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0" "1.0"
## [85] "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0"
## [97] "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "3.0" "3.0" "3.0"
## [109] "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
## [121] "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
MAIZ$H<-as.factor(MAIZ$H)
MAIZ$P<-as.factor(MAIZ$P)
MAIZ$PS<-as.numeric(MAIZ$PS)
table(MAIZ$SEMESTRE)
##
## 1.0 2.0
## 63 63
GARNER <- MAIZ %>%
filter(SEMESTRE == "1.0") %>%
group_by(H, P) %>%
summarise(M = sum(PS),.groups = 'drop') %>%
ungroup()
# Verifica el resultado
print(GARNER)
## # A tibble: 21 × 3
## H P M
## <fct> <fct> <dbl>
## 1 1.0 1.0 1.1
## 2 1.0 2.0 2.4
## 3 1.0 3.0 3.5
## 4 1.0 4.0 3
## 5 1.0 5.0 2.1
## 6 1.0 6.0 4.4
## 7 2.0 2.0 1.9
## 8 2.0 3.0 3.8
## 9 2.0 4.0 4.9
## 10 2.0 5.0 4.1
## # ℹ 11 more rows
MAIZ_filtrado <- MAIZ %>% filter(SEMESTRE == "1.0")
modelo <- lm(PS ~ BLOQUE + interaction(H,P) , data = MAIZ_filtrado)
primero<-anova(modelo)
print(primero)
## Analysis of Variance Table
##
## Response: PS
## Df Sum Sq Mean Sq F value Pr(>F)
## BLOQUE 2 3.4337 1.71683 25.627 6.857e-08 ***
## interaction(H, P) 20 9.1927 0.45963 6.861 1.344e-07 ***
## Residuals 40 2.6797 0.06699
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Establecer contraste tipo I explícitamente
options(contrasts = c("contr.sum", "contr.poly"))
# Ajustar el modelo
modelo <- glm(PS ~ BLOQUE + interaction(H,P), data = MAIZ_filtrado)
# Ver la ANOVA
anova(modelo)
## Analysis of Deviance Table
##
## Model: gaussian, link: identity
##
## Response: PS
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev F Pr(>F)
## NULL 62 15.3060
## BLOQUE 2 3.4337 60 11.8724 25.627 6.857e-08 ***
## interaction(H, P) 20 9.1927 40 2.6797 6.861 1.344e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Error
ERROR<-primero["Residuals", "Sum Sq"]
print(ERROR)
## [1] 2.679683
##Empienza dialelico
INV<-GARNER[,c("H", "P","M")]
¿Por qué es necesarion cambiar el orden de los padres?
INV1<-INV[INV$H != INV$P, ]
INV1$H1<-INV1$H
INV1$P1<-INV1$P
TRABAJAR CON INV1
temp <- INV1$H
INV1$H <- INV1$P
INV1$P <- temp
BIEN4
INV2<- INV1[, 1:3]
GARNER<-rbind(GARNER,INV2)
TOTAL PENDIENTE
TOTAL <- GARNER %>%
group_by(H) %>%
summarize(
YP = mean(M, na.rm = TRUE),
Y = sum(M, na.rm = TRUE)
)
print(TOTAL)
## # A tibble: 6 × 3
## H YP Y
## <fct> <dbl> <dbl>
## 1 1.0 2.75 16.5
## 2 2.0 3.63 21.8
## 3 3.0 3.5 21
## 4 4.0 3.82 22.9
## 5 5.0 3.6 21.6
## 6 6.0 3.97 23.8
GARNER$H<-as.numeric(GARNER$H)
GARNER$P<-as.numeric(GARNER$P)
LO OTRO
DIAG <- GARNER %>% filter(!(H > P))
print(DIAG)
## # A tibble: 21 × 3
## H P M
## <dbl> <dbl> <dbl>
## 1 1 1 1.1
## 2 1 2 2.4
## 3 1 3 3.5
## 4 1 4 3
## 5 1 5 2.1
## 6 1 6 4.4
## 7 2 2 1.9
## 8 2 3 3.8
## 9 2 4 4.9
## 10 2 5 4.1
## # ℹ 11 more rows
Linea 199 bien
SUM <- sum(DIAG$M, na.rm = TRUE) # Suma de los valores de M
USS <- sum(DIAG$M^2, na.rm = TRUE)
# Crear un nuevo data frame con los resultados
TOT <- data.frame(SUM = SUM, USS = USS )
PADRES <- GARNER %>%
filter(H == P)
print(PADRES)
## # A tibble: 6 × 3
## H P M
## <dbl> <dbl> <dbl>
## 1 1 1 1.1
## 2 2 2 1.9
## 3 3 3 1.9
## 4 4 4 2.5
## 5 5 5 3.2
## 6 6 6 1.4
BIEN
H<- PADRES %>%
group_by(H) %>%
summarise(MEANH = mean(M, na.rm = TRUE))
BIEN
P <- PADRES %>%
group_by(P) %>%
summarise(MEANP = mean(M, na.rm = TRUE))
Bien linea 218
MG <- PADRES %>%
summarise(MG = mean(M, na.rm = TRUE),
TOTAL = sum(M, na.rm = TRUE),
USSP = sum((M )^2, na.rm = TRUE))
print(MG)
## # A tibble: 1 × 3
## MG TOTAL USSP
## <dbl> <dbl> <dbl>
## 1 2 12 26.9
ahora
DIF1<- merge(MG, PADRES, by = NULL)
# Calcular DIF para cada combinación
DIF1$DIF <- (DIF1$M - DIF1$MG) * 0.5
# Ver el resultado
print(DIF1)
## MG TOTAL USSP H P M DIF
## 1 2 12 26.88 1 1 1.1 -0.45
## 2 2 12 26.88 2 2 1.9 -0.05
## 3 2 12 26.88 3 3 1.9 -0.05
## 4 2 12 26.88 4 4 2.5 0.25
## 5 2 12 26.88 5 5 3.2 0.60
## 6 2 12 26.88 6 6 1.4 -0.30
Bien continuar en la linea 227
Ajuste por escritura
TOTAL$H <- as.integer(TOTAL$H)
TEMP<- merge(PADRES, TOTAL, by = "H", all = TRUE)
TEMP$SS <- (TEMP$M + TEMP$Y)^2
print(TEMP)
## H P M YP Y SS
## 1 1 1 1.1 2.750000 16.5 309.76
## 2 2 2 1.9 3.633333 21.8 561.69
## 3 3 3 1.9 3.500000 21.0 524.41
## 4 4 4 2.5 3.816667 22.9 645.16
## 5 5 5 3.2 3.600000 21.6 615.04
## 6 6 6 1.4 3.966667 23.8 635.04
La sumatoria
SS<-sum(TEMP$SS)
SS1 <- data.frame(SS)
SS1$FREQ<-6
print(SS)
## [1] 3291.1
Frecuencias
SSV<-merge(TOT,SS1)
SIGUIENTE
SSV$SSV <- (1 / (SSV$FREQ + 2)) * (SSV$SS - ((4 / SSV$FREQ) * (SSV$SUM^2)))
SSV$SSH <- SSV$USS - (SSV$SS / (SSV$FREQ + 2)) +
((2 / ((SSV$FREQ + 1) * (SSV$FREQ + 2))) * (SSV$SUM^2))
print(SSV)
## SUM USS SS FREQ SSV SSH
## 1 69.8 259.58 3291.1 6 5.384167 22.19393
colnames(SSV)[colnames(SSV) == "SUM"]<-"TOT"
Linea 240 bien
Datos HIJOS
HIJOS<- GARNER %>% filter((H != P))
Medias de hijos
MEDIA1 <- HIJOS %>%
group_by(H) %>%
summarise(
YNP = mean(M),
YN = sum(M),
)
MEDIA1$FREQ<-c(5,5,5,5,5,5)
print(MEDIA1)
## # A tibble: 6 × 4
## H YNP YN FREQ
## <dbl> <dbl> <dbl> <dbl>
## 1 1 3.08 15.4 5
## 2 2 3.98 19.9 5
## 3 3 3.82 19.1 5
## 4 4 4.08 20.4 5
## 5 5 3.68 18.4 5
## 6 6 4.48 22.4 5
MEDIA PENDIENTE
MEDIAX <- HIJOS %>%
group_by(P) %>%
summarise(
YNPP = mean(M), # Media de M
YN = sum(M), # Suma de M
)
MEDIAX$N<-c(5,5,5,5,5,5)
print(MEDIAX)
## # A tibble: 6 × 4
## P YNPP YN N
## <dbl> <dbl> <dbl> <dbl>
## 1 1 3.08 15.4 5
## 2 2 3.98 19.9 5
## 3 3 3.82 19.1 5
## 4 4 4.08 20.4 5
## 5 5 3.68 18.4 5
## 6 6 4.48 22.4 5
segunda media
MEDIA2 <- HIJOS %>%
summarise(
YHP = mean(M),
YH = sum(M),
FREQ = sum(MEDIA1$FREQ)
)
print(MEDIA2)
## # A tibble: 1 × 3
## YHP YH FREQ
## <dbl> <dbl> <dbl>
## 1 3.85 116. 30
DIF2 <- merge(MEDIA2, MEDIA1, by = NULL, suffixes = c("_MEDIA2", "_MEDIA1"))
# Calcular YHDIF usando operaciones vectorizadas
DIF2$YHDIF <- (DIF2$FREQ_MEDIA1/ (DIF2$FREQ_MEDIA1 - 1)) * (DIF2$YNP - DIF2$YHP)
print(DIF2)
## YHP YH FREQ_MEDIA2 H YNP YN FREQ_MEDIA1 YHDIF
## 1 3.853333 115.6 30 1 3.08 15.4 5 -0.96666667
## 2 3.853333 115.6 30 2 3.98 19.9 5 0.15833333
## 3 3.853333 115.6 30 3 3.82 19.1 5 -0.04166667
## 4 3.853333 115.6 30 4 4.08 20.4 5 0.28333333
## 5 3.853333 115.6 30 5 3.68 18.4 5 -0.21666667
## 6 3.853333 115.6 30 6 4.48 22.4 5 0.78333333
##Heterosis
HETEROSIS<-merge(DIF1, DIF2)
Columnas
HETEROSIS$HP= HETEROSIS$YHP- HETEROSIS$MG
HETEROSIS$HJ = HETEROSIS$YHDIF- HETEROSIS$DI
HETEROSIS$VJ = (HETEROSIS$DIF)*2
print(HETEROSIS[,c("P", "HP","VJ","HJ")])
## P HP VJ HJ
## 1 1 1.853333 -0.9 -0.516666667
## 2 2 1.853333 -0.1 0.208333333
## 3 3 1.853333 -0.1 0.008333333
## 4 4 1.853333 0.5 0.033333333
## 5 5 1.853333 1.2 -0.816666667
## 6 6 1.853333 -0.6 1.083333333
HIJOS2
library(dplyr)
HIJOS2<- DIAG %>% filter(H != P)
resumen
mean_M <- mean(HIJOS2$M)
sum_M <- sum(HIJOS2$M)
uss_M <- sum((HIJOS2$M)^2) # Suma de los cuadrados de las desviaciones
# Crear un nuevo data frame con los resultados
TOT1 <- data.frame(USS = uss_M, MEAN = mean_M, TOT1 = sum_M)
# Ver el resultado
print(TOT1)
## USS MEAN TOT1
## 1 232.7 3.853333 57.8
HIJOS2 <- HIJOS2 %>%
arrange(H)
OTRO
EH1<-merge(H, HIJOS2)
print(EH1)
## H MEANH P M
## 1 1 1.1 2 2.4
## 2 1 1.1 3 3.5
## 3 1 1.1 4 3.0
## 4 1 1.1 5 2.1
## 5 1 1.1 6 4.4
## 6 2 1.9 3 3.8
## 7 2 1.9 4 4.9
## 8 2 1.9 5 4.1
## 9 2 1.9 6 4.7
## 10 3 1.9 4 4.0
## 11 3 1.9 5 4.0
## 12 3 1.9 6 3.8
## 13 4 2.5 5 3.6
## 14 4 2.5 6 4.9
## 15 5 3.2 6 4.6
ORDENAR
EH1<-EH1%>%
arrange(H,P)
HIJOS2 <- HIJOS2 %>%
arrange(P)
EH2<-merge(P,HIJOS2)
print(EH2)
## P MEANP H M
## 1 2 1.9 1 2.4
## 2 3 1.9 1 3.5
## 3 3 1.9 2 3.8
## 4 4 2.5 1 3.0
## 5 4 2.5 2 4.9
## 6 4 2.5 3 4.0
## 7 5 3.2 1 2.1
## 8 5 3.2 2 4.1
## 9 5 3.2 3 4.0
## 10 5 3.2 4 3.6
## 11 6 1.4 1 4.4
## 12 6 1.4 2 4.7
## 13 6 1.4 3 3.8
## 14 6 1.4 4 4.9
## 15 6 1.4 5 4.6
organizar
EH2<-EH2%>%
arrange(H,P)
print(EH2)
## P MEANP H M
## 1 2 1.9 1 2.4
## 2 3 1.9 1 3.5
## 3 4 2.5 1 3.0
## 4 5 3.2 1 2.1
## 5 6 1.4 1 4.4
## 6 3 1.9 2 3.8
## 7 4 2.5 2 4.9
## 8 5 3.2 2 4.1
## 9 6 1.4 2 4.7
## 10 4 2.5 3 4.0
## 11 5 3.2 3 4.0
## 12 6 1.4 3 3.8
## 13 5 3.2 4 3.6
## 14 6 1.4 4 4.9
## 15 6 1.4 5 4.6
OTRO
EH<-merge(EH1, EH2)
NUEVA
EH$HH<-EH$M- ((EH$MEANP+EH$MEANH)/2)
OTRO CONJUNTO DE DATOS
EH<-EH%>%
arrange(H,P)
print(EH)
## H P M MEANH MEANP HH
## 1 1 2 2.4 1.1 1.9 0.90
## 2 1 3 3.5 1.1 1.9 2.00
## 3 1 4 3.0 1.1 2.5 1.20
## 4 1 5 2.1 1.1 3.2 -0.05
## 5 1 6 4.4 1.1 1.4 3.15
## 6 2 3 3.8 1.9 1.9 1.90
## 7 2 4 4.9 1.9 2.5 2.70
## 8 2 5 4.1 1.9 3.2 1.55
## 9 2 6 4.7 1.9 1.4 3.05
## 10 3 4 4.0 1.9 2.5 1.80
## 11 3 5 4.0 1.9 3.2 1.45
## 12 3 6 3.8 1.9 1.4 2.15
## 13 4 5 3.6 2.5 3.2 0.75
## 14 4 6 4.9 2.5 1.4 2.95
## 15 5 6 4.6 3.2 1.4 2.30
cambiar el orden
HIJOS2<-HIJOS2%>%
arrange(H)
EHS1<-merge(MEDIA1,HIJOS2)
print(EHS1)
## H YNP YN FREQ P M
## 1 1 3.08 15.4 5 2 2.4
## 2 1 3.08 15.4 5 3 3.5
## 3 1 3.08 15.4 5 4 3.0
## 4 1 3.08 15.4 5 5 2.1
## 5 1 3.08 15.4 5 6 4.4
## 6 2 3.98 19.9 5 3 3.8
## 7 2 3.98 19.9 5 4 4.9
## 8 2 3.98 19.9 5 5 4.1
## 9 2 3.98 19.9 5 6 4.7
## 10 3 3.82 19.1 5 4 4.0
## 11 3 3.82 19.1 5 5 4.0
## 12 3 3.82 19.1 5 6 3.8
## 13 4 4.08 20.4 5 5 3.6
## 14 4 4.08 20.4 5 6 4.9
## 15 5 3.68 18.4 5 6 4.6
ORDENAR
EHS1<-EHS1%>%
arrange(H,P)
ordenar otra vez
HIJOS2<-HIJOS2%>%
arrange(P)
otro
EHS2<-merge(MEDIAX,HIJOS2)
organizados
EHS2<-EHS2%>%
arrange(H,P)
print(EHS2)
## P YNPP YN N H M
## 1 2 3.98 19.9 5 1 2.4
## 2 3 3.82 19.1 5 1 3.5
## 3 4 4.08 20.4 5 1 3.0
## 4 5 3.68 18.4 5 1 2.1
## 5 6 4.48 22.4 5 1 4.4
## 6 3 3.82 19.1 5 2 3.8
## 7 4 4.08 20.4 5 2 4.9
## 8 5 3.68 18.4 5 2 4.1
## 9 6 4.48 22.4 5 2 4.7
## 10 4 4.08 20.4 5 3 4.0
## 11 5 3.68 18.4 5 3 4.0
## 12 6 4.48 22.4 5 3 3.8
## 13 5 3.68 18.4 5 4 3.6
## 14 6 4.48 22.4 5 4 4.9
## 15 6 4.48 22.4 5 5 4.6
OTRO
EHS3 <- merge(EHS1, EHS2, all.x = TRUE)
EHS3$YNPP<-EHS2$YNPP
EHS3$N<-5
otro
HSS <- cbind(EHS3, MEDIA2)
HSS$K<- ((HSS$N + 1) / (HSS$N - 1)) * HSS$YHP
HSS$A<- (HSS$N / (HSS$N - 1)) * (HSS$YNP + HSS$YNPP)
HSS$SS <- HSS$M + HSS$K - HSS$A
print(HSS)
## H YN P M YNP FREQ YNPP N YHP YH FREQ K A SS
## 1 1 15.4 2 2.4 3.08 5 3.98 5 3.853333 115.6 30 5.78 8.825 -0.645
## 2 1 15.4 3 3.5 3.08 5 3.82 5 3.853333 115.6 30 5.78 8.625 0.655
## 3 1 15.4 4 3.0 3.08 5 4.08 5 3.853333 115.6 30 5.78 8.950 -0.170
## 4 1 15.4 5 2.1 3.08 5 3.68 5 3.853333 115.6 30 5.78 8.450 -0.570
## 5 1 15.4 6 4.4 3.08 5 4.48 5 3.853333 115.6 30 5.78 9.450 0.730
## 6 2 19.9 3 3.8 3.98 5 3.82 5 3.853333 115.6 30 5.78 9.750 -0.170
## 7 2 19.9 4 4.9 3.98 5 4.08 5 3.853333 115.6 30 5.78 10.075 0.605
## 8 2 19.9 5 4.1 3.98 5 3.68 5 3.853333 115.6 30 5.78 9.575 0.305
## 9 2 19.9 6 4.7 3.98 5 4.48 5 3.853333 115.6 30 5.78 10.575 -0.095
## 10 3 19.1 4 4.0 3.82 5 4.08 5 3.853333 115.6 30 5.78 9.875 -0.095
## 11 3 19.1 5 4.0 3.82 5 3.68 5 3.853333 115.6 30 5.78 9.375 0.405
## 12 3 19.1 6 3.8 3.82 5 4.48 5 3.853333 115.6 30 5.78 10.375 -0.795
## 13 4 20.4 5 3.6 4.08 5 3.68 5 3.853333 115.6 30 5.78 9.700 -0.320
## 14 4 20.4 6 4.9 4.08 5 4.48 5 3.853333 115.6 30 5.78 10.700 -0.020
## 15 5 18.4 6 4.6 3.68 5 4.48 5 3.853333 115.6 30 5.78 10.200 0.180
##PARAMETROS ESTIMADOS DE HETEROSIS POR VARIEDAD Y EFECTOS ESTIMADOS PARA HETEROSIS ESPECIFICA EFECTOS
EFECTOS<-merge(EH, HSS)
print(EFECTOS[,c("H","P","M","HH","SS")])
## H P M HH SS
## 1 1 2 2.4 0.90 -0.645
## 2 1 3 3.5 2.00 0.655
## 3 1 4 3.0 1.20 -0.170
## 4 1 5 2.1 -0.05 -0.570
## 5 1 6 4.4 3.15 0.730
## 6 2 3 3.8 1.90 -0.170
## 7 2 4 4.9 2.70 0.605
## 8 2 5 4.1 1.55 0.305
## 9 2 6 4.7 3.05 -0.095
## 10 3 4 4.0 1.80 -0.095
## 11 3 5 4.0 1.45 0.405
## 12 3 6 3.8 2.15 -0.795
## 13 4 5 3.6 0.75 -0.320
## 14 4 6 4.9 2.95 -0.020
## 15 5 6 4.6 2.30 0.180
SSH<-cbind(TOT1,TOT, MG)
OJO
x<-sum(EFECTOS$SS)
¿Por qué ese número de frecuencia
SSH$A <- (SSH$TOTAL^2) / 6
SSH$B <- 2 * (SSH$TOT1^2) / (6 * (6 - 1))
SSH$C <- 2 * (SSH$SUM)^2 / (6 * (6 + 1))
SSH$SSHP <- SSH$A + SSH$B - SSH$C
print(SSH)
## USS MEAN TOT1 SUM USS MG TOTAL USSP A B C SSHP
## 1 232.7 3.853333 57.8 69.8 259.58 2 12 26.88 24 222.7227 232.0019 14.72076
SIGO
SSVH1 <- MEDIA1
print(SSVH1)
## # A tibble: 6 × 4
## H YNP YN FREQ
## <dbl> <dbl> <dbl> <dbl>
## 1 1 3.08 15.4 5
## 2 2 3.98 19.9 5
## 3 3 3.82 19.1 5
## 4 4 4.08 20.4 5
## 5 5 3.68 18.4 5
## 6 6 4.48 22.4 5
USSYN <- sum((SSVH1$YN)^2)
# Crear un nuevo dataframe SSHVP con el resultado
SSHVP <- data.frame(USSYN = USSYN)
print(SSHVP)
## USSYN
## 1 2254.46
otro dataframe
SSHV<-cbind(TOT1, SSHVP, SSV,SSH, ERROR)
MOFIDICAR
SSHV$A<-(SSHV$USSYN/(SSHV$FREQ-2))
SSHV$B<-(4*(SSHV$TOT1^2))/(SSHV$FREQ*(SSHV$FREQ-2))
SSHV$C<-((SSHV$TOTAL^2)/SSHV$FREQ)
print(SSHV)
## USS MEAN TOT1 USSYN TOT USS SS FREQ SSV SSH USS
## 1 232.7 3.853333 57.8 2254.46 69.8 259.58 3291.1 6 5.384167 22.19393 232.7
## MEAN TOT1 SUM USS MG TOTAL USSP A B C SSHP
## 1 3.853333 57.8 69.8 259.58 2 12 26.88 563.615 556.8067 24 14.72076
## ERROR
## 1 2.679683
Bien AGREGAR MÁS INFORMACIÓN
SSHV$GLT=((SSHV$FREQ*(SSHV$FREQ+1))/2)-1
SSHV$GLV=SSHV$FREQ-1
SSHV$GLH=(SSHV$FREQ*(SSHV$FREQ-1))/2
SSHV$GLHP=1
SSHV$GLHV=SSHV$GLV
SSHV$GLS=(SSHV$FREQ*(SSHV$FREQ-3))/2
SSHV$GLE=40
SSHV$R=(SSHV$GLE/SSHV$GLT)+1
SSHV$SSHV=SSHV$A-SSHV$B+SSHV$USSP-SSHV$C-SSHV$SSV
SSHV$SSS=SSHV$SSH-SSHV$SSHP-SSHV$SSHV
SSHV$SST=SSHV$SSV+SSHV$SSH
SSHV$SST=SSHV$SST/SSHV$R
SSHV$SSV=SSHV$SSV/SSHV$R
SSHV$SSH=SSHV$SSH/SSHV$R
SSHV$SSHP=SSHV$SSHP/SSHV$R
SSHV$SSHV=SSHV$SSHV/SSHV$R
SSHV$SSS=SSHV$SSS/SSHV$R
SSHV$SSE=SSHV$ERROR
print(SSHV)
## USS MEAN TOT1 USSYN TOT USS SS FREQ SSV SSH USS
## 1 232.7 3.853333 57.8 2254.46 69.8 259.58 3291.1 6 1.794722 7.397976 232.7
## MEAN TOT1 SUM USS MG TOTAL USSP A B C SSHP
## 1 3.853333 57.8 69.8 259.58 2 12 26.88 563.615 556.8067 24 4.906921
## ERROR GLT GLV GLH GLHP GLHV GLS GLE R SSHV SSS SST SSE
## 1 2.679683 20 5 15 1 5 9 40 3 1.434722 1.056333 9.192698 2.679683
SSHV$CMT=SSHV$SST/SSHV$GLT
SSHV$CMV=SSHV$SSV/SSHV$GLV
SSHV$CMH=SSHV$SSH/SSHV$GLH
SSHV$CMHP=SSHV$SSHP/SSHV$GLHP
SSHV$CMHV=SSHV$SSHV/SSHV$GLHV
SSHV$CMS=SSHV$SSS/SSHV$GLS
SSHV$CME=SSHV$SSE/SSHV$GLE
SSHV$FT=SSHV$CMT/SSHV$CME
SSHV$FV=SSHV$CMV/SSHV$CME
SSHV$FH=SSHV$CMH/SSHV$CME
SSHV$FHP=SSHV$CMHP/SSHV$CME
SSHV$FHV=SSHV$CMHV/SSHV$CME
SSHV$FS=SSHV$CMS/SSHV$CME
print(SSHV)
## USS MEAN TOT1 USSYN TOT USS SS FREQ SSV SSH USS
## 1 232.7 3.853333 57.8 2254.46 69.8 259.58 3291.1 6 1.794722 7.397976 232.7
## MEAN TOT1 SUM USS MG TOTAL USSP A B C SSHP
## 1 3.853333 57.8 69.8 259.58 2 12 26.88 563.615 556.8067 24 4.906921
## ERROR GLT GLV GLH GLHP GLHV GLS GLE R SSHV SSS SST SSE
## 1 2.679683 20 5 15 1 5 9 40 3 1.434722 1.056333 9.192698 2.679683
## CMT CMV CMH CMHP CMHV CMS CME
## 1 0.4596349 0.3589444 0.4931984 4.906921 0.2869444 0.1173704 0.06699206
## FT FV FH FHP FHV FS
## 1 6.861035 5.358014 7.362042 73.2463 4.28326 1.752004
SSHV$PFT <- 1 - pf(SSHV$FT, SSHV$GLT, SSHV$GLE)
SSHV$PFV <- 1 - pf(SSHV$FV, SSHV$GLT, SSHV$GLE)
SSHV$PFH <- 1 - pf(SSHV$FH, SSHV$GLT, SSHV$GLE)
SSHV$PFHP <- 1 - pf(SSHV$FHP, SSHV$GLT, SSHV$GLE)
SSHV$PFHV <- 1 - pf(SSHV$FHV, SSHV$GLT, SSHV$GLE)
SSHV$PFS <- 1 - pf(SSHV$FS, SSHV$GLT, SSHV$GLE)
print(SSHV)
## USS MEAN TOT1 USSYN TOT USS SS FREQ SSV SSH USS
## 1 232.7 3.853333 57.8 2254.46 69.8 259.58 3291.1 6 1.794722 7.397976 232.7
## MEAN TOT1 SUM USS MG TOTAL USSP A B C SSHP
## 1 3.853333 57.8 69.8 259.58 2 12 26.88 563.615 556.8067 24 4.906921
## ERROR GLT GLV GLH GLHP GLHV GLS GLE R SSHV SSS SST SSE
## 1 2.679683 20 5 15 1 5 9 40 3 1.434722 1.056333 9.192698 2.679683
## CMT CMV CMH CMHP CMHV CMS CME
## 1 0.4596349 0.3589444 0.4931984 4.906921 0.2869444 0.1173704 0.06699206
## FT FV FH FHP FHV FS PFT PFV
## 1 6.861035 5.358014 7.362042 73.2463 4.28326 1.752004 1.343998e-07 3.309232e-06
## PFH PFHP PFHV PFS
## 1 5.095213e-08 0 4.499e-05 0.06485269
Imprimir el ANOVA
anova_table <- data.frame(
Fuente = c("Total", "Variedades", "Heterosis", "Heterosis Promedio","Het. variedad", "Heterosis Específica", "Error"),
Grados_de_Libertad = c(SSHV$GLT, SSHV$GLV, SSHV$GLH, SSHV$GLHP, SSHV$GLV, SSHV$GLS, SSHV$GLE),
Suma_de_Cuadrados = c(SSHV$SST, SSHV$SSV, SSHV$SSH,
SSHV$SSHP, SSHV$SSHV, SSHV$SSS, SSHV$SSE),
Cuadrados_Medios = c(SSHV$CMT, SSHV$CMV, SSHV$CMH,
SSHV$CMHP, SSHV$CMHV, SSHV$CMS,SSHV$CME),
Valor_F = c(SSHV$FT, SSHV$FV, SSHV$FH,
SSHV$FHP, SSHV$FHV,SSHV$FS, NA),
Probabilidad_F = c(SSHV$PFT, SSHV$PFV,SSHV$PFH, SSHV$PFHP,SSHV$PFHV, SSHV$PFS, NA)
)
print(anova_table)
## Fuente Grados_de_Libertad Suma_de_Cuadrados Cuadrados_Medios
## 1 Total 20 9.192698 0.45963492
## 2 Variedades 5 1.794722 0.35894444
## 3 Heterosis 15 7.397976 0.49319841
## 4 Heterosis Promedio 1 4.906921 4.90692063
## 5 Het. variedad 5 1.434722 0.28694444
## 6 Heterosis Específica 9 1.056333 0.11737037
## 7 Error 40 2.679683 0.06699206
## Valor_F Probabilidad_F
## 1 6.861035 1.343998e-07
## 2 5.358014 3.309232e-06
## 3 7.362042 5.095213e-08
## 4 73.246298 0.000000e+00
## 5 4.283260 4.499000e-05
## 6 1.752004 6.485269e-02
## 7 NA NA
ÚLTIMO PASO
suma_HJ <- sum(HETEROSIS$HJ, na.rm = TRUE)
# Mostrar el resultado con un mensaje
print(paste("COMPROBACION - ESTA SUMA DEBE SER APROX. CERO:", suma_HJ))
## [1] "COMPROBACION - ESTA SUMA DEBE SER APROX. CERO: -1.11022302462516e-15"