Primer evalación de estado de la materiade probabilidad y estadística para ingeniería de software

Caso de estudio 1: Acuacultura

Se tienen 12 semanas de datos de 12 estanques en los cuales a partir de la semana número 2 se empiezan a pesar los camarones en crecimiento, también se cuantifica su nivel de comida.

En términos ideales los 12 estanquen tendían que llegar en la semana número 12 a 12 gramos para poder entonces realizar la “cosecha”, pero únicamente 3 de los 12 estanques llegaron a este peso.

¿Por qué esto es un problema? Dato a que se tendrá que invertir una semana (o más) para poder llegar al peso ideal, y esto supone una pérdida de dinero

  • Datos:
CAMARONES <- read_csv("CAMARONES.csv")
## Parsed with column specification:
## cols(
##   Estanque = col_character(),
##   EstanqueN = col_double(),
##   Superficie = col_double(),
##   Dias = col_double(),
##   Semana = col_double(),
##   PesoAnterior = col_double(),
##   PesoActual = col_double(),
##   TamanioAlimento = col_double(),
##   AlimentoSemana = col_double(),
##   AlimentoDiario = col_double(),
##   Meta = col_double()
## )
datatable(CAMARONES)
  • Preguntas a responder
  1. Haga un planteamiento del problema a resolver con estadística y realice una descripción exploratoria de los datos (MMM,MD,CB)

MMM

Filtración de los datos del peso de los camarones

#Datos totales
datos <- t(CAMARONES$PesoActual)
datos <- as.vector(datos)
#Semana 1
datosS1 <- t(CAMARONES$PesoAnterior)
datosS1 <- as.vector(datosS1)
datosS1 <- datosS1[1:12]
datosS1
##  [1] 0.145 0.153 0.149 0.154 0.166 0.215 0.220 0.134 0.160 0.151 0.141 0.130
#Semana 2
datosS2 <- datos[1:12]
datosS2
##  [1] 0.77 0.78 0.69 0.72 0.61 0.62 0.64 0.62 0.70 0.62 0.71 0.60
#Semana 3
datosS3 <- datos[13:24]
datosS3
##  [1] 1.32 1.32 1.37 1.45 1.49 1.43 1.32 1.38 1.75 1.74 1.57 1.39
#Semana 4
datosS4 <- datos[25:36]
datosS4
##  [1] 2.03 1.96 1.73 2.45 2.36 1.83 1.77 2.08 2.14 2.17 2.09 1.93
#Semana 5
datosS5 <- datos[37:48]
datosS5
##  [1] 3.13 3.01 2.86 3.38 3.06 2.91 2.88 3.58 3.62 3.34 3.19 2.97
#Semana 6
datosS6 <- datos[49:60]
datosS6
##  [1] 4.25 3.52 4.05 4.09 3.90 3.42 3.91 4.20 4.95 4.50 3.85 4.17
#Semana 7
datosS7 <- datos[61:72]
datosS7
##  [1] 4.32 4.42 5.02 4.71 4.29 4.03 4.00 5.04 5.21 4.75 4.64 5.17
#Semana 8
datosS8 <- datos[73:84]
datosS8
##  [1] 6.21 6.31 5.81 5.33 5.53 5.33 5.29 5.65 6.93 5.83 5.72 5.86
#Semana 9
datosS9 <- datos[85:96]
datosS9
##  [1] 7.64 6.95 6.21 6.53 6.08 6.51 6.42 7.09 6.99 6.65 6.00 6.25
#Semana 10
datosS10 <- datos[97:108]
datosS10
##  [1] 9.46 8.02 8.69 8.32 8.40 8.51 7.88 7.94 8.83 8.01 8.00 7.85
#Semana 11
datosS11 <- datos[109:120]
datosS11
##  [1] 10.36  9.23 10.36  9.37  9.72 10.19 10.01 10.06 10.13  9.41  9.01 10.12
#Semana 12
datosS12 <- datos[121:132]
datosS12
##  [1] 12.18 11.17 11.65 10.67 11.62 11.12 11.53 12.26 11.81 11.21 11.26 12.05

