<!DOCTYPE html>

Untitled
install.packages("readxl")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("summarytools")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("BSDA")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("EnvStats")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
install.packages("tidyverse")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(readxl)
library(summarytools)
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
library(BSDA)
## Loading required package: lattice
## 
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
## 
##     Orange
library(EnvStats)
## 
## Attaching package: 'EnvStats'
## The following objects are masked from 'package:stats':
## 
##     predict, predict.lm
## The following object is masked from 'package:base':
## 
##     print.default
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ tibble::view()  masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
st_options(lang = "es")
datos <- read_excel("PLANILLA.xlsx")
datos2 <- read_excel("planilla hoja 2.xlsx")
proyecto <- datos %>%
  rename(VARIEDAD = "Variedad",
    NUMERO = "Nª de Frutos",
    PESO = "Peso (gr.)",
    DIAMETRO = "Diametro Ec.",
    ESTADO = "Estado S.",
    COLOR = "Color"
    )

PESO

data(proyecto)
## Warning in data(proyecto): data set 'proyecto' not found
proyecto
with(proyecto, stby(PESO, VARIEDAD, descr, stats= "common"))
## Estadísticas descriptivas  
## PESO por VARIEDAD  
## Data frame: proyecto  
## N: 60  
## 
##                    Clementina   Criolla
## ---------------- ------------ ---------
##            Media       165.73     99.87
##         Dev.std.        33.86     17.25
##              Min       107.00     67.00
##          Mediana       164.00     96.50
##              Max       231.00    140.00
##       Num.Válido        30.00     30.00
##                N        30.00     30.00
##       Pct.Válido       100.00    100.00
ggplot(proyecto, aes(x = VARIEDAD, y = PESO, fill = VARIEDAD)) +
   geom_boxplot() +
   stat_summary(fun = mean, geom = "point", shape = 20, size = 1, color = "black") +  # Agrega punto de la media
   labs(
     title = "Comparación de peso entre variedades de mandarinas",
     x = "Variedades",
     y = "Peso (gr.)"
   ) +
   theme_minimal() +
   scale_fill_manual(values = c("red", "orange")) +
   theme(legend.position = "none")

#FILTRAR CADA GRUPO

peso_clementina <- proyecto$PESO[proyecto$VARIEDAD == "Clementina"]
peso_criolla <- proyecto$PESO[proyecto$VARIEDAD == "Criolla"]
length(peso_clementina)
## [1] 30
length(peso_criolla)
## [1] 30

prueba F HO: P. CLEMENTINA = P. CRIOLLA HI: P. CLEMENTINA =/ P. CRIOLLA

var.test(peso_clementina, peso_criolla, alternative = "two.sided", conf.level = 0.95)
## 
##  F test to compare two variances
## 
## data:  peso_clementina and peso_criolla
## F = 3.8533, num df = 29, denom df = 29, p-value = 0.0005054
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  1.834016 8.095682
## sample estimates:
## ratio of variances 
##           3.853259

Plateo de hipótesis

H0:μClementina ≤ μCriolla. H1:μClementina > μCriolla

t.test(peso_clementina, peso_criolla, 
       alternative = "greater",  
       var.equal = FALSE,        
       conf.level = 0.95)
## 
##  Welch Two Sample t-test
## 
## data:  peso_clementina and peso_criolla
## t = 9.4944, df = 43.102, p-value = 1.987e-12
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
##  54.20496      Inf
## sample estimates:
## mean of x mean of y 
## 165.73333  99.86667

DIAMETRO

diametros <- proyecto %>%
   group_by(VARIEDAD) %>%
   summarise(Media = mean(DIAMETRO, na.rm = TRUE),
             SD = sd(DIAMETRO, na.rm = TRUE))
