# 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

SUPUESTOS

Normalidad

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 \]

Homecedasticidad: Es la homogeneidad de varianza

# 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”.

GRÁFICO

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