Se puede ver que únicamente en 3 estanques tienen el peso ideal deseado, el estanque 1, estanque 8 y en el estanque 12, estos son los únicos que llegaron al peso ideal.

Media

mean(datosS1) #Media de la semana 1
## [1] 0.1598333
mean(datosS2) #Media de la semana 2
## [1] 0.6733333
mean(datosS3) #Media de la semana 3
## [1] 1.460833
mean(datosS4) #Media de la semana 4
## [1] 2.045
mean(datosS5) #Media de la semana 5
## [1] 3.160833
mean(datosS6) #Media de la semana 6
## [1] 4.0675
mean(datosS7) #Media de la semana 7
## [1] 4.633333
mean(datosS8) #Media de la semana 8
## [1] 5.816667
mean(datosS9) #Media de la semana 9
## [1] 6.61
mean(datosS10) #Media de la semana 10
## [1] 8.325833
mean(datosS11) #Media de la semana 11
## [1] 9.830833
mean(datosS12) #Media de la semana 12
## [1] 11.54417

Se puede ver que la media en el paso de las semanas se ve normal, lo cual esto es normal, ya que los camarones van subiendo de peso, de momento todo es normal

Mediana

median(datosS1) #Mediana de la semana 1
## [1] 0.152
median(datosS2) #Mediana de la semana 2
## [1] 0.665
median(datosS3) #Mediana de la semana 3
## [1] 1.41
median(datosS4) #Mediana de la semana 4
## [1] 2.055
median(datosS5) #Mediana de la semana 5
## [1] 3.095
median(datosS6) #Mediana de la semana 6
## [1] 4.07
median(datosS7) #Mediana de la semana 7
## [1] 4.675
median(datosS8) #Mediana de la semana 8
## [1] 5.765
median(datosS9) #Mediana de la semana 9
## [1] 6.52
median(datosS10) #Mediana de la semana 10
## [1] 8.17
median(datosS11) #Mediana de la semana 11
## [1] 10.035
median(datosS12) #Mediana de la semana 12
## [1] 11.575

La mediana de los datos es el punto medio de los datos, esto se ve normal, no hay nada fuera de lo normal, ya que saca el punto medio de los datos de las semanas, en la mediana, se puede ver que en las semana 7 tiene un valor similar al de la semana 6, lo cual significa que no hubo mucho avance, lo cual es malo, porque significa que algunos datos no avanzaron lo suficiente.

Moda

mfv(datosS1) #Moda de la semana 1
##  [1] 0.130 0.134 0.141 0.145 0.149 0.151 0.153 0.154 0.160 0.166 0.215 0.220
mfv(datosS2) #Moda de la semana 2
## [1] 0.62
mfv(datosS3) #Moda de la semana 3
## [1] 1.32
mfv(datosS4) #Moda de la semana 4
##  [1] 1.73 1.77 1.83 1.93 1.96 2.03 2.08 2.09 2.14 2.17 2.36 2.45
mfv(datosS5) #Moda de la semana 5
##  [1] 2.86 2.88 2.91 2.97 3.01 3.06 3.13 3.19 3.34 3.38 3.58 3.62
mfv(datosS6) #Moda de la semana 6
##  [1] 3.42 3.52 3.85 3.90 3.91 4.05 4.09 4.17 4.20 4.25 4.50 4.95
mfv(datosS7) #Moda de la semana 7
##  [1] 4.00 4.03 4.29 4.32 4.42 4.64 4.71 4.75 5.02 5.04 5.17 5.21
mfv(datosS8) #Moda de la semana 8
## [1] 5.33
mfv(datosS9) #Moda de la semana 9
##  [1] 6.00 6.08 6.21 6.25 6.42 6.51 6.53 6.65 6.95 6.99 7.09 7.64
mfv(datosS10) #Moda de la semana 10
##  [1] 7.85 7.88 7.94 8.00 8.01 8.02 8.32 8.40 8.51 8.69 8.83 9.46
mfv(datosS11) #Moda de la semana 11
## [1] 10.36
mfv(datosS12) #Moda de la semana 12
##  [1] 10.67 11.12 11.17 11.21 11.26 11.53 11.62 11.65 11.81 12.05 12.18 12.26

