Evaluación Modelos Lineales
Magister en Estadística Aplicada
PROBLEMA 1
El siguiente es un modelo lineal que expresa los resultados de un experimento realizado a los efectos de evaluar el rendimiento de 4 especies de leguminosas a campo. Los datos se encuentran en el Archivo Legumbres2.txt . El Modelo ajustado en R es:lm(Rendimiento~Especie+Nro.granos+P1000G+Especie:Nro.granos+Especie:P1000G), donde Especie es tratada como factor.
La tabla I conteniendo las pruebas de hipótesis para cada término del modelo (excepto la constante) se presenta a continuación:
| numDF | F-value | p-value | |
|---|---|---|---|
| (Intercept) | 1 | 6.548328 | 0.0132797 |
| Especie | 3 | 6.279372 | 0.0009647 |
| Nro.granos | 1 | 1142.904385 | 0.0000000 |
| P1000G | 1 | 9.587596 | 0.0030808 |
| Especie:Nro.granos | 3 | 476.011905 | 0.0000000 |
| Especie:P1000G | 3 | 3.155488 | 0.0318917 |
Los parámetros estimados del modelo para estos datos, de acuerdo con la parametrización que hace la función lm del lenguaje R, son los siguientes:
| x | |
|---|---|
| (Intercept) | -336.0586845 |
| EspecieGarbanzo | -765.6991557 |
| EspecieLenteja | -274.1995143 |
| EspecieLupino | -723.9136790 |
| Nro.granos | 0.9933700 |
| P1000G | 3.7491188 |
| EspecieGarbanzo:Nro.granos | 2.3717799 |
| EspecieLenteja:Nro.granos | -0.5608770 |
| EspecieLupino:Nro.granos | 0.7794637 |
| EspecieGarbanzo:P1000G | -0.3888778 |
| EspecieLenteja:P1000G | 9.7747782 |
| EspecieLupino:P1000G | 2.4889339 |
- Escribir la matriz
Mde la transformación lineal de los parámetros que devuelve las medias de Especie para el valor medio de Nro.granos y P1000G.
m_nro=mean(misdatos$Nro.granos)
m_peso=mean(misdatos$P1000G)
M_ARVEJA= matrix(c(1,0,0,0,m_nro,m_peso,0,0,0,0,0,0),ncol=12,byrow=T)
M_GARBANZO=matrix(c(1,1,0,0,m_nro,m_peso,1*m_nro,0,0,1*m_peso,0,0),ncol=12,byrow=T)
M_LENTEJA= matrix(c(1,0,1,0,m_nro,m_peso,0,1*m_nro,0,0,1*m_peso,0),ncol=12,byrow=T)
M_LUPINO= matrix(c(1,0,0,1,m_nro,m_peso,0,0,1*m_nro,0,0,1*m_peso),ncol=12,byrow=T)
M=rbind(M_ARVEJA,M_GARBANZO,M_LENTEJA,M_LUPINO)
rownames(M)=c("Arveja","Garbanzo","Lenteja","Lupino")
rownames(M)=c("Arveja","Garbanzo","Lenteja","Lupino")
kable(M)| Arveja | 1 | 0 | 0 | 0 | 884.5075 | 171.2716 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 |
| Garbanzo | 1 | 1 | 0 | 0 | 884.5075 | 171.2716 | 884.5075 | 0.0000 | 0.0000 | 171.2716 | 0.0000 | 0.0000 |
| Lenteja | 1 | 0 | 1 | 0 | 884.5075 | 171.2716 | 0.0000 | 884.5075 | 0.0000 | 0.0000 | 171.2716 | 0.0000 |
| Lupino | 1 | 0 | 0 | 1 | 884.5075 | 171.2716 | 0.0000 | 0.0000 | 884.5075 | 0.0000 | 0.0000 | 171.2716 |
- Calcular las Medias de Especie para el valor medio de Nro.granos y P1000G, errores estandar e intervalos de confianza correspondientes.
### Calcular las Medias de Especie junto a Errores Estandar e intervalos de Confianza
SCR=(t(Y) %*% ( diag(nrow(X)) - proyection(X) ) %*% Y)
glr=sum(diag(( diag(nrow(X)) - proyection(X) )))
#### Varianza Residual
S2=(SCR/glr)[1,1]
### Matriz de Varianza y Covarianza de b
covarb=S2*solve(t(X)%*%X)
#covarb
### Errores Standar de b
eeb=sqrt(diag(covarb))/glr
##eeb
# data.frame(Estimate=b,Std.Error=eeb,tValue=b/eeb,pvalue=2*(1-pt(abs(b/eeb),glr)))
#### Calculo de Medias
Medias=M%*%b
eem=sqrt(diag(M%*%covarb%*%t(M)))
##eem
###qt(0.975,glr)
kable(data.frame(Especie=Medias,LI=Medias-qt(0.975,glr)*eem,LS=Medias+qt(0.975,glr)*eem))| Especie | LI | LS | |
|---|---|---|---|
| Arveja | 1184.702 | 1021.840 | 1347.565 |
| Garbanzo | 2450.256 | 2266.189 | 2634.323 |
| Lenteja | 2088.545 | 1074.681 | 3102.409 |
| Lupino | 1576.514 | 1533.503 | 1619.524 |
- Proponer la matriz
Hque aplicada al vector de parámetros produce el valor esperado de la diferencia entre Garbanzo y Arveja para el valor medio de Nro.granos y P1000G.
m_nro=mean(misdatos$Nro.granos)
m_peso=mean(misdatos$P1000G)
M_ARVEJA= matrix(c(1,0,0,0,m_nro,m_peso,0,0,0,0,0,0),ncol=12,byrow=T)
M_GARBANZO=matrix(c(1,1,0,0,m_nro,m_peso,1*m_nro,0,0,1*m_peso,0,0),ncol=12,byrow=T)
M_LENTEJA= matrix(c(1,0,1,0,m_nro,m_peso,0,1*m_nro,0,0,1*m_peso,0),ncol=12,byrow=T)
M_LUPINO= matrix(c(1,0,0,1,m_nro,m_peso,0,0,1*m_nro,0,0,1*m_peso),ncol=12,byrow=T)
M=rbind(M_ARVEJA,M_GARBANZO,M_LENTEJA,M_LUPINO)
rownames(M)=c("Arveja","Garbanzo","Lenteja","Lupino")
K=matrix(c(-1,1, 0,0),ncol=4,byrow=T)
H=K%*%M
kable(H)| 0 | 1 | 0 | 0 | 0 | 0 | 884.5075 | 0 | 0 | 171.2716 | 0 | 0 |
- Calcular el intervalo de confianza del 95% para la diferencia de medias del punto anterior
### Calcular el intervalo de confianza del 95% para la diferencia de medias del punto anterior
dif=diag(H%*%b)
rdf=modelo$dims$N-modelo$dims$p
eedm=sqrt(diag(H%*%myCov%*%t(H)))/rdf
LI=dif-qt(0.975,rdf)*eedm
LS=dif+qt(0.975,rdf)*eedm
kable(c(dif=dif,eedm=eedm,LI=round(LI,2),LS=round(LS,2)),align="c")| x | |
|---|---|
| dif | 1265.5541 |
| eedm | 2.2298 |
| LI | 1261.0900 |
| LS | 1270.0200 |
PROBLEMA 2
El archivo bifactorial.txt contiene los datos correspondientes a un experimento factorial con dos factores: A y B y una covariable que interactúa con los efectos principales de ambos. El modelo ajustado en R es: lm(Y~A+B+x+x2+A:B+A:x+B:x).
La tabla II, contiene las pruebas de hipótesis para cada término del modelo:
| numDF | F-value | p-value | |
|---|---|---|---|
| (Intercept) | 1 | 92.6513063 | 0.0000000 |
| A | 2 | 5.7278343 | 0.0133016 |
| B | 1 | 4.0226957 | 0.0621073 |
| x | 1 | 15.6890420 | 0.0011204 |
| x2 | 1 | 28.7524281 | 0.0000635 |
| A:B | 2 | 0.5655946 | 0.5789750 |
| A:x | 2 | 2.1032188 | 0.1545403 |
| B:x | 1 | 6.6568348 | 0.0201385 |
Los parámetros estimados del modelo para estos datos, de acuerdo con la parametrización que hace la función lm del lenguaje R, son los siguientes:
| x | |
|---|---|
| (Intercept) | 6.8951162 |
| AA2 | 3.1308510 |
| AA3 | 4.4136078 |
| BB2 | 0.9859718 |
| x | -0.0456676 |
| x2 | 0.0225455 |
| AA2:BB2 | 1.0739016 |
| AA3:BB2 | 0.7472261 |
| AA2:x | -0.2007718 |
| AA3:x | -0.4561524 |
| BB2:x | -0.3076204 |
- ¿Cómo escribiría la matriz
Hy el vectorh, para cada hipótesis (excepto intercept) de la tabla II ?.
Matrix H para \(A\):
### Probamos Efecto A #######
#############################
m_x=0
m_x2=0
M_A1_B1= matrix(c(1,0,0,0,m_x,m_x2,0,0,0 , 0,0),ncol=11,byrow=T)
M_A2_B1= matrix(c(1,1,0,0,m_x,m_x2,0,0,m_x, 0,0),ncol=11,byrow=T)
M_A3_B1= matrix(c(1,0,1,0,m_x,m_x2,0,0, 0,m_x,0),ncol=11,byrow=T)
M_A1_B2= matrix(c(1,0,0,1,m_x,m_x2,0,0, 0,0 ,m_x),ncol=11,byrow=T)
M_A2_B2= matrix(c(1,1,0,1,m_x,m_x2,1,0,m_x,0 ,m_x),ncol=11,byrow=T)
M_A3_B2= matrix(c(1,0,1,1,m_x,m_x2,0,1, 0,m_x,m_x),ncol=11,byrow=T)
M=rbind(M_A1_B1,M_A1_B2,M_A2_B1,M_A2_B2,M_A3_B1,M_A3_B2)
rownames(M)=c("A1_B1","A1_B2","A2_B1","A2_B2","A3_B1","A3_B2")
K=matrix(c(1/2,1/2,-1/2,-1/2,0,0,1/2,1/2,0,0,-1/2,-1/2),ncol=6,byrow=T)
H=K%*%M
#test(X,Y,H)
kable(H)| 0 | -1 | 0 | 0 | 0 | 0 | -0.5 | 0.0 | 0 | 0 | 0 |
| 0 | 0 | -1 | 0 | 0 | 0 | 0.0 | -0.5 | 0 | 0 | 0 |
Con un valor en la prueba F de 5.728 y un p-value de 0.0133016, con 2 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(B\):
### Probamos Efecto B ####
#############################
# [,1] [,2] [,3] [,4] [,0] [,6] [,7] [,8] [,9] [,10] [,11]
#A1_B1 1 0 0 0 0 0 0 0 0 0 0
#A2_B1 1 1 0 0 0 0 0 0 0 0 0
#A3_B1 1 0 1 0 0 0 0 0 0 0 0
# 3/3 1/3 1/3 0 0 0 0 0 0 0 0
#MENOS
#A1_B2 1 0 0 1 0 0 0 0 0 0 0
#A2_B2 1 1 0 1 0 0 1 0 0 0 0
#A3_B2 1 0 1 1 0 0 0 1 0 0 0
# 3/3 1/3 1/3 3/3 0 0 1/3 1/3 0 0 0
# 0 0 0 -3/3 0 0 -1/3 -1/3 0 0 0
H= matrix(c(0,0,0,-3/3,0,0,-1/3,-1/3,0,0,0 ),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | -1 | 0 | 0 | -0.3333333 | -0.3333333 | 0 | 0 | 0 |
Con un valor en la prueba F de 4.023 y un p-value de 0.0621073, con 1 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(x\):
### Probamos Efecto x ##################
########################################
#A1_B1 1 0 0 0 Xo 0 0 0 0 0 0
#A1_B2 1 0 0 1 Xo 0 0 0 0 0 Xo
#A2_B1 1 1 0 0 Xo 0 0 0 Xo 0 0
#A2_B2 1 1 0 1 Xo 0 1 0 Xo 0 Xo
#A3_B1 1 0 1 0 Xo 0 0 0 0 Xo 0
#A3_B2 1 0 1 1 Xo 0 0 1 0 Xo Xo
# PROMEDIAMOS COLUMNOX Xo
# 0 0 0 0 1Xo 0 0 0 1/3Xo 1/3Xo 1/2Xo
m_x=mean(misdatos$x)
H= matrix(c(0,0,0,0,1*m_x,0,0,0,(1/3)*m_x,(1/3)*m_x,(1/2)*m_x),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 1.666667 | 1.666667 | 2.5 |
Con un valor en la prueba F de 15.689 y un p-value de 0.0011204, con 1 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(x2\):
m_x2=mean(misdatos$x)*mean(misdatos$x)
H= matrix(c(0,0,0,0,0,m_x2,0,0,0,0,0),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | 0 | 0 | 25 | 0 | 0 | 0 | 0 | 0 |
Con un valor en la prueba F de 28.752 y un p-value de 6.3531310^{-5}, con 1 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(A:B\):
### Probamos Efecto A:B #############
######################################
H= matrix(c(0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0
),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Con un valor en la prueba F de 0.566 y un p-value de 0.578975, con 2 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(A:x\):
### Probamos Efecto A:x #############
#######################################
H= matrix(c(0,0,0,0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,0,1,0
),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Con un valor en la prueba F de 2.103 y un p-value de 0.1545403, con 2 grados de libertad en el numerador y 16 grados de libertad en el denominador.
Matrix H para \(B:x\):
### Probamos Efecto B:x #############
######################################
H= matrix(c(0,0,0,0,0,0,0,0,0,0,1),ncol=11,byrow=T)
#test(X,Y,H)
kable(H)| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Con un valor en la prueba F de 6.657 y un p-value de 0.0201385, con 1 grados de libertad en el numerador y 16 grados de libertad en el denominador.
- Escribir la matriz
Mde la transformación lineal de los parámetros que devuelve las medias de A para el valor medio de x.
m_x=mean(misdatos$x)
m_x2=mean(misdatos$x2)
#A1_B1 1 0 0 0 Xo 0 0 0 0 0 0
#A1_B2 1 0 0 1 Xo 0 0 0 0 0 Xo
#####A1 1 0 0 1/2 x x2 0 0 0 0 1/2x
#A2_B1 1 1 0 0 Xo 0 0 0 Xo 0 0
#A2_B2 1 1 0 1 Xo 0 1 0 Xo 0 Xo
#####A2 1 1 0 1/2 x x2 1/2 0 x 0 1/2x
#A3_B1 1 0 1 0 Xo 0 0 0 0 Xo 0
#A3_B2 1 0 1 1 Xo 0 0 1 0 Xo Xo
#####A3 1 0 1 1/2 x x2 0 1/2 0 x 1/2x
### Por lo que quedaria:
#A1 1 0 0 0.5 m_x m_x2 0 0 0 0 0.5*m_x
#A2 1 1 0 0.5 m_x m_x2 0.5 0 m_x 0 0.5*m_x
#A3 1 0 1 0.5 m_x m_x2 0 0.5 0 m_x 0.5*m_x
M_A1= matrix(c(1,0,0,0.5,m_x,m_x2,0,0,0,0,0.5*m_x),ncol=11,byrow=T)
M_A2= matrix(c(1,1,0,0.5,m_x,m_x2,0.5,0,m_x,0,0.5*m_x),ncol=11,byrow=T)
M_A3= matrix(c(1,0,1,0.5,m_x,m_x2,0,0.5,0,m_x,0.5*m_x),ncol=11,byrow=T)
M=rbind(M_A1,M_A2,M_A3)
rownames(M)=c("A1","A2","A3")
#M
#Medias=M%*%b
#Medias
kable(M)| A1 | 1 | 0 | 0 | 0.5 | 5 | 150.5556 | 0.0 | 0.0 | 0 | 0 | 2.5 |
| A2 | 1 | 1 | 0 | 0.5 | 5 | 150.5556 | 0.5 | 0.0 | 5 | 0 | 2.5 |
| A3 | 1 | 0 | 1 | 0.5 | 5 | 150.5556 | 0.0 | 0.5 | 0 | 5 | 2.5 |
- Escribir la matriz
Mde la transformación lineal de los parámetros que devuelve las medias de B para el valor medio de x.
## a. Escribir la matriz M de la transformación lineal de los parámetros que
## devuelve las medias de B para el valor medio de x.
#A1_B1 1 0 0 0 Xo x2 0 0 0 0 0
#A2_B1 1 1 0 0 Xo x2 0 0 Xo 0 0
#A3_B1 1 0 1 0 Xo x2 0 0 0 Xo 0
####B1 1 1/3 1/3 0 x x2 0 0 1/3x 1/3x 0
#A1_B2 1 0 0 1 Xo x2 0 0 0 0 Xo
#A2_B2 1 1 0 1 Xo x2 1 0 Xo 0 Xo
#A3_B2 1 0 1 1 Xo x2 0 1 0 Xo Xo
####B2 1 1/3 1/3 1 x x2 1/3 1/3 1/3x 1/3x x
### Por lo que quedaria:
####B1 1 1/3 1/3 0 m_x m_x2 0 0 1/3*m_x 1/3*m_x 0
####B2 1 1/3 1/3 1 m_x m_x2 1/3 1/3 1/3*m_x 1/3*m_x m_x
M_B1= matrix(c(1,1/3,1/3,0,m_x,m_x2,0,0,1/3*m_x,1/3*m_x,0),ncol=11,byrow=T)
M_B2= matrix(c(1,1/3,1/3,1,m_x,m_x2,1/3,1/3,1/3*m_x,1/3*m_x,m_x),ncol=11,byrow=T)
M=rbind(M_B1,M_B2)
rownames(M)=c("B1","B2")
#Medias=M%*%b
#Medias
kable(M)| B1 | 1 | 0.3333333 | 0.3333333 | 0 | 5 | 150.5556 | 0.0000000 | 0.0000000 | 1.666667 | 1.666667 | 0 |
| B2 | 1 | 0.3333333 | 0.3333333 | 1 | 5 | 150.5556 | 0.3333333 | 0.3333333 | 1.666667 | 1.666667 | 5 |
- Escribir la matriz
Kque aplicada a Mb prueba la hipotesis de no interaccion a:B para el nivel medio de la covariable.
m_x=mean(misdatos$x)
m_x2=m_x*m_x
M_A1_B1= matrix(c(1,0,0,0,m_x,m_x2,0,0,0 , 0,0),ncol=11,byrow=T)
M_A2_B1= matrix(c(1,1,0,0,m_x,m_x2,0,0,m_x, 0,0),ncol=11,byrow=T)
M_A3_B1= matrix(c(1,0,1,0,m_x,m_x2,0,0, 0,m_x,0),ncol=11,byrow=T)
M_A1_B2= matrix(c(1,0,0,1,m_x,m_x2,0,0, 0,0 ,m_x),ncol=11,byrow=T)
M_A2_B2= matrix(c(1,1,0,1,m_x,m_x2,1,0,m_x,0 ,m_x),ncol=11,byrow=T)
M_A3_B2= matrix(c(1,0,1,1,m_x,m_x2,0,1, 0,m_x,m_x),ncol=11,byrow=T)
M=rbind(M_A1_B1,M_A1_B2,M_A2_B1,M_A2_B2,M_A3_B1,M_A3_B2)
rownames(M)=c("A1_B1","A1_B2","A2_B1","A2_B2","A3_B1","A3_B2")
colnames(K)=c("A1_B1","A1_B2","A2_B1","A2_B2","A3_B1","A3_B2")
K=matrix(c(1,1,-1,1,0,0,1,1,0,0,-1,1),ncol=6,byrow=T)
#H=K%*%M
#test(X,Y,H)
kable(K)| 1 | 1 | -1 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | -1 | 1 |
Con un valor en la prueba F de 6.657 y un p-value de 0.0201385, con 1 grados de libertad en el numerador y 16 grados de libertad en el denominador.