ggplot(diametros, aes(x = VARIEDAD, y = Media)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(title = "Diámetro medio por variedad",
       y = "Diámetro (mm)", x = "Variedades") +
  theme_minimal() +
  scale_y_continuous(breaks = seq(0, max(diametros$Media) + 10, by = 5))

diametro_clementina <- proyecto$DIAMETRO[proyecto$VARIEDAD == "Clementina"]
diametro_criolla <- proyecto$DIAMETRO[proyecto$VARIEDAD == "Criolla"]
var.test(diametro_clementina, diametro_criolla, 
         alternative = "two.sided", 
         conf.level = 0.95)
## 
##  F test to compare two variances
## 
## data:  diametro_clementina and diametro_criolla
## F = 1.5966, num df = 29, denom df = 29, p-value = 0.2137
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.7599064 3.3543662
## sample estimates:
## ratio of variances 
##            1.59656

hipótesis es:

H₀: diámetro Clementina ≤ diámetro Criolla H₁: diámetro Clementina > diámetro Criolla

t.test(diametro_clementina, diametro_criolla,
       alternative = "greater", 
       var.equal = TRUE,       
       conf.level = 0.95)
## 
##  Two Sample t-test
## 
## data:  diametro_clementina and diametro_criolla
## t = 8.3418, df = 58, p-value = 8.21e-12
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
##  8.289359      Inf
## sample estimates:
## mean of x mean of y 
##  38.83333  28.46667
tabla_estado <- table(proyecto$VARIEDAD, proyecto$ESTADO)
tabla_estado
##             
##               1  2  3
##   Clementina 28  2  0
##   Criolla    19  8  3

#Esta prueba contrasta:

H₀ (nula): No hay relación entre la variedad y el estado sanitario (son independientes).

H₁ (alternativa): Hay relación entre la variedad y el estado sanitario (no son independientes).

chisq.test(tabla_estado)
## Warning in chisq.test(tabla_estado): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  tabla_estado
## X-squared = 8.3234, df = 2, p-value = 0.01558

#DEBIDO A QUE LOS VALORES SON MENORES A 5

fisher.test(tabla_estado)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  tabla_estado
## p-value = 0.01749
## alternative hypothesis: two.sided

ESTADO SANITARIO 1)

# Asegurarse de que la categoría "3" con variedad "Criolla" exista (aunque sin conteo)
proyecto <- proyecto %>%
  add_row(ESTADO = 3, VARIEDAD = "Criolla")
# Crear un data frame con todas las combinaciones posibles
variedades <- c("Clementina", "Criolla")
estados <- c(0, 1, 2, 3)
combinaciones <- expand.grid(ESTADO = estados, VARIEDAD = variedades)

# Contar las combinaciones reales en el dataset original
conteos <- proyecto %>%
  count(ESTADO, VARIEDAD)

# Unir con las combinaciones para forzar que existan todas
datos_completos <- combinaciones %>%
  left_join(conteos, by = c("ESTADO", "VARIEDAD")) %>%
  mutate(n = ifelse(is.na(n), 0, n))  # Rellenar con 0 donde no hay datos

# Graficar
ggplot(datos_completos, aes(x = factor(ESTADO), y = n, fill = VARIEDAD)) +
  geom_bar(stat = "identity", position = position_dodge(preserve = "single")) +
  theme_minimal() +
  labs(
    title = "Distribución del estado sanitario por variedad",
    y = "Cantidad de mandarinas",
    x = "ESTADO"
  ) +
  scale_x_discrete(limits = c("0", "1", "2", "3")) +
  scale_y_continuous(
    breaks = seq(0, 30, by = 2),
    limits = c(0, 30)
  )

datos_filtrados <- subset(proyecto, VARIEDAD %in% c("Clementina", "Criolla"))
tabla_frecuencia <- table(Variedades = datos_filtrados$VARIEDAD, Estado_Sanitario = datos_filtrados$ESTADO)
# Mostrar la tabla de frecuencias
print("Tabla de frecuencia absoluta:")
## [1] "Tabla de frecuencia absoluta:"
print(tabla_frecuencia)
##             Estado_Sanitario
## Variedades    1  2  3
##   Clementina 28  2  0
##   Criolla    19  8  4
# Mostrar la tabla de porcentajes por variedad
print("Tabla de frecuencia relativa (%):")
## [1] "Tabla de frecuencia relativa (%):"
tabla_estado <- table(proyecto$VARIEDAD, proyecto$ESTADO)
tabla_estado
##             
##               1  2  3
##   Clementina 28  2  0
##   Criolla    19  8  4

