1 Contexto del Estudio

#En la finca El Guayabal, ubicada en la vereda El Coral del municipio de La Plata (Huila), se desarrollara un estudio sobre el crecimiento del cafe arábigo en cuatro puntos de una hectarea, considerando variables ambientales como temperatura, humedad del aire y del suelo, pH, precipitacion e intensidad luminica, registradas durante dos meses con tres tomas diarias para analizar su influencia en el desarrollo del cultivo respecto al crecimiento como variable independiente. #Dado que tenemos datos de distintos puntos de cultivo (P1, P2, P3, P4) con variables ambientales,el muestreo estratificado por punto es el más apropiado, asi cada zona estara representada, y podemos comparar su influencia en el crecimiento.

#DATOS

#Variables: # Punto 1-2-3-4 - crecimiento de planta cm

cafe_1 <- read.csv("cafe_1.csv", sep = ";", stringsAsFactors = FALSE)
cat("Columnas detectadas:\n")
## Columnas detectadas:
print(names(cafe_1))
## [1] "Punto"           "Crecimiento_cm"  "Temp_C"          "Humedad_Suelo_."
## [5] "pH_Suelo"
cat("\nPrimeras filas:\n")
## 
## Primeras filas:
print(head(cafe_1))
##   Punto Crecimiento_cm Temp_C Humedad_Suelo_. pH_Suelo
## 1    P1          50,55  18,32            18,8      5,6
## 2    P1          48,62  21,37            21,3      5,6
## 3    P1          49,08  17,97            16,7      5,6
## 4    P2          50,71  16,79            25,2      5,8
## 5    P2          50,11  21,19            22,9      5,8
## 6    P2           49,5  16,79            19,4      5,8

##2 MUESTREO ESTRATIFICADO POR PUNTO## # Paso 1: Cargar la base de datos

cafe_1=as.data.frame(unclass(cafe_1),stringsAsFactors = TRUE)
str(cafe_1)
## 'data.frame':    99 obs. of  5 variables:
##  $ Punto          : Factor w/ 4 levels "P1","P2","P3",..: 1 1 1 2 2 2 3 3 3 4 ...
##  $ Crecimiento_cm : Factor w/ 85 levels "48,04","48,49",..: 49 3 6 52 35 13 43 60 25 2 ...
##  $ Temp_C         : Factor w/ 92 levels "14,86","14,91",..: 49 75 46 21 72 21 52 70 20 16 ...
##  $ Humedad_Suelo_.: Factor w/ 81 levels "15,1","15,4",..: 12 22 5 42 30 14 72 73 71 59 ...
##  $ pH_Suelo       : Factor w/ 4 levels "5,6","5,8","5,9",..: 1 1 1 2 2 2 4 4 4 3 ...
nrow(cafe_1)
## [1] 99
names(cafe_1)
## [1] "Punto"           "Crecimiento_cm"  "Temp_C"          "Humedad_Suelo_."
## [5] "pH_Suelo"

Paso 2: Convertir valores con coma a punto (“.”) y pasar a numérico

cols_posibles <- names(cafe_1)
cols_coma <- sapply(cafe_1[ , cols_posibles], function(col) {
any(grepl("^[0-9]+/,[0-9]+$", as.character(col)))
})
cols_coma <- names(cols_coma)[cols_coma]

cat("Columnas con formato con coma detectadas (se intentará convertir):/n")
## Columnas con formato con coma detectadas (se intentará convertir):/n
print(cols_coma)
## character(0)
for (col in cols_coma) {
cafe_1[[col]] <- as.numeric(gsub(",", ".", cafe_1[[col]]))
}

cols_num_manual <- c() # ejemplo: c("Crecimiento_cm","Temp_C")
for (col in cols_num_manual) {
if (col %in% names(cafe_1)) {
cafe_1[[col]] <- as.numeric(gsub(",", ".", as.character(cafe_1[[col]])))
}
}
cat("\nEstructura del data.frame luego de conversiones:\n")
## 
## Estructura del data.frame luego de conversiones:
str(cafe_1)
## 'data.frame':    99 obs. of  5 variables:
##  $ Punto          : Factor w/ 4 levels "P1","P2","P3",..: 1 1 1 2 2 2 3 3 3 4 ...
##  $ Crecimiento_cm : Factor w/ 85 levels "48,04","48,49",..: 49 3 6 52 35 13 43 60 25 2 ...
##  $ Temp_C         : Factor w/ 92 levels "14,86","14,91",..: 49 75 46 21 72 21 52 70 20 16 ...
##  $ Humedad_Suelo_.: Factor w/ 81 levels "15,1","15,4",..: 12 22 5 42 30 14 72 73 71 59 ...
##  $ pH_Suelo       : Factor w/ 4 levels "5,6","5,8","5,9",..: 1 1 1 2 2 2 4 4 4 3 ...

