library(rsconnect)
## Warning: package 'rsconnect' was built under R version 4.0.5
rpubsUpload("Actividad3","Actividad3.html", originalDoc = NULL,id = NULL,properties = list())
## $id
## [1] "https://api.rpubs.com/api/v1/document/804839/1bdda7fcbd8e4df8bba12c00c70b960b"
##
## $continueUrl
## [1] "http://rpubs.com/publish/claim/804839/c9f37123c43042ddaac7178e6ceea3e5"
Datos<- read.delim(file.choose("DatosTaller.txt"))
library(tidyverse)
library(kableExtra)
DatosActividad3<- Datos[1:25, 1:3]
kbl(DatosActividad3) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"))
| Conf | Carga | Tiempo |
|---|---|---|
| 1 | 1.0 | 0.9 |
| 0 | 2.0 | 0.3 |
| 1 | 2.4 | 2.0 |
| 0 | 3.1 | 0.8 |
| 1 | 4.0 | 2.7 |
| 1 | 4.3 | 2.6 |
| 0 | 5.8 | 2.5 |
| 0 | 6.6 | 3.2 |
| 0 | 7.5 | 3.7 |
| 1 | 8.0 | 3.9 |
| 0 | 9.0 | 5.3 |
| 1 | 9.2 | 4.2 |
| 1 | 10.2 | 3.9 |
| 1 | 1.8 | 1.1 |
| 1 | 2.0 | 1.5 |
| 0 | 2.5 | 0.5 |
| 0 | 3.9 | 1.5 |
| 0 | 4.2 | 1.6 |
| 1 | 5.5 | 3.3 |
| 0 | 6.4 | 3.3 |
| 1 | 7.0 | 3.5 |
| 0 | 8.0 | 4.3 |
| 1 | 8.2 | 4.0 |
| 1 | 9.1 | 4.3 |
| 0 | 9.5 | 5.8 |
Carga <- DatosActividad3$Carga
Tiempo <- DatosActividad3$Tiempo
Disco <- as.factor(DatosActividad3$Conf)
ggplot(data= DatosActividad3)+
geom_point(aes(x=Carga, y=Tiempo, col = Disco))
library(dplyr)
Datos1 <- DatosActividad3 %>% filter(Conf == 1)
Datos1
## Conf Carga Tiempo
## 1 1 1.0 0.9
## 2 1 2.4 2.0
## 3 1 4.0 2.7
## 4 1 4.3 2.6
## 5 1 8.0 3.9
## 6 1 9.2 4.2
## 7 1 10.2 3.9
## 8 1 1.8 1.1
## 9 1 2.0 1.5
## 10 1 5.5 3.3
## 11 1 7.0 3.5
## 12 1 8.2 4.0
## 13 1 9.1 4.3
Datos2 <- DatosActividad3 %>% filter(Conf == 0)
Datos2
## Conf Carga Tiempo
## 1 0 2.0 0.3
## 2 0 3.1 0.8
## 3 0 5.8 2.5
## 4 0 6.6 3.2
## 5 0 7.5 3.7
## 6 0 9.0 5.3
## 7 0 2.5 0.5
## 8 0 3.9 1.5
## 9 0 4.2 1.6
## 10 0 6.4 3.3
## 11 0 8.0 4.3
## 12 0 9.5 5.8
ggplot(data = DatosActividad3, mapping = aes(x=DatosActividad3$Carga)) +
geom_histogram(aes(y= ..density..), color = "gray", fill="darkmagenta") +
stat_function(fun = dnorm, args = list(mean= mean(DatosActividad3$Carga), sd= sd(DatosActividad3$Carga)))+
geom_density(fill="black", alpha=0.2)+
labs(title = " Histograma de la variable carga",
x = "Carga del sistema",
y = "Densidad",
caption = "Fuente: elaboración popia.")
ggplot(data = DatosActividad3, mapping = aes(x=DatosActividad3$Tiempo)) +
geom_histogram(aes(y= ..density..), color = "gray", fill="darkmagenta") +
stat_function(fun = dnorm, args = list(mean= mean(DatosActividad3$Tiempo), sd= sd(DatosActividad3$Tiempo)))+
geom_density(fill="black", alpha=0.2)+
labs(title = " Histograma de la variable Tiempo",
x = "Tiempo de respuesta",
y = "Densidad",
caption = "Fuente: elaboración popia.")
Con la prueba formal de Anderson-Darling Bera, se puede validar la normalidad a las dos variables. Con unos contrastes de hipótesis:
\[H_0 ∶ l a \ variable\ carga\ es \ normal\\ 𝐻_1 ∶ l a \ variable\ carga\ no\ es \ normal\\\]
\[H_0 ∶ l a \ variable\ tiempo\ es \ normal\\ 𝐻_1 ∶ l a \ variable\ tiempo\ no\ es \ normal\\\]
library(nortest)
ad.test(DatosActividad3$Carga)
##
## Anderson-Darling normality test
##
## data: DatosActividad3$Carga
## A = 0.52694, p-value = 0.1617
ad.test(DatosActividad3$Tiempo)
##
## Anderson-Darling normality test
##
## data: DatosActividad3$Tiempo
## A = 0.35944, p-value = 0.4221
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
cor.test(x= Datos2$Carga, y= Datos2$Tiempo, alternative = "less", method = "pearson")
##
## Pearson's product-moment correlation
##
## data: Datos2$Carga and Datos2$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
Carga <- DatosActividad3$Carga
Tiempo <- DatosActividad3$Tiempo
Modelo1 <- lm(Tiempo ~ Carga)
summary(Modelo1)
##
## 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
ggplot(DatosActividad3, aes(x= Carga, y=Tiempo)) +
geom_point(col = "#6930c3") +
geom_line(aes(x=Carga, y= predict(Modelo1)),
col = "#e0aaff", size = 1.3) +
labs(title =" Relación entre tiempo de respuesta y la carga de trabajo (Modelo 1)",
x = "Carga del sistema",
y = "Tiempo de respuesta del disco",
caption = "Fuente: elaboración popia.")
par(mfrow=c(2,2))
plot(Modelo1)
Al incluir el tipo de disco duro (descrito por la variable “Disco”) se obtienen los siguientes resultados:
Modelo2 <- lm(Tiempo ~ Carga + Disco)
summary(Modelo2)
##
## Call:
## lm(formula = Tiempo ~ Carga + Disco)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.28711 -0.34478 0.02705 0.35573 1.19726
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.08105 0.29168 -0.278 0.784
## Carga 0.49303 0.04173 11.815 5.36e-11 ***
## Disco1 0.23926 0.23348 1.025 0.317
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5831 on 22 degrees of freedom
## Multiple R-squared: 0.8644, Adjusted R-squared: 0.852
## F-statistic: 70.1 on 2 and 22 DF, p-value: 2.859e-10
Modelo2 <- lm(Tiempo ~ Carga + Disco + (Carga*Disco))
summary(Modelo2)
##
## Call:
## lm(formula = Tiempo ~ Carga + Disco + (Carga * Disco))
##
## 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 ***
## Disco1 2.26391 0.26520 8.536 2.86e-08 ***
## Carga:Disco1 -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
library(ggplot2)
qplot(x = DatosActividad3$Carga, y = DatosActividad3$Tiempo, facets = ~DatosActividad3$Conf, data = DatosActividad3) +
geom_smooth(method = "lm", col = "#48cae4") +
labs(title = " Relación entre tiempo de respuesta y carga de trabajo dependiendo del disco",
x = "Carga del sistema",
y = "Tiempo de respuesta del disco",
caption = "Fuente: elaboración popia.") +
geom_point(color = "#014f86")
par(mfrow=c(2,2))
plot(Modelo2)
La ecuación del Modelo 2 estaría dada por:
\[Tiempo = -1.37 + 0.72*Carga + 2.26*Disco - 0.35(Carga*Disco)\]
ggplot(data = DatosActividad3) +
geom_point(aes(x= Carga, y= Tiempo, col = Disco)) +
geom_smooth(aes(x=Carga, y= Tiempo, col = Disco)) +
labs(title = " Relación entre tiempo de respuesta y la carga de trabajo (Modelo 2)",
x = "Carga del sistema",
y = "Tiempo de respuesta",
caption = "Fuente: elaboración popia.")
ggplot(data= DatosActividad3) +
geom_point(aes(x= Carga, y= Tiempo, col = Disco))+
geom_smooth(aes(x = Carga, y = predict(Modelo2)), color = "magenta")
En principio se realiza el contraste de hipótesis:
\[H_0: Los \ dos \ modelos \ tienen \ similar \ ajuste \\ H_1: El \ Modelo 2 \ presenta \ mejor \ ajuste \ que \ el \ Modelo 1 \\ \]
anova(Modelo1, Modelo2)
## Analysis of Variance Table
##
## Model 1: Tiempo ~ Carga
## Model 2: Tiempo ~ Carga + Disco + (Carga * Disco)
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 23 7.8375
## 2 21 1.6990 2 6.1386 37.938 1.067e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ggplot(data= DatosActividad3) +
geom_point(aes(x= Carga, y= Tiempo, col = Disco))+
geom_smooth(aes(x = Carga, y = predict(Modelo1)), color = "#e0aaff") +
geom_smooth(aes(x = Carga, y = predict(Modelo2)), color = "magenta")+
labs(title = "Relación entre tiempo de respuesta y la carga de trabajo (Modelo 1 vs Modelo 2)",
x = "Carga del sistema",
y = "Tiempo de respuesta",
caption = "Fuente: elaboración popia.")
mean(residuals(Modelo2))
## [1] -3.192108e-17
El supuesto de media cero en el término de error se cumple.
Con el siguiente contraste de hipótesis, se realiza luego la prueba formal. \[H_0 ∶ Homocedastico\\ 𝐻_1 ∶ Heterocedastico\\\]
library(car)
ncvTest(Modelo2)
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 0.8566399, Df = 1, p = 0.35468
Se usa el Test de normalidad de Shapiro-Wilk, con un contraste de hipótesis:
\[H_0 ∶ Normalidad\\ 𝐻_1 ∶ No \ Normalidad\\\]
library(MASS)
sresid <- studres(Modelo2)
shapiro.test(sresid)
##
## Shapiro-Wilk normality test
##
## data: sresid
## W = 0.92407, p-value = 0.06348
Se utiliza el Test de Breusch-Pagan, con un contraste de hipótesis:
\[H_0 ∶ Varianza\ constante\ del\ término\ de\ error\\ 𝐻_1 ∶ Varianza\ no\ constante\ del\ término\ de\ error\\\]
library(lmtest)
bptest(Modelo2)
##
## studentized Breusch-Pagan test
##
## data: Modelo2
## BP = 2.6825, df = 3, p-value = 0.4432
Usando el Test de Durbing Watson, con un contraste de hipótesis:
\[H_0 = no\ hay\ autocorrelación\ de \ primer \ orden\ AR(1)\\ H_1 = si\ hay\ autocorrelación\ de \ primer \ orden\ AR(1)\\\]
durbinWatsonTest(Modelo2)
## lag Autocorrelation D-W Statistic p-value
## 1 0.2660196 1.328472 0.064
## Alternative hypothesis: rho != 0
7. Conclusiones.