Como se puede ver en las semanas 2,3,8,11 existen repiten, lo cual es bueno, porque significa que la mayoría de los camarones se desarrollan de la misma manera, sin embargo en diferentes en las demás no hay ninguna moda, lo cual significa que no se desarrollan igual, lo cual sigue siendo normal porque son animales, comen diferentes y hay situaciones en las cuales comen mas o menos.

Resumen de la media, mediana y moda

summary(datosS1) #Resumen de la semana 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1300  0.1440  0.1520  0.1598  0.1615  0.2200

summary(datosS2) #Resumen de la semana 2
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.6000  0.6200  0.6650  0.6733  0.7125  0.7800

summary(datosS3) #Resumen de la semana 3
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.320   1.357   1.410   1.461   1.510   1.750

summary(datosS4) #Resumen de la semana 4
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.730   1.905   2.055   2.045   2.147   2.450

summary(datosS5) #Resumen de la semana 5
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.860   2.955   3.095   3.161   3.350   3.620

summary(datosS6) #Resumen de la semana 6
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.420   3.888   4.070   4.067   4.213   4.950

summary(datosS7) #Resumen de la semana 7
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.000   4.312   4.675   4.633   5.025   5.210

summary(datosS8) #Resumen de la semana 8
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   5.290   5.480   5.765   5.817   5.947   6.930

summary(datosS9) #Resumen de la semana 9
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    6.00    6.24    6.52    6.61    6.96    7.64

summary(datosS10) #Resumen de la semana 10
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   7.850   7.985   8.170   8.326   8.555   9.460

summary(datosS11) #Resumen de la semana 11
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   9.010   9.400  10.035   9.831  10.145  10.360

summary(datosS12) #Resumen de la semana 12
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.67   11.20   11.57   11.54   11.87   12.26

Medidas de dispersion

Varianza

var(datosS1) #Varianza de la semana 1
## [1] 0.0008281515
var(datosS2) #Varianza de la semana 2
## [1] 0.004024242
var(datosS3) #Varianza de la semana 3
## [1] 0.02315379
var(datosS4) #Varianza de la semana 4
## [1] 0.04844545
var(datosS5) #Varianza de la semana 5
## [1] 0.07000833
var(datosS6) #Varianza de la semana 6
## [1] 0.1679295
var(datosS7) #Varianza de la semana 7
## [1] 0.1801515
var(datosS8) #Varianza de la semana 8
## [1] 0.2281879
var(datosS9) #Varianza de la semana 9
## [1] 0.2316364
var(datosS10) #Varianza de la semana 10
## [1] 0.2350992
var(datosS11) #Varianza de la semana 11
## [1] 0.2166629
var(datosS12) #Varianza de la semana 12
## [1] 0.2306265

Se puede ver que la varianza de los datos va aumentando, lo cual indica que en los estanques sufren de una disparidad en los estanques, lo cual es lógico, ya que sabemos que únicamente 3 llegaron a 12gr, y los demás están debajo de los 12.

Desviación estándar

sd(datosS1) #Desviación estándar de la semana 1
## [1] 0.02877762
sd(datosS2) #Desviación estándar de la semana 2
## [1] 0.06343692
sd(datosS3) #Desviación estándar de la semana 3
## [1] 0.1521637
sd(datosS4) #Desviación estándar de la semana 4
## [1] 0.2201033
sd(datosS5) #Desviación estándar de la semana 5
## [1] 0.2645909
sd(datosS6) #Desviación estándar de la semana 6
## [1] 0.4097921
sd(datosS7) #Desviación estándar de la semana 7
## [1] 0.4244426
sd(datosS8) #Desviación estándar de la semana 8
## [1] 0.4776901
sd(datosS9) #Desviación estándar de la semana 9
## [1] 0.4812862
sd(datosS10) #Desviación estándar de la semana 10
## [1] 0.4848703
sd(datosS11) #Desviación estándar de la semana 11
## [1] 0.4654706
sd(datosS12) #Desviación estándar de la semana 12
## [1] 0.4802359