#Paso 3 Definir el estrato (usaremos “Punto” de la base)

nombre_estrato <- "Punto"
unique(cafe_1[[nombre_estrato]])
## [1] P1 P2 P3 P4
## Levels: P1 P2 P3 P4
if (! nombre_estrato %in% names(cafe_1)) {
stop(paste0("No se encontró la columna de estrato '", nombre_estrato, "'. Revisa los nombres de columnas."))
}

cat("Conteo por estrato (Punto):\n")
## Conteo por estrato (Punto):
print(table(cafe_1[[nombre_estrato]], useNA = "ifany"))
## 
## P1 P2 P3 P4 
## 27 24 24 24

Paso 4: Definir proporción de muestra

prop_muestra <- 0.30  
n_por_estrato <- 5 

cat("Se usará prop_muestra =", prop_muestra, " (si n_por_estrato es 5)\n")
## Se usará prop_muestra = 0.3  (si n_por_estrato es 5)

Paso 5 Definir muestreo estratificado

set.seed(123)
nombre_estrato <- "Punto"

muestra_estratificada <- data.frame()
niveles <- unique(cafe_1[[nombre_estrato]])

for (nivel in niveles) {
  estrato <- subset(cafe_1, cafe_1[[nombre_estrato]] == nivel)
  n_estrato <- ceiling(nrow(estrato) * prop_muestra)
  muestra_estrato <- estrato[sample(1:nrow(estrato), n_estrato), ]
  muestra_estratificada <- rbind(muestra_estratificada, muestra_estrato)
}
head(muestra_estratificada)
##    Punto Crecimiento_cm Temp_C Humedad_Suelo_. pH_Suelo
## 51    P1          50,28  17,79            20,9      5,6
## 73    P1          51,04  18,92            21,8      5,6
## 50    P1          50,09  22,15            18,3      5,6
## 3     P1          49,08  17,97            16,7      5,6
## 37    P1          50,55  18,46              17      5,6
## 63    P1          50,06  17,58            15,1      5,6

#prop_muestra <- 0.30 → significa que se seleccionará el 30 % de las observaciones dentro de cada estrato (en este caso, dentro de cada “Punto”).

#n_por_estrato <- 5 → sirve como referencia indicando que, idealmente, se espera obtener 5 observaciones por grupo, pero la proporción real depende del tamaño de cada estrato.

#En este caso, si un punto tiene 15 registros, se seleccionarán alrededor de 15 × 0.3 = 4.5 ≈ 5 observaciones, Si otro punto tiene solo 8 registros, se seleccionarán 8 × 0.3 = 2.4 ≈ 3 observaciones

#El muestreo estratificado aplicado aquí garantiza cobertura completa de la finca o área de estudio, ya que todos los “Puntos” están incluidos.

##3 Media poblacional (μ):## #Se estima la media de Punto1, Punto2, Punto3 y Punto4 para la variable crecimiento_cm#

datos <- c (50.28, 51.04,50.09,49.08,50.55,50.06,49.54,49.43,   
51.14,49.99,49.5,50.36,50.17,50.01,49.56,50.5,49.86,49.41,50.73,49.64,51.92,50.88,50.03,51.49)

# Calcular la media
media <- mean(datos)

# Imprimir la media
print(media)
## [1] 50.21917

#la media de los Punto1, Punto2, Punto3 y Punto4 sobre el crecimiento de las platntas es 50.21

datos <- c (50.28, 51.04,50.09,49.08,50.55,50.06,49.54,49.43,   
51.14,49.99,49.5,50.36,50.17,50.01,49.56,50.5,49.86,49.41,50.73,49.64,51.92,50.88,50.03,51.49)

