0% encontró este documento útil (0 votos)
7 vistas26 páginas

Regresión Lineal en R: Ejemplos Prácticos

Este documento presenta un modelo de regresión lineal múltiple para predecir el sabor (variable de respuesta) de quesos cheddar en función de la concentración de tres ácidos (variables explicativas): ácido acético, ácido sulfhídrico y ácido láctico. Se cargan los datos de 30 muestras de queso y se representan gráficamente. Luego, se define un modelo de regresión lineal múltiple que incluye ácido sulfhídrico y ácido láctico como predictores. El resumen de este

Cargado por

Enauris Mateo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas26 páginas

Regresión Lineal en R: Ejemplos Prácticos

Este documento presenta un modelo de regresión lineal múltiple para predecir el sabor (variable de respuesta) de quesos cheddar en función de la concentración de tres ácidos (variables explicativas): ácido acético, ácido sulfhídrico y ácido láctico. Se cargan los datos de 30 muestras de queso y se representan gráficamente. Luego, se define un modelo de regresión lineal múltiple que incluye ácido sulfhídrico y ácido láctico como predictores. El resumen de este

Cargado por

Enauris Mateo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MASTER UNIVERSITARIO IDeA

Profesor: Francisco Pla Martos

Departamento de Matemáticas.
Facultad de Ciencias y Tecnologías Químicas. Ciudad Real.
Universidad de Castilla-La Mancha, UCLM

Autor: Francisco Plá Martos 1


MASTER UNIVERSITARIO IDeA

T7.2 Regresión Lineal Simple y


Múltiple
REGRESIÓN LINEAL SIMPLE

Ejemplo1:

Los datos sobre la longitud de las plantas en centímetros al cabo de un


año de vida son:

x = (15.3, 17.8, 20.7, 25.1, 16.4, 21.6, 19.6, 18.8, 20.2, 19.4)

y los datos de las mismas plantas cuando son adultas son:

y = (30.5, 32.6, 38.3, 45.7, 33.6, 42.2, 37.5, 38.1, 41.6, 40.4)

Para el estudio de la posible relación lineal entre las variables (x, y), se
desarrollan los siguientes apartados:

Cargar datos y representación de la Nube de Puntos:

plantas=[Link](xi=c(15.3, 17.8, 20.7, 25.1, 16.4, 21.6, 19.6, 18.8, 20.2,


19.4),yi=c(30.5, 32.6, 38.3, 45.7, 33.6, 42.2, 37.5, 38.1, 41.6, 40.4))

plantas
xi yi
1 15.3 30.5
2 17.8 32.6
3 20.7 38.3
4 25.1 45.7
5 16.4 33.6
6 21.6 42.2
7 19.6 37.5
8 18.8 38.1
9 20.2 41.6
10 19.4 40.4

Autor: Francisco Plá Martos 2


MASTER UNIVERSITARIO IDeA

plot(plantas$xi,plantas$yi)  Figura 1.1

Figura 1.1: Nube de puntos de la muestra (xi, yi) usando el comando plot()

Obtención del coeficiente de correlación y p-valor

Se utiliza el comando [Link](), tal como:

[Link](plantas$xi,plantas$yi,method="pearson",use="[Link]")

Pearson's product-moment correlation

data: plantas$xi and plantas$yi


t = 7.084, df = 8, p-value = 0.0001036
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.7202361 0.9833389
sample estimates:
cor
0.9287109

Autor: Francisco Plá Martos 3


MASTER UNIVERSITARIO IDeA

Diagramas de dispersión múltiple de todas las variables (en este ejemplo


hay dos variables)

Se procede con el comando pairs([Link]) tal como:

Figura 1.2: Diagrama de dispersión múltiple de la muestra (xi, yi) usando el


comando pairs()

Definición del modelo: comando lm()

Obtención de los coeficientes óptimos y el p-valor asociado a los datos de la


muestra. Consideramos para este ejemplo el Modelo Lineal Simple:

(modeloPlantas=lm(plantas$yi~plantas$xi,data=plantas))

Call:
lm(formula = plantas$yi ~ plantas$xi, data = plantas)

Coefficients:
(Intercept) plantas$xi
7.030 1.592