Se puede ver que la desviación estándar empieza a subir, esto es debido a que a través de las semanas los datos empiezan a ser mas diferentes entre si.

Gráfico de caja y bigotes

boxplot(datosS1,ylab="Peso") #Gráfico de caja y bigotes de la semana 1

boxplot(datosS2,ylab="Peso") #Gráfico de caja y bigotes de la semana 2

boxplot(datosS3,ylab="Peso") #Gráfico de caja y bigotes de la semana 3

boxplot(datosS4,ylab="Peso") #Gráfico de caja y bigotes de la semana 4

boxplot(datosS5,ylab="Peso") #Gráfico de caja y bigotes de la semana 5

boxplot(datosS6,ylab="Peso") #Gráfico de caja y bigotes de la semana 6

boxplot(datosS7,ylab="Peso") #Gráfico de caja y bigotes de la semana 7

boxplot(datosS8,ylab="Peso") #Gráfico de caja y bigotes de la semana 8

boxplot(datosS9,ylab="Peso") #Gráfico de caja y bigotes de la semana 9

boxplot(datosS10,ylab="Peso") #Gráfico de caja y bigotes de la semana 10

boxplot(datosS11,ylab="Peso") #Gráfico de caja y bigotes de la semana 11

boxplot(datosS12,ylab="Peso") #Gráfico de caja y bigotes de la semana 12

Lo que se puede ver es que los gráficos cambian, en la semana 6 hay incluso un dato atípico, sin embargo en la semana 6 y 7 la media es muy parecido, pero el valor máximo aumento, lo cual esta mal, ya que la media debería aumentar mas, debido al cambio de semana, lo cual indica que la mayoría de los camarones no subieron lo suficiente de peso.

  1. ¿Qué tienen de diferentes los estanques que SI llegan a 12 gramos en la semana 12 con respecto a los que no?
alimento <- t(CAMARONES$AlimentoSemana)
alimento <- as.vector(alimento)
alimento <- alimento[85:132]
alimento[1:12] #Semana 9
##  [1] 1095 1070 1130 1055 1005 1085 1105 1060 1140 1115 1045 1050
alimento[13:24] #Semana 10
##  [1] 1305 1240 1375 1440 1415 1340 1370 1350 1350 1500 1450 1325
alimento[25:36] #Semana 11
##  [1] 1450 1225 1600 1825 1650 1600 1950 1975 1175 1975 1925 1350
alimento[37:48] #Semana 12
##  [1] 1950 1900 1975 2000 1900 1975 1925 2050 2025 1900 2075 2075

A partir de la semana 8 empiezan a dar comida de manera dispareja, lo cual puede suponer que empezaron a dar mas comida a los que pesaban menos, y dar menos comida a los que pesaban mas, sin embargo esto no significa que esta es la razón de que no hayan llegado, ya que se puede ver que en algunas veces se da menos alimento a algunos estanques, probablemente esta dispariedad en la alimentación es debía a lo sucedido en la semana 6 y 7, sin embargo no se sabe porque los camarones no subieron lo suficiente en la semana.

3.- ¿Con qué variables se relaciona el aumento de preso de los camarones?(Regresión lineal, residuos, confianza)

Regresión lineal

Diagrama de dipersión

pairs(CAMARONES[2:10])

# Aquí se puede ver todos los datos de la tabla de camarones, se ignora la columna 1 porque no son valores que no se pueden usar porque son numéricos, a demás en la segunda columna esta especificado, su uso seria redundante.

En esta tabla se ven las relaciones de todas las variables, se pueden ver que hay muchas relaciones cerca del centro, esto es debido a la relación que existe en los pesos y el alimento.

pairs(CAMARONES[7:9])

En esta tabla acotada se puede ver mas claro que existe una relación bastante clara en PesoActual con el AlimentoSemana

  • Variable con los datos a utilizar