#Esta prueba contrasta:

H₀ (nula): No hay relación entre la variedad y el estado sanitario (son independientes).

H₁ (alternativa): Hay relación entre la variedad y el estado sanitario (no son independientes).

chisq.test(tabla_estado)
## Warning in chisq.test(tabla_estado): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  tabla_estado
## X-squared = 9.3095, df = 2, p-value = 0.009516

#DEBIDO A QUE LOS VALORES SON MENORES A 5

fisher.test(tabla_estado)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  tabla_estado
## p-value = 0.006532
## alternative hypothesis: two.sided

CONCLUSION: el estado sanitario depende de la variedad. P-VALUE < O.05

COLOR

tabla <- table(proyecto$VARIEDAD, proyecto$COLOR)

# Convertir a data frame
colores <- as.data.frame.matrix(tabla)
# Renombrar las filas
rownames(colores) <- c("Criolla", "Clementina")
# Agregar columna de totales por fila
colores$Total <- rowSums(colores)
# Agregar fila de totales por columna
totales <- colSums(colores)
colores <- rbind(colores, Total = totales)
# Ver tabla final
print(colores)
##             1  2  3 4 Total
## Criolla     8  9  7 6    30
## Clementina 10  8 11 1    30
## Total      18 17 18 7    60

PARA TRABAJAR CON ANALISIS

# Paso 1: Crear tabla de contingencia
tabla <- table(proyecto$VARIEDAD, proyecto$COLOR)
print(tabla)
##             
##               1  2  3  4
##   Clementina  8  9  7  6
##   Criolla    10  8 11  1
# Paso 2: Aplicar prueba chi-cuadrado
resultado <- chisq.test(tabla)
## Warning in chisq.test(tabla): Chi-squared approximation may be incorrect
# Ver resultados principales
print(resultado)
## 
## Results of Hypothesis Test
## --------------------------
## 
## Alternative Hypothesis:          
## 
## Test Name:                       Pearson's Chi-squared test
## 
## Data:                            tabla
## 
## Test Statistic:                  X-squared = 4.741363
## 
## Test Statistic Parameter:        df = 3
## 
## P-value:                         0.1917454
# Ver residuos esperados y estandarizados
print("Valores esperados:")
## [1] "Valores esperados:"
print(resultado$expected)
##             
##              1   2 3   4
##   Clementina 9 8.5 9 3.5
##   Criolla    9 8.5 9 3.5
print("Residuos estandarizados:")
## [1] "Residuos estandarizados:"
print(resultado$stdres)
##             
##                       1          2          3          4
##   Clementina -0.5634362  0.2864949 -1.1268723  2.0107528
##   Criolla     0.5634362 -0.2864949  1.1268723 -2.0107528

HOJA 2

% DE JUGO

# Reemplaza 'Variedad' y '%Jugo' por los nombres reales de las columnas si son diferentes
porcentajejugo<- datos2 %>%
  filter(VARIEDAD %in% c("Criolla", "Clementina")) %>%
  group_by(VARIEDAD) %>%
  summarise(Promedio_Jugo = mean(`%JUGO`, na.rm = TRUE))
# Calcular porcentaje y posición de etiquetas
porcentajejugo <- porcentajejugo %>%
  mutate(porcentaje = Promedio_Jugo / sum(Promedio_Jugo) * 100,
         etiqueta = paste0(round(porcentaje, 1), "%"))

# Gráfico con etiquetas
ggplot(porcentajejugo, aes(x = "", y = Promedio_Jugo, fill = VARIEDAD)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  geom_text(aes(label = etiqueta),
            position = position_stack(vjust = 0.5)) +
  labs(title = "Comparación promedia del % de jugo: Criolla vs Clementina",
       fill = "Variedad") +
  theme_void()