Por lo tanto, nuestra recta de regresión lineal simple óptima es:

y = 7.03 +1.59 x

Autor: Francisco Plá Martos 4


MASTER UNIVERSITARIO IDeA

summary(modeloPlantas)

Call:
lm(formula = plantas$yi ~ plantas$xi, data = plantas)

Residuals:
Min 1Q Median 3Q Max
-2.7602 -1.1795 -0.1285 1.0591 2.4932

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.0295 4.4182 1.591 0.150262
plantas$xi 1.5916 0.2247 7.084 0.000104 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.857 on 8 degrees of freedom


Multiple R-squared: 0.8625, Adjusted R-squared: 0.8453
F-statistic: 50.18 on 1 and 8 DF, p-value: 0.0001036

Información relevante: p-valor = 0.0001036 < α = 0.05 ( y en realidad para


cualquier α = 0.01, 0.05, 0.10,
Por otro lado F1,N-2 = F1,8 = 50.18 > F1,N-2,α = F1,8,0.05 = 5.0874 (tablas F-Fisher
para α = 0.05) 5.318

Representación de la recta de regresión lineal simple: comando abline()

abline(modeloPlantas,col=c("red"))

Región de confianza al 95% de la media de las imágenes: Es la zona el la


que tenemos una confianza habitualmente al 95% de que la verdadera recta
del modelo de regresión lineal se encuentre.
Es necesario descargar el paquete: visreg

library(visreg)
visreg(lm(yi~xi,data=plantas),type="conditional")

Autor: Francisco Plá Martos 5


MASTER UNIVERSITARIO IDeA

Información del modelo: comando names(modelo)

names(modeloPlantas)
(residuos_Plantas=modeloPlantas$residuals)
(media_residuos_Plantas=mean(residuos_Plantas))

(predicciones_modeloPlantas=modeloPlantas$[Link])
(coeficientes_modeloPlantas=modeloPlantas$coefficients)
(a=modeloPlantas$coefficients[[1]])
(b=modeloPlantas$coefficients[[2]])

Varianza residual:
(VR=sum((predicciones_modeloPlantas-plantas$yi)^2)/length(plantas$yi))

O equivalentemente:

(VR=sum(residuos_Plantas^2)/ length(plantas$yi))

ANOVA: Comanso anova(modelo)

anova(lm(plantas$yi~plantas$xi,data=plantas))

Analysis of Variance Table

Response: plantas$yi
Df Sum Sq Mean Sq F value Pr(>F)
plantas$xi 1 173.143 173.14 50.184 0.0001036 ***
Residuals 8 27.602 3.45
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Para un nivel de significación α = 0.05, dado que el p-valor = 0.0001036 <


α = 0.05 ( y en realidad para cualquier α = 0.01, 0.05, 0.10, …),
rechazaremos la hipótesis nula H0:{b=0} y por lo tanto existe una relación
lineal entre las variables X e Y.
Por otro lado F1,N-2 = F1,8 = 50.18 > F1,N-2,α = F1,8,0.05 = 5.0874 (tablas F-Fisher
para α = 0.05) , se llega a la misma conclusión: existe una relación lineal
entre las variables X e Y.

Autor: Francisco Plá Martos 6


MASTER UNIVERSITARIO IDeA

REGRESIÓN LINEAL MÚLTIPLE

Ejemplo2: Concentraciones de ácido acético (Acetic), ácido sulfhídrico


(H2S) y ácido láctico (Lactic) en 30 muestras de queso cheddar maduro.
También se proporciona un valor de sabor subjetivo.
Información sobre los datos:

Uso libre de datos: Mirar más información en la web: [Link]


[Link]

Fuente de datos: David Moore and George McCabe (1989). Introduction to the Practice of Statistics.

El sabor del queso maduro de tipo cheddar está relacionado con la


concentración de diferentes compuestos químicos al final del proceso. Se
considera una tabla de una muestra de 30 datos relacionados con el queso
cheddar en los que se recoge la variable respuesta: gusto (Taste) y tres
variables explicativas relacionadas con la concentración de ácido acético
(Acetic), ácido sulfhídrico (H2S) y ácido láctico (Lactic)

Cargar datos y representación de la Nube de Puntos:

Queso=[Link]("[Link]

head(queso)

Case Acetic H2S Lactic Taste


1 1 4.543 3.135 0.86 12.3
2 2 5.159 5.043 1.53 20.9
3 3 5.366 5.438 1.57 39.0
4 4 5.759 7.496 1.81 47.9
5 5 4.663 3.807 0.99 5.6
6 6 5.697 7.601 1.09 25.9

Autor: Francisco Plá Martos 7


MASTER UNIVERSITARIO IDeA

pairs(queso)  Figura 2.1

Figura 2.1: Diagrama de dispersión múltiple usando el comando pairs()

Autor: Francisco Plá Martos 8


MASTER UNIVERSITARIO IDeA

Obtención del coeficiente de correlación de todas las combinaciones de


variables:
cor(queso)
Case Acetic H2S Lactic Taste
Case 1.00000000 0.2838356 0.04383232 0.05658513 -0.2148631
Acetic 0.28383559 1.0000000 0.61795591 0.60434768 0.5495295
H2S 0.04383232 0.6179559 1.00000000 0.64389703 0.7557630
Lactic 0.05658513 0.6043477 0.64389703 1.00000000 0.7034822
Taste -0.21486308 0.5495295 0.75576301 0.70348216 1.0000000

Instalación del paquete tree


[Link]("tree")
library(tree)
modeloT=tree(queso$Taste~., data=queso)
plot(modeloT)
text(modeloT)

Figura 2.2: Diagrama de árbol del modelo

Autor: Francisco Plá Martos 9


MASTER UNIVERSITARIO IDeA

Con la información proporcionada por el árbol de decisión podemos


construir el siguiente modelo:

Definición del modelo: comando lm()

(Modelo1=lm(queso$Taste~queso$H2S+queso$Lactic, data=queso))

Call:
lm(formula = queso$Taste ~ queso$H2S + queso$Lactic, data = queso)

Coefficients:
(Intercept) queso$H2S queso$Lactic
-27.622 3.953 19.884

Por lo tanto, nuestra recta de regresión lineal múltiple óptima es:

y = -27.622 +3.953 x1 + 19.884 x2

es decir:

Taste= -27.622 +3.953 H2 S + 19.884 Lactic

summary(Modelo1)

Call:
lm(formula = queso$Taste ~ queso$H2S + queso$Lactic, data = queso)

Residuals:
Min 1Q Median 3Q Max
-17.363 -6.547 -1.161 4.848 25.606

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -27.622 9.001 -3.069 0.00485 **
queso$H2S 3.953 1.135 3.483 0.00170 **
queso$Lactic 19.884 7.970 2.495 0.01902 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.946 on 27 degrees of freedom


Multiple R-squared: 0.6515, Adjusted R-squared: 0.6257
F-statistic: 25.24 on 2 and 27 DF, p-value: 6.602e-07

Autor: Francisco Plá Martos 10


MASTER UNIVERSITARIO IDeA

Para un nivel de significación α = 0.05, el p-valor = 6.602e-07 es muy


significativo, por lo que rechazaremos la hipótesis nula H0:{b1 = b2 = 0} y
por lo tanto existe una relación lineal entre las variable respuesta Y (Taste)
y las variables explicativas, H2S y ácido láctico (Lactic). Además se puede
observar que la variable H2S es más significativa (p-valor=0.00170) que el
ácido láctico (p-valor = 0.01902). También obtenemos la F-Fisher de la tabla
ANOVA asociada a la regresión lineal múltiple con k=2: Fk,N-(k+1) = F2,27 =
25.24 . El valor R2 = 0.6515

Es muy importante estudiar el error de los residuos 𝜀𝜀𝑖𝑖 = 𝑦𝑦𝑖𝑖 − 𝑦𝑦�𝚤𝚤 , que tiene
que seguir una distribución normal de media 0 y cumple homocedasticidad:
𝜎𝜎12 = 𝜎𝜎22 = ⋯ = 𝜎𝜎𝑁𝑁2

Para ello, en primer lugar estudiamos si nuestros residuos siguen un


distribución Normal:

[Link](Modelo1$residuals)

Shapiro-Wilk normality test

data: Modelo1$residuals
W = 0.97947, p-value = 0.8114

Dado que p-valor = 0.8114 > α = 0.05, entonces no podemos rechazar la


hipótesis de normalidad

Con el comando estudiamos el resto de las condiciones del error:

plot(Modelo1)
Hit <Return> to see next plot: y
Hit <Return> to see next plot: y
Hit <Return> to see next plot: y
Hit <Return> to see next plot: y

Autor: Francisco Plá Martos 11


MASTER UNIVERSITARIO IDeA

(a) (b)

(c) (d)

(a) Los residuos se deben de comportar de forma aleatoria, sin ningún patrón especifico
(b) Normalidad de los residuos, los datos están alineados sobre la recta, muy pocos se
escapan
(c) Homocedasticidad. Se debe vigilar la estructura.
(d) Detecta valores atípicos: aquellos que están fuera de la región punteada, los que tienen
distancia de Cook mayor a 1, D>1

Autor: Francisco Plá Martos 12


MASTER UNIVERSITARIO IDeA

Construcción de la tabla ANOVA:


La Tabla ANOVA del modelo de regresión lineal múltiple nos indica la
formulación que tenemos que calcular

DF_Explicada=2
(DF_Residual=length(queso$Case)-(DF_Explicada+1))
[1] 27
(Explicada=sum((Modelo1$[Link]-mean(queso$Taste))^2))
[1] 4992.828
(Residual=sum((Modelo1$[Link]-queso$Taste)^2))
#(Residual=sum((Modelo1$residuals)^2))
[1] 2670.702
(A=Explicada/DF_Explicada)
[1] 2496.414
(B=Residual/DF_Residual)
[1] 98.91489
(F=A/B)
[1] 25.238

Por lo tanto:

Fuente de Suma de GL Media de F p-value


variación cuadrados cuadrados
Explicativa 4992.828 2 2496.414 25.238 6.602e-07
Regresora
No 2670.702 30 - (2+1) 98.91489
explicativa = 27
Residual

Autor: Francisco Plá Martos 13


MASTER UNIVERSITARIO IDeA

T7.3 Estimación y contraste de


hipótesis
ANOVA de 1 factor

Ejemplo:

Dada un archivo de datos teórico basado en 100 consumidores de


yogures se les ha pedido su opinión de percepción sobre los siguientes
descriptores: Color, Sabor, Dulce, Acido, Olor y Cremoso en 5 muestras
de marcas diferentes de yogur de plátano (mirar archivo de diseño de
registro). Se pretende analizar si existen diferencias significativas
respecto de los descriptores entre las 5 marcas de yogures

Observación: Tenemos un archivo de datos .txt que se tiene que


descargar en R y que tiene un tamaño de 5 × 100 = 500 filas.

Cargamos los datos y creamos la tabla de datos:


setwd("…")

Yogur=[Link]("Datos_yogures_5_muestras_100_consum_mIDeA201920.txt",header = T)

MUESTRA=factor(Yogur$MUESTRA, labels=c("Muestra 1","Muestra 2","Muestra


3","Muestra 4","Muestra 5"))

Vamos a estudiar la variable Color:

Representamos el diagrama QQ para verificar si los datos recogidos de la


variable Color siguen una distribución Normal:

qqnorm(Yogur$Color)
qqline(Yogur$Color,col="red")

Autor: Francisco Plá Martos 14


MASTER UNIVERSITARIO IDeA

Observamos que hay muchos datos de la variable Color que se alejan de la


línea diagonal, por lo que no parece que sigan una distribución Normal

Test de Normalidad:

# Normalidad
[Link](Yogur$Color) # p-value = 2.2e-16 -> rechazamos normalidad

Shapiro-Wilk normality test

data: Yogur$Color
W = 0.87655, p-value < 2.2e-16

Rechazamos normalidad dado que α = 0.05 > p-valor = 2.2e-16

# homecedasticidad:

library(carData)
library(car)
leveneTest(y=Yogur$Color,group=MUESTRA,center="median
Levene's Test for Homogeneity of Variance (center = "median")
Df F value Pr(>F)
group 4 4.3466 0.00183 **
495

Autor: Francisco Plá Martos 15


MASTER UNIVERSITARIO IDeA

Rechazamos homocedasticidad dado que α = 0.05 > p-valor = 0.00183

Por lo tanto consideramos un test no paramétrico alternativo a la ANOVA,


describimos a continuación el Test de tipo Kruskal-Wallis:

[Link](Yogur$Color~MUESTRA,data=Yogur)

Kruskal-Wallis rank sum test

data: Yogur$Color by MUESTRA


Kruskal-Wallis chi-squared = 154.96, df = 4, p-value < 2.2e-16

Dado que el p-valor es muy significativo es decir, muy pequeño, entonces se


rechaza la hipótesis de igualdad medias entre las 5 muestras de marcas
diferentes, por lo tanto sí que existen diferencias significativas entre las
marcas respecto de la variable Color

Con el siguiente comando podemos observar la variabilidad de los datos de


Color para cada una de las 5 marcas:
library(ggplot2)
ggplot(data=Yogur, mapping = aes(x = Yogur$Color, colour = MUESTRA))
+ geom_histogram()+theme_bw() + facet_grid(. ~ MUESTRA) +
theme([Link] = "none")

Autor: Francisco Plá Martos 16


MASTER UNIVERSITARIO IDeA

Con un diagrama de cajas comparamos las 5 muestras de marcas respecto


de la variable Color

boxplot(Yogur$Color~MUESTRA,[Link]=T,col=c("red","cyan","pink"
,"brown","orange"))

Se observan que en efecto existen diferencias significativas entre las


muestras

POST-HOC
En el caso de que nuestros datos siguieran una distribución Normal,
realizaríamos el test Post-Hoc
[Link](Yogur$Color,MUESTRA,[Link]="bonferroni")

Autor: Francisco Plá Martos 17


MASTER UNIVERSITARIO IDeA

Pero dado que no es así, realizaremos un test Post-Hoc no paramétrico tal


como el siguiente:

[Link](Yogur$Color,MUESTRA,[Link] = "holm")

Pairwise comparisons using Wilcoxon rank sum test

data: Yogur$Color and MUESTRA

Muestra 1 Muestra 2 Muestra 3 Muestra 4


Muestra 2 1.1e-11 - - -
Muestra 3 0.21 < 2e-16 - -
Muestra 4 6.0e-11 0.91 < 2e-16 -
Muestra 5 3.0e-08 0.28 7.0e-16 0.28

P value adjustment method: holm

El post-hoc nos indica que existen diferencias significativas entre las


muestras 1-2, 1-4, 1-5, 2-3, 3-4 y 3-5 a un nivel de confianza del 95%

Para estudiar la normalidad de todas las variables descriptivas al mismo


tiempo, R te ofrece la posibilidad de hacer un bucle “for” tal y como se indica
a continuación:
for(i in 3:8)
{print([Link](Yogur[,i]))}

COLOR
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.87655, p-value < 2.2e-16

SABOR
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.87979, p-value < 2.2e-16

DULCE
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.90712, p-value < 2.2e-16

Autor: Francisco Plá Martos 18


MASTER UNIVERSITARIO IDeA

ACIDO
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.91058, p-value < 2.2e-16

OLOR
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.90005, p-value < 2.2e-16

CREMOSO
Shapiro-Wilk normality test

data: Yogur[, i]
W = 0.9149, p-value = 3.709e-16

En todos los casos no siguen una distribución Normal, por lo que se tendrá
que realizar un test no paramétrico de tipo Kruskal-Wallis. Proponemos
realizar otro bucle:
for(i in 3:8)
{print([Link](Yogur[,i]~MUESTRA,data=Yogur))}

COLOR
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 154.96, df = 4, p-value < 2.2e-16

SABOR
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 76.877, df = 4, p-value = 7.985e-16

DULCE
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 48.298, df = 4, p-value = 8.178e-10

Autor: Francisco Plá Martos 19


MASTER UNIVERSITARIO IDeA

ACIDO
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 146.4, df = 4, p-value < 2.2e-16

OLOR
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 134.5, df = 4, p-value < 2.2e-16

CREMOSO
Kruskal-Wallis rank sum test

data: Yogur[, i] by MUESTRA


Kruskal-Wallis chi-squared = 3.8497, df = 4, p-value = 0.4267

Todos los descriptivos son significativo a excepción de Cremoso. Si


representamos Cremoso en diagramas de cajas vemos claro el resultado de
dicho test (una imagen vale más que mil palabras)

Autor: Francisco Plá Martos 20


MASTER UNIVERSITARIO IDeA

T7.4 ANOVA de 2 factores


ANOVA de 2 factores con interacciones

Ejemplo1:

Medimos el rendimiento en Kg/ha de una producción agrícola teniendo


en cuenta el tipo de semilla y el fertilizante. Consideramos dos tipos de
semilla y tres tipos de fertilizante y se recoge el rendimiento en la tabla
de a continuación en el que se toma una muestra de tamaño 2 por semilla
y fertilizante.

Semilla 1 Semilla 2
Fertilizante 1 (14.3, 14.5 ) (12.6, 11.2 )
Fertilizante 2 (18.1, 17.6 ) (10.5, 12.8 )
Fertilizante 3 (17.6, 18.2 ) (15.7, 17.5 )

Tenemos por lo tanto un diseño ANOVA de 2 factores con interacciones, tal


que:
• Factor Fertilizante con 3 niveles
• Factor Semilla con 2 niveles
• Tamaño de la muestra en cada cruce k = 2
• Tenemos 12 datos

Procedemos a cargar los datos con R:

rendimiento=c(14.3,14.5,18.1,17.6,17.6,18.2,12.6,11.2,10.5,12.8,15.7,17.5)

semilla=c(1,1,1,1,1,1,2,2,2,2,2,2)

fertilizante=c(1,1,2,2,3,3,1,1,2,2,3,3)

fertilizante=
factor(fertilizante,labels=c("Fertilizante 1","Fertilizante 2","Fertilizante
3"))

semilla=factor(semilla,labels=c("Semilla 1","Semilla 2"))

Autor: Francisco Plá Martos 21


MASTER UNIVERSITARIO IDeA

(datos=[Link](rendimiento,fertilizante,semilla))

rendimiento fertilizante semilla


1 14.3 Fertilizante 1 Semilla 1
2 14.5 Fertilizante 1 Semilla 1
3 18.1 Fertilizante 2 Semilla 1
4 17.6 Fertilizante 2 Semilla 1
5 17.6 Fertilizante 3 Semilla 1
6 18.2 Fertilizante 3 Semilla 1
7 12.6 Fertilizante 1 Semilla 2
8 11.2 Fertilizante 1 Semilla 2
9 10.5 Fertilizante 2 Semilla 2
10 12.8 Fertilizante 2 Semilla 2
11 15.7 Fertilizante 3 Semilla 2
12 17.5 Fertilizante 3 Semilla 2

Con el siguiente comando obtenemos una tabla de medias en cada una de las
celdas de factores

tapply(datos$rendimiento,list(datos$fertilizante,datos$semilla),mean)
Semilla 1 Semilla 2
Fertilizante 1 14.40 11.90
Fertilizante 2 17.85 11.65
Fertilizante 3 17.90 16.60

Antes de aplicar una tabla ANOVA de 2 factores con interacciones tenemos


que estudiar si la variable cuantitativa rendimiento sigue una distribución
normal:

qqnorm(datos$rendimiento)
qqline(datos$rendimiento)

En la Figura 4.1, se observa que los datos de la variable Rendimiento están


alineados sobre la recta, muy pocos se escapan, por lo que parece que en
efecto siguen una distribución normal aunque seguramente el p-valor que
obtengamos no sea muy grande respecto del α = 0.05

Autor: Francisco Plá Martos 22


MASTER UNIVERSITARIO IDeA

Con el siguiente test de normalidad, obtenemos el correspondiente p-valor:

[Link](datos$rendimiento)

Shapiro-Wilk normality test

data: datos$rendimiento
W = 0.89471, p-value = 0.1355

Figura 4.1: Diagrama QQ de Normalidad de la variable Rendimiento.


ANOVA dos factores con interacciones

En efecto, dado que α = 0.05 < p-value = 0.1355, no podemos rechazar que
los datos de la variable rendimiento sigan una distribución Normal.
Procedemos a obtener la tabla ANOVA de 2 factores con interacciones de
nuestro experimento:

modelo=lm(datos$rendimiento~semilla*fertilizante)

Autor: Francisco Plá Martos 23


MASTER UNIVERSITARIO IDeA

# o equivalentemente:
#modelo=lm(datos$rendimiento~semilla+fertilizante+semilla*fertilizante)
anova(modelo)

Analysis of Variance Table

Response: datos$rendimiento
Df Sum Sq Mean Sq F value Pr(>F)
semilla 1 33.333 33.333 35.9066 0.0009711 ***
fertilizante 2 34.160 17.080 18.3986 0.0027556 **
semilla:fertilizante 2 13.047 6.523 7.0269 0.0267830 *
Residuals 6 5.570 0.928
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Por lo tanto, todos los factores son significativos para un 95 % de confianza,


aunque el que más es el factor Semilla y las interacciones las que menos
significativas.

ANOVA de 2 factores sin interacciones

Ejemplo2:

Se considera el mismo experimento que en Ejemplo 1 excepto que


tomamos sólo una medición por celda. Tenemos la siguiente tabla:

Semilla 1 Semilla 2
Fertilizante 1 14.3 12.6
Fertilizante 2 18.1 10.5
Fertilizante 3 17.6 15.7

Tenemos por lo tanto un diseño ANOVA de 2 factores, tal que:


• Factor Fertilizante con 3 niveles
• Factor Semilla con 2 niveles

• Tenemos 6 datos

Procedemos a cargar los datos con R:

rendimiento=c(14.3,18.1,17.6,12.6,10.5,15.7)

semilla=c(1,1,1,2,2,2)

Autor: Francisco Plá Martos 24


MASTER UNIVERSITARIO IDeA

fertilizante=c(1,2,3,1,2,3)
fertilizante=
factor(fertilizante,labels=c("Fertilizante 1","Fertilizante 2","Fertilizante
3"))

semilla=factor(semilla,labels=c("Semilla 1","Semilla 2"))

(datos=[Link](rendimiento,fertilizante,semilla))

rendimiento fertilizante semilla


1 14.3 Fertilizante 1 Semilla 1
2 18.1 Fertilizante 2 Semilla 1
3 17.6 Fertilizante 3 Semilla 1
4 12.6 Fertilizante 1 Semilla 2
5 10.5 Fertilizante 2 Semilla 2
6 15.7 Fertilizante 3 Semilla 2

tapply(datos$rendimiento,list(datos$fertilizante,datos$semilla),mean)
Semilla 1 Semilla 2
Fertilizante 1 14.3 12.6
Fertilizante 2 18.1 10.5
Fertilizante 3 17.6 15.7

Estudiamos Normalidad:

Diagrama

qqnorm(datos$rendimiento)
qqline(datos$rendimiento)

En la Figura 4.2, se que en efecto la variable Rendiemiento sigue una


distribución normal.

Test de normalidad:
[Link](datos$rendimiento)

Shapiro-Wilk normality test

data: datos$rendimiento
W = 0.95398, p-value = 0.7723

Autor: Francisco Plá Martos 25


MASTER UNIVERSITARIO IDeA

Figura 4.2: Diagrama QQ de Normalidad de la variable Rendimiento.


ANOVA dos factores

Por lo tanto, no podemos rechazar normalidad de la variable Rendimiento,


dado que α = 0.05 < p-value = 0.7723.

Procedemos a obtener la tabla ANOVA de 2 factores:

modelo=lm(datos$rendimiento~semilla+fertilizante)
anova(modelo)

Response: datos$rendimiento
Df Sum Sq Mean Sq F value Pr(>F)
semilla 1 20.907 20.9067 3.7256 0.1933
fertilizante 2 10.990 5.4950 0.9792 0.5053
Residuals 2 11.223 5.6117

Es muy interesante observar por medio de los resultados de la Tabla


ANOVA de 2 factores, que ninguno de los factores son significativos en este
experimento particular, si no se consideran interacciones, es decir, si no se
replica el experimento.

Autor: Francisco Plá Martos 26

También podría gustarte