relacion <- CAMARONES[7:9]

Aquí se crea una variable en la cual se guardan los datos que se usarán

Cuantificación del grado de relación

cor(relacion)
##                 PesoActual TamanioAlimento AlimentoSemana
## PesoActual       1.0000000       0.8805769      0.9514703
## TamanioAlimento  0.8805769       1.0000000      0.8484229
## AlimentoSemana   0.9514703       0.8484229      1.0000000

En este paso se puede ver que existe una relación muy grande entre el PesoActual y AlientoSemana, esto significa que el valor del peso actual depende directamente del alimento semanal

Recta de minimos cuadrados

regresion <- lm(AlimentoSemana ~ PesoActual, data = relacion)
summary(regresion)
## 
## Call:
## lm(formula = AlimentoSemana ~ PesoActual, data = relacion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -526.00  -89.86    9.59   90.77  380.46 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  285.864     24.864   11.50   <2e-16 ***
## PesoActual   139.697      3.963   35.25   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 153.7 on 130 degrees of freedom
## Multiple R-squared:  0.9053, Adjusted R-squared:  0.9046 
## F-statistic:  1243 on 1 and 130 DF,  p-value: < 2.2e-16

Gráfica de minimos cuadrados

plot(relacion$PesoActual,relacion$AlimentoSemana,xlab="Peso actual de los camarones",ylab="Alimento semanal de los camarones")
abline(regresion)

Modelación de predicciones

progreso.peso <- data.frame(PesoActual=seq(2,12))
predict(regresion,progreso.peso)
##         1         2         3         4         5         6         7         8 
##  565.2587  704.9559  844.6532  984.3504 1124.0476 1263.7449 1403.4421 1543.1393 
##         9        10        11 
## 1682.8366 1822.5338 1962.2310

Intervalo de confianza para el 95% de los datos

confint(regresion)
##                2.5 %   97.5 %
## (Intercept) 236.6740 335.0544
## PesoActual  131.8572 147.5372

Representación gráfica de los intervalos de confianza

progreso.peso <- data.frame(PesoActual=seq(2,12))
#Gráfico de dispersión y recta
plot(relacion$PesoActual,relacion$AlimentoSemana,xlab="Peso actual de los camarones",ylab="Alimento semanal")
abline(regresion)

#Intervalos de confianza de la respuesta media
# ic es una matriz con tres columnas:
#La primera es la predicción, y las otras son los extremos del intervalo
ic <- predict(regresion, progreso.peso, interval = "confidence")
lines(progreso.peso$PesoActual, ic[, 2], lty=2, col = "blue")
lines(progreso.peso$PesoActual, ic[, 3], lty=2, col = "blue")

# Intervalos de predicción

ic <- predict(regresion, progreso.peso, interval = "prediction")
lines(progreso.peso$PesoActual, ic[, 2], lty = 2, col = "red")
lines(progreso.peso$PesoActual, ic[, 3], lty = 2,col = "red")

Gracias a la gráfica se puede ver que el intervalo de confianza esta muy cerda de la recta, lo cual significa que el intervalo que se uso es muy confiable, debido a la relación que existe entre el peso actual de los camarones y el alimento semana, sin embargo el intervalo de predicción esta muy alejado de la recta, lo cual significa que los valores probablemente se alegaran mucho de la recta negra.

4.- ¿Los camarones que iniciaron con mayor peso (semana 2) son también los que terminaron en mayor peso? ¿Cómo varía el crecimiento?

datosS2 #Datos de los pesos de los camarones en la semana 2
##  [1] 0.77 0.78 0.69 0.72 0.61 0.62 0.64 0.62 0.70 0.62 0.71 0.60
datosS12 #Datos de los pesos de los camarones en la semana 12
##  [1] 12.18 11.17 11.65 10.67 11.62 11.12 11.53 12.26 11.81 11.21 11.26 12.05