summary(datos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   49.08   49.62   50.08   50.22   50.59   51.92

#El crecimiento promedio de las plantas de cafe arbiga en los puntos 1,2,3,4 es de 50.2 cm.

4 Varianza Poblacional (σ^2):

varianza <- var(datos)

# Redondear la varianza a dos cifras significativas
varianza_redondeada <- round(varianza, 2)

# Imprimir la varianza redondeada
print(varianza_redondeada)
## [1] 0.5
desviacion <- sd(datos)
# Imprimir la varianza redondeada
print(desviacion)
## [1] 0.7091999

##Tomamos una muestra##

#5. Media muestral (x):

datos_muestra<- c(50.28, 51.04,50.09,49.08,50.55,50.06)
# Calcular la media
media_muestra <- mean(datos_muestra)

# Imprimir la media
print(media_muestra)
## [1] 50.18333
summary(datos_muestra)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   49.08   50.07   50.19   50.18   50.48   51.04

#6. Varianza muestral (s^2):

varianza_muestra<- var(datos_muestra)

# Redondear la varianza a dos cifras significativas
varianza_muestra_redondeada <- round(varianza_muestra, 2)

# Imprimir la varianza redondeada
print(varianza_muestra_redondeada)
## [1] 0.42
desviacion_muestra <- sd(datos_muestra)
# Imprimir la varianza redondeada
print(desviacion_muestra)
## [1] 0.650989

#7. Determinacion el sesgo :

if (media != media_muestra) {
  print("Si hay sesgo en el estimador de crecimiento_cm")
} else {
  print("El estimador de crecimiento_cm es insesgado")
}
## [1] "Si hay sesgo en el estimador de crecimiento_cm"

#Se detectó un pequeño sesgo en la media muestral respecto a la poblacional. #podemos infereir que La estimación del crecimiento no es completamente insesgada, posiblemente debido al tamaño reducido de la muestra. #la recomendacion es tomar muestras más grandes o ajustes estadísticos para mejorar la exactitud.

#8.Determinacion de consistencia: Para determinar la consistencia de los datos, primero de toman muestras con distinto tamaño:

muestra1 <-c(50.28, 51.04,50.09,49.08,50.55,50.06)
Tamaño_muestra1<-length(muestra1)
muestra2<- c(50.28, 51.04,50.09,49.08,50.55,50.06,49.54,49.43,  
51.14,49.99,49.5,50.36)
Tamaño_muestra2<-length(muestra2)
datos <- c(50.28, 51.04,50.09,49.08,50.55,50.06,49.54,49.43,    
51.14,49.99,49.5,50.36,50.17,50.01,49.56,50.5,49.86,49.41,50.73,49.64,51.92,50.88,50.03,51.49)
Tamaño_poblacio<-length(datos)
media_1<- mean(muestra1)
media_1
## [1] 50.18333
media_2<- mean(muestra2)
media_2
## [1] 50.08833
media_datos<- mean(datos)
media_datos
## [1] 50.21917
cat("El promedio del crecimiento_cm para una muestra con:",Tamaño_muestra1,"elementos es igual a:" ,media_1)
## El promedio del crecimiento_cm para una muestra con: 6 elementos es igual a: 50.18333

##El crecimiento promedio de las plantas fue 50.22 cm, mientras que la muestra seleccionada presentó una media de 50.18 cm. #La media muestral se aproxima al crecimiento promedio de las platantas, reflejando que la muestra es representativa aunque con ligera diferencia.

cat("El promedio del crecimiento_cm para una muestra con:",Tamaño_muestra2,"elementos es igual a:" ,media_2)
## El promedio del crecimiento_cm para una muestra con: 12 elementos es igual a: 50.08833
cat("El promedio del crecimiento_cm para las plantas:",Tamaño_poblacio,"es igual a:" ,media_datos)
## El promedio del crecimiento_cm para las plantas: 24 es igual a: 50.21917
cat("El promedio del crecimiento_cm para las plantas:",Tamaño_poblacio,"es igual a:" ,media_datos)
## El promedio del crecimiento_cm para las plantas: 24 es igual a: 50.21917

#Debido a las variaciones de la media para cada una de las distintas muestras con respecto a la media del crecimiento de las plantas se puede determinar que los datos son inconsistentes.

#9. Determinacion de Eficiencia

varianza_Poblacional <- var(datos)
varianza_Poblacional
## [1] 0.5029645
varianza_muestra1 <- var(muestra1)
varianza_muestra1
## [1] 0.4237867
varianza_muestra2 <- var(muestra2)
varianza_muestra2
## [1] 0.4038879

#La varianza poblacional fue 0.50 y la muestra presentó 0.42.La dispersión de los datos es baja, indicando crecimiento relativamente uniforme entre las plantas. #se recomienda Monitorear factores ambientales para mantener la homogeneidad del crecimiento.

if (varianza_Poblacional < varianza_muestra1) {
  print("Es eficiente")
} else {
  print("No es eficiente")
}
## [1] "No es eficiente"

#Consistencia #Los promedios de distintas muestras varían ligeramente frente a la media poblacional.

#Los datos son inconsistentes, reflejando variabilidad dentro de cada punto de muestreo. #se recomienda recolectar más observaciones o realizar mediciones adicionales para mejorar la consistencia de los resultados.

#6. Eficiencia #La varianza de la muestra es mayor que la de la población, indicando que el estimador no es eficiente. #La muestra no captura completamente la dispersión de la población. #se recomienda aumentar el tamaño de la muestra o ajustar el muestreo para lograr estimadores más eficientes.