\[y_{jl} = \mu + \sum_{i=1}^v{f_{jl}^{(i)} \alpha_i}+ \beta_j+\gamma_l+\epsilon_{jl}\]
library(readxl)
Ejercicio_Cuadrados_de_Youden <- read_excel("C:/Users/ERICK/Desktop/Semestre 2021-I/Disenio de Experimentos/Ejercicios/Ejercicio Cuadrados de Youden.xlsx")
df=Ejercicio_Cuadrados_de_Youden
Trat=Ejercicio_Cuadrados_de_Youden$Tratamiento
Long=Ejercicio_Cuadrados_de_Youden$Longitud
Latit=Ejercicio_Cuadrados_de_Youden$Latitud
Rend=Ejercicio_Cuadrados_de_Youden$Rendimiento
b<-8#columnas
k<-7#filas
library(collapsibleTree)
collapsibleTree::collapsibleTreeSummary(df, hierarchy = c('Longitud', 'Latitud', 'Tratamiento','Rendimiento' ))
N<-xtabs(~Trat + Long, data <- df);N
## Long
## Trat 74 O 75 O 76 O 77 O 78 O 79 O 80 O 81 O
## A 1 0 1 1 1 1 1 1
## B 1 1 1 1 0 1 1 1
## C 1 1 1 1 1 1 1 0
## D 1 1 1 1 1 1 0 1
## E 1 1 1 0 1 1 1 1
## F 1 1 0 1 1 1 1 1
## G 0 1 1 1 1 1 1 1
## H 1 1 1 1 1 0 1 1
v<-nlevels(Trat);
n<-b*k;
T1<-aggregate(df$Rendimiento, by<-list(Trat<-df$Tratamiento),FUN<-sum);
Tt<-matrix(T1$x,v,1);# totales de Trat
## Warning in matrix(T1$x, v, 1): la longitud de los datos excede el tamaño de la
## matriz
T2<-aggregate(df$Rendimiento, by<-list(Latit<-df$Latitud),FUN<-sum);
Tr<-matrix(T2$x,k,1);# totales filas
T3<-aggregate(df$Rendimiento, by<-list(Long<-df$Longitud),FUN<-sum);
Tc<-matrix(T3$x,b,1)#totales Columna
i<-1:k
j<-1:b
if((b==k)&&(N[i,j]==1)){
print("dado el diseño cuadrado latino");
#si es un DCL uno corre el código antes considerado.
}else{
x<-0;z<-0;
if(v>=2 && k<v)
{
A<-N%*%t(N);
for(i in 2:v){
x1<-A[1,1]-A[i,i];
x<-x+abs(x1);
}
sum1<-sum(x);sum1
for(i in 1:v){
for(j in 1:v){
if(i!=j){
x2<-A[1,2]-A[i,j];
z<-z+abs(x2)}
}}
sum2<-sum(z);
if(sum1==0 && sum2==0){
r<-A[1,1];
lambda<-A[1,2];
cat("dado el diseño cuadrado de Youden \n con r y lambda respectivamente")
print(r);
print(lambda);
#se define el vector columna de k entradas todas en 1
ek<-c(matrix(rep(1,k),k,1));
Dk<-diag(k)-(ek%*%t(ek))/v;
Q<-Tt-(N%*%Tc)/k;
alpha_hat<-(k/(lambda*v))*Q;
beta_hat<-(Tc/k)-(t(N)%*%Q)/(lambda*v);
gamma_hat<-Tr/v;
print("Las estimaciones son");
print("mu_hat");
print("0");
print("alpha_hat");
print(alpha_hat);
print("beta_hat")
print(beta_hat)
print("gamma_hat")
print(gamma_hat);
#probando hipótesis H_alpha, H_beta y H_gamma
Youden_Erick <- lm(Rend~Trat+Latit+Long, df)
anova(Youden_Erick) }}}
med_trat = tapply(df$Rendimiento, df$Tratamiento, mean)
barplot(med_trat, ylim = c(0,50),
main='Distribución de la respuesta por tratamiento')
abline(h=mean(df$Rendimiento))
med_trat2 = tapply(df$Rendimiento, df$Latitud, mean)
barplot(med_trat2, ylim = c(0,70),
main='Distribución de la respuesta por Bloque fila')
abline(h=mean(df$Rendimiento))