Aquí se puede ver que los estanques que tenían los mayores pesos eran: 1, 2, 4, 9 y 11, sin embargo, en la semana 12 los que tiene mayor peso son: 1,3,5,8,9 y 12. Como se puede ver casi son los mismos, pero el 2, el 4 y el 11 no llegaron a los pesos mas altos, pero se integraron el 3, el 8 y el 12, de los que estaban en los pesos altos originalmente únicamente el 1 llego a 12gr, esto debido a la alimentación, después en la semana 12, 2 mas lograron llegar a la meta, pero estos no estaban en los valores mas altos de peso en la semana 2, esto es debido a la alimentación y probablemente a factores externos, tales como la actividad física de los camarones o incluso alguna enfermedad.

5.- Realice un análisis de regresión logística para determinar que hace que los camarones lleguen a 12 gramos.

  • Filtración de los datos
meta <- CAMARONES[121:133,7:11]
## Warning: The `i` argument of ``[.tbl_df`()` must lie in [0, rows] if positive, as of tibble 3.0.0.
## Use `NA_integer_` as row index to obtain a row full of `NA` values.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
meta
## # A tibble: 13 x 5
##    PesoActual TamanioAlimento AlimentoSemana AlimentoDiario  Meta
##         <dbl>           <dbl>          <dbl>          <dbl> <dbl>
##  1       12.2               2           1950           279.     1
##  2       11.2               2           1900           271.     0
##  3       11.6               2           1975           282.     0
##  4       10.7               2           2000           286.     0
##  5       11.6               2           1900           271.     0
##  6       11.1               2           1975           282.     0
##  7       11.5               2           1925           275      0
##  8       12.3               2           2050           293.     1
##  9       11.8               2           2025           289.     0
## 10       11.2               2           1900           271.     0
## 11       11.3               2           2075           296.     0
## 12       12.0               2           2075           296.     1
## 13       NA                NA             NA            NA     NA

Se puede ver que la máyoria de los camarones no llegaron a la meta.

colores <- NULL
colores[meta$Meta==0] <- "red"
colores[meta$Meta==1] <- "green"
plot(meta$AlimentoSemana,meta$Meta, pch =21, bg= colores, xlab = "Alimento de la semana",ylab = "Peso de los camarones")

legend("topleft", c("No llego a la meta", "Si llego a la meta"),pch =21, col=c("red","blue") )

A mayor cantidad de alimento es mayor la probabilidad de que aumente su peso, sin embargo, no es 100% seguro de que los camarones suban mas de peso si se les alimenta mas, se puede ver que a partir de 2050 de comida la probabilidad de que suban de peso es mayor.

reg <- glm(Meta ~ AlimentoSemana, data = meta, family=binomial)
summary(reg)
## 
## Call:
## glm(formula = Meta ~ AlimentoSemana, family = binomial, data = meta)
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -1.28965  -0.68424  -0.39705  -0.00008   2.00729  
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)
## (Intercept)    -35.12289   25.87759  -1.357    0.175
## AlimentoSemana   0.01705    0.01287   1.325    0.185
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 13.496  on 11  degrees of freedom
## Residual deviance: 11.311  on 10  degrees of freedom
##   (1 observation deleted due to missingness)
## AIC: 15.311
## 
## Number of Fisher Scoring iterations: 5

Resumen de regresión logística binomial

datos <- data.frame(AlimentoSemana=seq(1950,2075))
probabilidades <- predict(reg,datos, type="response")
  plot(meta$AlimentoSemana,meta$Meta,pch=21,bg=colores,xlab="Probabilidad de subir de peso por el alimento semanal",ylab="Probabilidad subir de peso de los camarones")


legend("topleft", c("No llego a la meta", "Si llego a la meta"),pch =21, col=c("red","green") )
lines(datos$AlimentoSemana,probabilidades,col="blue",lwd=2)

Se puede ver claramente que los camarones aumenta su peso si los alimentan mas, el problema fue que semanalmente no dieron la suficiente comida a algunos estanques, esto probablemente fue que empezaron a dar comida dispareja, debieron de dar mas comida a los que pesaban menos y no dar menos mucho menos a los que pesaban mas.