library(readxl)
D <- read_excel("~/Electiva R/DatosTaller.xlsx")
attach(D)
Datos <- data.frame(Conf=as.factor(Conf), Carga=as.numeric(Carga), Tiempo=as.numeric(Tiempo))
attach(Datos)
## The following objects are masked from D:
##
## Carga, Conf, Tiempo
str(Datos)
## 'data.frame': 25 obs. of 3 variables:
## $ Conf : Factor w/ 2 levels "0","1": 2 1 2 1 2 2 1 1 1 2 ...
## $ Carga : num 1 2 2.4 3.1 4 4.3 5.8 6.6 7.5 8 ...
## $ Tiempo: num 0.9 0.3 2 0.8 2.7 2.6 2.5 3.2 3.7 3.9 ...
Datos0 <- Datos[which(Datos$Conf=="0"),]
Datos1 <- Datos[which(Datos$Conf=="1"),]
#Punto i. Gráfica de Relación entre Carga vs. Tiempo
library(ggplot2)
ggplot(Datos, aes(y=Tiempo, x=Carga, color=Conf))+
geom_point()+
theme_bw()+
geom_line()
De la gráfica que relaciona el tiempo de respuesta y la carga de trabajo se puede afirmar que se presenta una relación, en promedio, directa entre estas variables independiente de la configuración de disco duro que se use para el trabajo.
Sin embargo, se puede encontrar que existe una relativa distinción mayor en el ritmo del crecimiento del tiempo de respuesta ante mayores tiempos de carga para la unidad de estado sólido (identificado como configuración tipo 0) respecto a los presentados por el disco duro (identficado con la configuración tipo 1), los cuales presentan, en promedio, una pendiente relativamente menor y una tendencia posterior a mostrar variaciones mucho más pequeñas, indicando así que, aparentemente, llega a un máximo de rendimiento donde por cada unidad añadida de carga se puede optimizar el uso del disco duro para no presentar grandes cambios de rendimiento reflejados en aumentos abruptos de tiempo.
Prueba de Normalidad
library(nortest)
ad.test(Datos0$Carga)
##
## Anderson-Darling normality test
##
## data: Datos0$Carga
## A = 0.23774, p-value = 0.7238
Dado que el valor estadístico (A² = 0.23774) es menor al valor crítico (A² crítico = 0.752), por lo tanto, no se rechaza la hipótesis nula y, los datos observados (relación de la carga y la configuración 0 SDD) tienen una naturaleza de distribución normal, permitiendo así, hacer estimaciones teniendo en cuenta el supuesto de normalidad.
ad.test(Datos0$Tiempo)
##
## Anderson-Darling normality test
##
## data: Datos0$Tiempo
## A = 0.23256, p-value = 0.7423
Al igual que para las observaciones de la relación entre la unidad de estado sólido (configuración tipo 0) y la carga, el mismo tipo de configuaricón también sigu una distribución normal en relación al tiempo de respuesta, comprobado gracias a la prueba realizada Anderson-Darling.
ad.test(Datos1$Carga)
##
## Anderson-Darling normality test
##
## data: Datos1$Carga
## A = 0.40597, p-value = 0.3001
Contrario a lo presentado por las observaciones de la unidad de estado sólido, las observaciones de la relación entre el uso del disco duro y la carga no siguen una distribución normal bajo los criterios de la prueba Anderson-Darling, esto podría explicar el cambio de pendiente mencionado anteriormente.
ad.test(Datos1$Tiempo)
##
## Anderson-Darling normality test
##
## data: Datos1$Tiempo
## A = 0.50098, p-value = 0.1694
Comprobando lo planteado tras la prueba de normalidad de la relación del uso del disco duro y la carga,al relacionar el disco duro con el tiempo de respuesta, también muestra una no distribición normal, lo que explica el cambio observado en la gráfica de relación de tiempo de respuesta en función de la carga y la distinción por tipo de configuración usado. Test de Correlación
cor.test(x=Datos0$Carga,y=Datos0$Tiempo,alternative = "less", method = "pearson")
##
## Pearson's product-moment correlation
##
## data: Datos0$Carga and Datos0$Tiempo
## t = 28.334, df = 10, p-value = 1
## alternative hypothesis: true correlation is less than 0
## 95 percent confidence interval:
## -1.0000000 0.9979347
## sample estimates:
## cor
## 0.9938293
A través de la prueba de correlación de Pearson se buscó medir la fuerza de relación entre ambos tipos de configuración. EL resultado obtenido para las relaciones entre la unidad de estado sólido en uso con una carga determinada y reflejado en un tiempo de respuesta determinado, por dicha medición se obtuvo un resultado muy cercano a 1, siendo 0.9938, lo que quiere decir que indica una correlación bastante alta.
cor.test(x=Datos1$Carga,y=Datos1$Tiempo,alternative = "less", method = "pearson")
##
## Pearson's product-moment correlation
##
## data: Datos1$Carga and Datos1$Tiempo
## t = 12.024, df = 11, p-value = 1
## alternative hypothesis: true correlation is less than 0
## 95 percent confidence interval:
## -1.0000000 0.9871297
## sample estimates:
## cor
## 0.9640003
Del mismo modo, pero ahora en relación a la correlación entre la carga y tiempo con el uso del disco duro - configuración tipo 0, se realizaron también la prueba de correlación de Pearson, obteniendo un resultado levemente menor al arrojado del uso de la unidad de estado sólido, siendo este 0.964, reflejando de nuevo la distinción ya observada gráficamente y comprendida por su distribución. Sin embargo, es pertinente anotar que, pese a ser un poco menor la fuerza de la relación presentada por el uso del disco duro, sigue siendo muy cercano a 1 para ámbas pruebas realizadas, por lo que, presenta también una gran correlación.
#Punto ii.
Mod1 <- lm(Tiempo~Carga)
summary(Mod1)
##
## Call:
## lm(formula = Tiempo ~ Carga)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.16824 -0.40281 -0.03945 0.43541 1.07627
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.04838 0.26321 0.184 0.856
## Carga 0.49214 0.04177 11.783 3.18e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5837 on 23 degrees of freedom
## Multiple R-squared: 0.8579, Adjusted R-squared: 0.8517
## F-statistic: 138.8 on 1 and 23 DF, p-value: 3.177e-11
Ajustando un primer modelo que evalúe la relación entre carga y tiempo sin incluír la configuración usada, se estimó Mod1 <- lm(Tiempo~Carga), obteniendo así, un modelo con un intercepto de 0.048 (tiempo promedio esperado de respuesta sin tener en cuenta la carga) y un coeficiente de la carga de 0.492, lo que quiere decir que, en promedio, por cada unidad de carga adicional, el tiempo de respuesta aumenta en 0.49 segundos.
Adicional, se obtiene un R² de 0.8579. Este valor indica que, variaciones en la carga sin tener en cuenta la configuración de disco usada, explican las variaciones del tiempo en un 85.79%. Importante recalcar que, al tener solo una variable explicativa en el modelo, siendo esta significativa y que explica ya un 85.79% de la variabilidad de la variable regresada (tiempo), el R² ajustado es un valor que no presenta diferencias estadísticamente significantes, pues es tan solo 0.6% más bajo que el R².
par(mfrow=c(2,2))
plot(Mod1)
Evaluando la bondad de ajuste a partir del anális de los residuale, se puede observar que, en promedio, presentan relativamente poca dispersión, pues las observaciones se concentran, en promedio, alrededor de la línea de estimaciones medias, indicando así que no se asegura una necesaria transformación del modelo o de alguna variable presente para obtener resultados con menor dispersión o que se ajuten más a la necesidad de ‘ajuste’ del modelo.
#Punto iii.
Mod2 <- lm(Tiempo~Carga+Conf+(Carga*Conf))
summary(Mod2)
##
## Call:
## lm(formula = Tiempo ~ Carga + Conf + (Carga * Conf))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.68547 -0.11333 0.06881 0.15302 0.41807
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.37549 0.20902 -6.581 1.62e-06 ***
## Carga 0.71979 0.03367 21.376 9.88e-16 ***
## Conf1 2.26391 0.26520 8.536 2.86e-08 ***
## Carga:Conf1 -0.35734 0.04227 -8.454 3.36e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2844 on 21 degrees of freedom
## Multiple R-squared: 0.9692, Adjusted R-squared: 0.9648
## F-statistic: 220.2 on 3 and 21 DF, p-value: 5.042e-16
Estimando ahora un modelo II que incluye, además de la carga usada, el tipo de disco y su interacción con la carga, esto con el objetivo de buscar aumentar la comprensión del tiempo de respuesta en términos de las variables que en mayor medida determinan la magnitud del tiempo y el ritmo de aumento de este ante aumentos en la carga. Al incluir la interacción de la carga con el tipo de configuración usado, se podrá estimar cuál tipo de configuración resulta más eficiente en términos de rendimiento, es decir, reflejando un tiempo de respuesta menor para la misma carga.
De la regresión aplicada para el modelo II, se obtuvo que todas las variables añadidas (tipo de configuración e interacción) y la ya existente (carga) son todas variables significativas, por lo que, los coeficientes que estas variables tengan serán interpretables y válidos para entener la magnitud de capacidad explicativa y el sentido de la relación del tiempo y estas variables.
Al incluir las variables ya mencionadas en el modelo II, la capacidad explicativa de este pasa a ser de aproximadamente 85% a ser de un 96.92%, con similitud en el valor del R² ajustado, pues tal como se presentó, todas las variables del modelo son significativas. En otras palabras, con las variables incluidas, se puede explicar, en promedio, la magnitud y variación del tiempo de respuesta en un aproximadament 97%. Particularmente, el coeficiente de la interacción entre carga y configuración tipo 1, posee un coeficiente negativo, equivalente a -0.357, indicando que respecto al tiempo promedio, al usarse la configuración de disco duro se es más eficiente que la unidad de estado sólido pues se puede manejar un tiempo de respuesta
par(mfrow=c(2,2))
plot(Mod2)
Nuevamente, al igual que como se realizó para el Modelo I, a través de las gráficas de residuales se busca mostrar el cumplimiento de los supuestos para evaluar la bondas de ajuste, normalidad en la distribución, homocedasticidad (varianza constante), no multicolinealidad y hexogeneidad estricta. Se puede observar que, pese a mostrarse una tendencia de distribución normal, los residuales no cumplen con una varianza constante, pero sí cumplen los demás supuestos, los cuales se comprobarán más adelante con los test correspondientes.
Comparación de coeficientes
library(car)
## Loading required package: carData
compareCoefs(Mod1,Mod2)
## Calls:
## 1: lm(formula = Tiempo ~ Carga)
## 2: lm(formula = Tiempo ~ Carga + Conf + (Carga * Conf))
##
## Model 1 Model 2
## (Intercept) 0.0484 -1.3755
## SE 0.2632 0.2090
##
## Carga 0.4921 0.7198
## SE 0.0418 0.0337
##
## Conf1 2.264
## SE 0.265
##
## Carga:Conf1 -0.3573
## SE 0.0423
##
Notable destacar el incremento del coeficiente de correlación mayor que toma la variable carga, este aumento puede deberse a la interacción o efectos indirectos que pueden darse con la contemplación del tipo de configuración como añadido en el modelo para la regresión estimada. En el primer modelo, al ser esta la única variable explicativa, el valor que se obtuvo del coeficiente de la Carga en el modelo I es el efecto directo explicado exclusivamente por esta variable.
Ahora, teniendo en cuenta que entra en interacción con la configuración usada, los efectos indirectos que se generan entre variables aumentan el valor del efecto total de la variable regresora sobre la regresada, es decir, de la explicación de la carga, hay un aumento en la magnitud de explicación del tiempo de respuesta.
#Punto iv
Fun <- function(Carga,Conf){
Tiempo=-1.3755+0.7198*(Carga)+2.264*(Conf)-0.3573*(Carga*Conf)
return(Tiempo)
}
Una vez obtenidos los coeficientes, se puede obtener la ecuación que representa el modelo reemplazando los valores B por las estimaciones obtenidas, siendo esta así: Tiempo=-1.3755+0.7198(Carga)+2.264(Conf)-0.3573(CargaConf)
A partir de aquí, se realiza la representación gráfica del modelo con el objetivo de poder comprender de forma visual o más intuitiva, los efectos de contemplar la configuración en el modelo.
ggplot(Datos)+
geom_point(x=Carga,y=Tiempo)+
geom_line(aes(x=Carga,y=predict(Mod2),col=Conf))+
theme_bw()
#Punto v Análisis de varianza
anova(Mod1,Mod2)
anova(Mod1)
De los test de significancia encontrados en la tabla Anova, ambos modelos reflejaron valores que permitieron rechazar la hipótesis nula, permitiendo así, entender que, la varianza presentada permite concluir que existe una cantidad significativa de la variación en el tiempo de respuesta que es explicada a través del modelo formulado.
Evaluación gráfica del ajuste
ggplot(Datos)+
geom_point(x=Carga,y=Tiempo)+
geom_smooth(aes(x=Carga,y=Tiempo,col=Conf))+
geom_line(aes(x=Carga,y=predict(Mod1),col=Conf))+
geom_line(aes(x=Carga,y=predict(Mod2),col=Conf))+
theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Pese a no ser un cambio significativo tras la transformación, se comprueba que, en promedio se presenta una relación creciente en la expresión del tiempo de respuesta en función de la carga independiente de la configuración que se use. Eso sí, ante cargas dentro del rango presentado, la configuración tipo 1, es decir, la unidad de estado sólido (SSD) resulta ser más eficiente, pues se obtienen de esta, tiempos de respuesta menores a los presentados por el disco duro.
#Punto vi Tal como se realizó de forma gráfica, se demostró el cumplimiento de los 4 supuestos sobre el término de error a través de las siguientes pruebas:
Residuales <- residuals(Mod2) # Residuales
mean(Residuales) # Media Cero
## [1] -3.192108e-17
Siendo -3.192108e-17 un valor muy cercano a cero en este contexto, comprueba que los residuales están distribuídos por encima y por debajo de la línea media en proporciones iguales.
Y_e <- fitted.values(Mod2) # Exogeneidad
cor(Residuales, Y_e)
## [1] 2.343143e-16
Con una exogeneidad igual a 0 (2.343143e-16 para esta prueba), indica que es posible determinar los efectos individuales de las variables y las estimaciones realizadas pueden ser válidas.
(ggplot(Mod2, aes(fitted.values(Mod2),Residuales)) # Varianza Constante
+ geom_point(col=I("turquoise"))
+ theme_bw()
+ stat_smooth(method = "loess",col="black")
+ stat_binhex(bins = 100)
+ scale_fill_gradient(low = "light blue",high = "black")
+ geom_hline(yintercept = 0,col ="black", linetype = "dashed")
+ xlab("Fitted Values")
+ ylab("Residuals"))
## `geom_smooth()` using formula 'y ~ x'
Comprendiendo un rango de 0.2 alrededor del 0, la línea de tendencia indica que puede representar una varianza constante alrededor del 0 como valor objetivo.
ResidualesRezagados<-dplyr::lag(Residuales) # No autocorrelaci?n
plot(Residuales,ResidualesRezagados)
Al concentrarse la gran mayoría de datos alrededor de las coordenadas (0,0), se puede estimar la ‘no autocorrelación’, indicando así que estos son independientes y no presentan dispersión a las estimaciones realizadas por el impacto que puedan tener al efecto de las variables usadas como explicativas, es decir, carga y tipo de configuración.
La intención del estudio fue evaluar el desempeño de de dos tipos de configuraciones utilizados, la tipo 1 el disco duro HDD y tipo 0, unidad de estado sólido ante un número de consultas por minuto denominado como la variable Carga y reflejando estos rendimientos en los tiempos de respuesta por segundos.
Teniendo en cuenta el principio de parsimonia, se realizó la comparación pertinente entre los modelos I y II, indicando así que la mejor forma de estimar el tiempo de respuesta en términos de la carga (número de peticiones por minuto), se da al momento de incluir la interacción de la carga con la configuración que se use.
De las configuraciones usadas, se encontró (tal como respalda la teoría) que ante cargas normales, la unidad de estado sólido (SSD) resulta ser más eficiente que el disco duro (HHD) pues ante los mismos niveles de cargas, presentó un tiempo de respuesta menor, sin embargo, ante niveles altos de carga, de estos ensayos presentados, se observó una mejora en el rendimiento para los tiempos de respuesta presentados por el disco duro, por lo que, puede ser un factor que sería pertinente analizar si se presentó de forma esporádica o es una normalidad en la respuesta del disco duro ante estos niveles de carga, y, en caso de que sea una cualidad en la que se destaque, según el uso que se busque dar a la configuración deseada, podría ser una determinante para escoger un u otro tipo de configuración.