# Cargar los datos
datos <- data.frame(
Tratamiento = rep(c("Control", "Baja_sal", "Sin_sal", "Dosis_1", "Dosis_2"), each = 5),
Presion = c(
180, 173, 175, 182, 181, # Control
172, 158, 167, 160, 175, # Baja sal
163, 170, 158, 162, 170, # Sin sal
158, 146, 160, 171, 155, # Dosis 1
147, 152, 143, 155, 160 # Dosis 2
)
)
# Verificar los datos
print(datos)
## Tratamiento Presion
## 1 Control 180
## 2 Control 173
## 3 Control 175
## 4 Control 182
## 5 Control 181
## 6 Baja_sal 172
## 7 Baja_sal 158
## 8 Baja_sal 167
## 9 Baja_sal 160
## 10 Baja_sal 175
## 11 Sin_sal 163
## 12 Sin_sal 170
## 13 Sin_sal 158
## 14 Sin_sal 162
## 15 Sin_sal 170
## 16 Dosis_1 158
## 17 Dosis_1 146
## 18 Dosis_1 160
## 19 Dosis_1 171
## 20 Dosis_1 155
## 21 Dosis_2 147
## 22 Dosis_2 152
## 23 Dosis_2 143
## 24 Dosis_2 155
## 25 Dosis_2 160
View(datos)
# ANOVA
modelo <- aov(Presion ~ Tratamiento, data = datos)
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 4 2010.6 502.7 11.24 6.06e-05 ***
## Residuals 20 894.4 44.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
shapiro.test(modelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.98911, p-value = 0.9927
No se rechaza el supuesto de normalidad
\[ H_0: X \sim N \] \[ H_a: X \not\sim N \]
# Instalar el paquete 'car' si no lo tienes
if (!requireNamespace("car", quietly = TRUE)) {
install.packages("car")
}
# Cargar el paquete
library(car)
## Cargando paquete requerido: carData
# Realizar el Levene's Test
resultado <- leveneTest(modelo)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
# Mostrar los resultados
print(resultado)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 4 0.483 0.748
## 20
\[ H_0: \sigma_i=\sigma \] \[ H_a: \sigma_i \neq \sigma \]
Recordemos que se rechaza la hipótesis nula cuando el valor p es menor al nivel de significancia. Es decir, en este caso no se rechaza la hipótesis nula. Por lo tanto, se cumple el supuesto de homogeneidad de varianza o homocedasticidad.
library(lmtest)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 2.3055, p-value = 0.4773
## alternative hypothesis: true autocorrelation is greater than 0
No se rechaza la hipótesis de independencia. Como se cumplen los supuestos del modelo. Se procede a la interpretación.
\[ H_0: \mu_1 = ... = \mu_k \]
\[H_a: \mu_i \neq \mu_j\]
summary(modelo)
## Df Sum Sq Mean Sq F value Pr(>F)
## Tratamiento 4 2010.6 502.7 11.24 6.06e-05 ***
## Residuals 20 894.4 44.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se rechaza la hipótesis nula del ANOVA
# Pruebas post-hoc
# Tukey HSD
tukey <- TukeyHSD(modelo)
print(tukey)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Presion ~ Tratamiento, data = datos)
##
## $Tratamiento
## diff lwr upr p adj
## Control-Baja_sal 11.8 -0.8560111 24.4560111 0.0750832
## Dosis_1-Baja_sal -8.4 -21.0560111 4.2560111 0.3079677
## Dosis_2-Baja_sal -15.0 -27.6560111 -2.3439889 0.0154090
## Sin_sal-Baja_sal -1.8 -14.4560111 10.8560111 0.9926031
## Dosis_1-Control -20.2 -32.8560111 -7.5439889 0.0009768
## Dosis_2-Control -26.8 -39.4560111 -14.1439889 0.0000313
## Sin_sal-Control -13.6 -26.2560111 -0.9439889 0.0314226
## Dosis_2-Dosis_1 -6.6 -19.2560111 6.0560111 0.5377680
## Sin_sal-Dosis_1 6.6 -6.0560111 19.2560111 0.5377680
## Sin_sal-Dosis_2 13.2 0.5439889 25.8560111 0.0383282
El análisis post-hoc de Tukey se realizó para comparar las medias de presión entre los diferentes tratamientos con un nivel de confianza del 95%. A continuación, se interpretan los resultados más relevantes:
La comparación Dosis_2-Baja_sal muestra una diferencia significativa en las medias (diff = -15.0, p = 0.0154), ya que el intervalo de confianza (lwr = -27.66, upr = -2.34) no incluye el cero. Esto indica que el tratamiento “Dosis_2” tiene una media significativamente menor que “Baja_sal”. Para Dosis_1-Control, también se observa una diferencia significativa (diff = -20.2, p = 0.00098), con un intervalo de confianza negativo (lwr = -32.86, upr = -7.54), lo que indica que “Dosis_1” tiene una media significativamente menor que “Control”. Similarmente, Dosis_2-Control tiene una diferencia muy significativa (diff = -26.8, p < 0.0001), confirmando que “Dosis_2” reduce significativamente más la presión que el tratamiento “Control”. En la comparación Sin_sal-Control, se encuentra una diferencia significativa (diff = -13.6, p = 0.0314), lo que sugiere que “Sin_sal” también reduce la presión significativamente en comparación con “Control”. Finalmente, la comparación Sin_sal-Dosis_2 es significativa (diff = 13.2, p = 0.0383), lo que indica que “Sin_sal” tiene una media significativamente mayor que “Dosis_2”.
plot(tukey)
# LSD (Least Significant Difference)
# Necesitamos instalar el paquete agricolae para realizar LSD
if (!require(agricolae)) install.packages("agricolae")
## Cargando paquete requerido: agricolae
library(agricolae)
lsd <- LSD.test(modelo, "Tratamiento", group = TRUE)
print(lsd)
## $statistics
## MSerror Df Mean CV t.value LSD
## 44.72 20 163.72 4.084597 2.085963 8.822417
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Tratamiento 5 0.05
##
## $means
## Presion std r se LCL UCL Min Max Q25 Q50 Q75
## Baja_sal 166.4 7.368853 5 2.990652 160.1616 172.6384 158 175 160 167 172
## Control 178.2 3.962323 5 2.990652 171.9616 184.4384 173 182 175 180 181
## Dosis_1 158.0 9.027735 5 2.990652 151.7616 164.2384 146 171 155 158 160
## Dosis_2 151.4 6.655825 5 2.990652 145.1616 157.6384 143 160 147 152 155
## Sin_sal 164.6 5.272571 5 2.990652 158.3616 170.8384 158 170 162 163 170
##
## $comparison
## NULL
##
## $groups
## Presion groups
## Control 178.2 a
## Baja_sal 166.4 b
## Sin_sal 164.6 b
## Dosis_1 158.0 bc
## Dosis_2 151.4 c
##
## attr(,"class")
## [1] "group"
plot(lsd)
# Duncan
duncan <- duncan.test(modelo, "Tratamiento", group = TRUE)
print(duncan)
## $statistics
## MSerror Df Mean CV
## 44.72 20 163.72 4.084597
##
## $parameters
## test name.t ntr alpha
## Duncan Tratamiento 5 0.05
##
## $duncan
## Table CriticalRange
## 2 2.949998 8.822417
## 3 3.096506 9.260573
## 4 3.189616 9.539032
## 5 3.254648 9.733519
##
## $means
## Presion std r se Min Max Q25 Q50 Q75
## Baja_sal 166.4 7.368853 5 2.990652 158 175 160 167 172
## Control 178.2 3.962323 5 2.990652 173 182 175 180 181
## Dosis_1 158.0 9.027735 5 2.990652 146 171 155 158 160
## Dosis_2 151.4 6.655825 5 2.990652 143 160 147 152 155
## Sin_sal 164.6 5.272571 5 2.990652 158 170 162 163 170
##
## $comparison
## NULL
##
## $groups
## Presion groups
## Control 178.2 a
## Baja_sal 166.4 b
## Sin_sal 164.6 b
## Dosis_1 158.0 bc
## Dosis_2 151.4 c
##
## attr(,"class")
## [1] "group"
plot(duncan)
# Scheffé
scheffe <- scheffe.test(modelo, "Tratamiento", group = TRUE)
print(scheffe)
## $statistics
## MSerror Df F Mean CV Scheffe CriticalDifference
## 44.72 20 2.866081 163.72 4.084597 3.385901 14.3204
##
## $parameters
## test name.t ntr alpha
## Scheffe Tratamiento 5 0.05
##
## $means
## Presion std r se Min Max Q25 Q50 Q75
## Baja_sal 166.4 7.368853 5 2.990652 158 175 160 167 172
## Control 178.2 3.962323 5 2.990652 173 182 175 180 181
## Dosis_1 158.0 9.027735 5 2.990652 146 171 155 158 160
## Dosis_2 151.4 6.655825 5 2.990652 143 160 147 152 155
## Sin_sal 164.6 5.272571 5 2.990652 158 170 162 163 170
##
## $comparison
## NULL
##
## $groups
## Presion groups
## Control 178.2 a
## Baja_sal 166.4 ab
## Sin_sal 164.6 abc
## Dosis_1 158.0 bc
## Dosis_2 151.4 c
##
## attr(,"class")
## [1] "group"
# Gráficos para comparar tratamientos
plot(tukey, las = 1, col = "blue")
shapiro.test(modelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.98911, p-value = 0.9927
library(readxl)
d <- read_excel("C:/Users/jhoni/Downloads/PUNTOS_GPS.xlsx",
sheet = "Hoja2")
View(d)
mod<-aov(d$Z~d$Zona)
summary(mod)
## Df Sum Sq Mean Sq F value Pr(>F)
## d$Zona 2 3048.6 1524.3 45.59 4.57e-09 ***
## Residuals 25 835.9 33.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(ggplot2)
p1<-ggplot(data = d, mapping = aes(x=d$Zona,y=d$Z))+geom_boxplot()
p1
## Warning: Use of `d$Zona` is discouraged.
## ℹ Use `Zona` instead.
## Warning: Use of `d$Z` is discouraged.
## ℹ Use `Z` instead.
# Test de Tukey
library(stats)
resultado_tukey <- TukeyHSD(mod)
print(resultado_tukey)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = d$Z ~ d$Zona)
##
## $`d$Zona`
## diff lwr upr p adj
## B-A -16.28571 -23.31345 -9.2579775 0.0000149
## C-A -23.28571 -29.66897 -16.9024553 0.0000000
## C-B -7.00000 -14.77828 0.7782793 0.0835577
plot(resultado_tukey)
# Simulación de la muestra
set.seed(123) # Para reproducibilidad
n <- 7
mu <- 4
sigma <- 2
muestra <- rnorm(n, mean = mu, sd = sigma)
# Test de Kolmogorov-Smirnov con librería
ks_test <- ks.test(muestra, "pnorm", mean = mu, sd = sigma)
# Resultados
print(ks_test)
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: muestra
## D = 0.28758, p-value = 0.5177
## alternative hypothesis: two-sided
# Simulación de la muestra
set.seed(123)
n <- 7
mu <- 4
sigma <- 2
muestra <- rnorm(n, mean = mu, sd = sigma)
# Ordenar la muestra
muestra_ordenada <- sort(muestra)
# Función de distribución empírica (EDF)
F_empirica <- (1:n) / n
# Función de distribución teórica
F_teorica <- pnorm(muestra_ordenada, mean = mu, sd = sigma)
# Cálculo de la estadística D
D <- max(abs(F_empirica - F_teorica))
# Valor crítico para alpha = 0.05 (tablas KS para n = 7)
D_critico <- 0.522 # Para n=7 y alpha=0.05
# Decisión
if (D > D_critico) {
cat("Se rechaza H0: la muestra no sigue una N(4, 2)\n")
} else {
cat("No se rechaza H0: la muestra sigue una N(4, 2)\n")
}
## No se rechaza H0: la muestra sigue una N(4, 2)
# Resultados
cat("D:", D, "\nD crítico:", D_critico, "\n")
## D: 0.1447204
## D crítico: 0.522