Introducción

Este reporte analiza el efecto del insecticida DDT en la fertilidad de tres líneas genéticas de mosquita blanca (R.S, S.S y N.S), medido a través del número de puestas de huevos. Las mediciones se realizaron por duplicado en condiciones controladas.

# Primera linea genética R.S 
#Medidas de tendencia central y boxplot

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias

library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca R.S 1y 2` <- as.numeric(base$`Mosca R.S 1y 2`)


#Calculo de media
media <- mean(base$`Mosca R.S 1y 2`)
media
## [1] 23.96667
#Calculo de mediana
mediana <- median(base$`Mosca R.S 1y 2`)
mediana 
## [1] 22.75
#Calculo de moda
moda <- mfv(base$`Mosca R.S 1y 2`)
moda 
##  [1] 12.8 14.8 19.7 20.3 21.6 22.4 23.1 25.7 26.4 27.5 34.6 38.7
#Grafico boxplot
boxplot(base$`Mosca R.S 1y 2`, 
        main="Boxplot de R.S", 
        xlab="Puestas de huevos", 
        col="lightblue", 
        horizontal=TRUE, 
        border="darkblue")

cuartiles <- quantile(base$`Mosca R.S 1y 2`)
cuartiles
##     0%    25%    50%    75%   100% 
## 12.800 20.150 22.750 26.675 38.700
# Primera linea genética R.S 
#Medidas de dispersion muestral y grafico de dispersion

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias

library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca R.S 1y 2` <- as.numeric(base$`Mosca R.S 1y 2`)

datos <- c(12.8,21.6,14.8,23.1,34.6,19.7,22.4,27.5,20.3,38.7,26.4,25.7)

datos
##  [1] 12.8 21.6 14.8 23.1 34.6 19.7 22.4 27.5 20.3 38.7 26.4 25.7
rango <- range(datos)
rango
## [1] 12.8 38.7
#CALCULO MUESTRAL"Moscas R.S"

n <- length(datos)
n
## [1] 12
summary(datos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   12.80   20.15   22.75   23.97   26.68   38.70
median <- mean(datos)

datos <- data.frame(xi=datos)
View(datos)
datos <- cbind(datos, media <- mean(datos$xi))
View(datos)
datos<- cbind(datos,diferencia = datos$xi-datos$media)
View(datos)
datos <- cbind(datos,difaldcuadrado = datos$diferencia^2)
View(datos)

sumatoria <- sum(datos$difaldcuadrado)
sumatoria
## [1] 600.7267
var_m <- sumatoria/n
var_m
## [1] 50.06056
desv_m <- round(sqrt(var_m),4)
desv_m
## [1] 7.0753
#calculo del coeficiente de variacion 
#cv= desv estan / media*100

cv_m <- desv_m/(mean(datos$xi))*100
cv_m
## [1] 29.52142
#Gráfico de dispersion con línea media

titulo<- "Datos"
subtitulo<-paste("Media=", round(media,2),"Varianza =" , round(var_m,2),
                 "desv.est =", round(desv_m,2), "cv =", round(cv_m,2), "%")

ggplot(data = datos, mapping = aes(x=1:n, y=xi))+
  geom_point(colour="#87CEFA")+
  geom_hline(yintercept =media, colour="grey")+
  ggtitle(titulo,subtitle = subtitulo)+
  xlab('Observaciones')+ylab('valores')

# Primera linea genética S.S 
#Medidas de tendencia central y boxplot

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias

library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca S.S 1 y 2` <- as.numeric(base$`Mosca S.S 1 y 2`)


#Calculo de media
media <- mean(base$`Mosca S.S 1 y 2`)
media
## [1] 25.73333
#Calculo de mediana
mediana <- median(base$`Mosca S.S 1 y 2`)
mediana 
## [1] 22.7
#Calculo de moda
moda <- mfv(base$`Mosca S.S 1 y 2`)
moda 
## [1] 22.3
#Grafico boxplot
boxplot(base$`Mosca S.S 1 y 2`, 
        main="Boxplot de S.S", 
        xlab="Puestas de huevos", 
        col="lightblue",
        horizontal=TRUE, 
        border="darkblue")

cuartiles <- quantile(base$`Mosca S.S 1 y 2`)
cuartiles
##     0%    25%    50%    75%   100% 
## 11.600 20.700 22.700 30.275 48.500
# Primera linea genética S.S 
#Medidas de dispersion muestral y grafico de dispersion

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias

library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca S.S 1 y 2` <- as.numeric(base$`Mosca S.S 1 y 2`)

datos <- c(38.4,32.9,48.5,20.9,11.6,22.3,23.1,29.4,16,20.1,23.3,22.3)
datos
##  [1] 38.4 32.9 48.5 20.9 11.6 22.3 23.1 29.4 16.0 20.1 23.3 22.3
rango <- range(datos)
rango
## [1] 11.6 48.5
#CALCULO MUESTRAL"Moscas S.S"

n <- length(datos)
n
## [1] 12
summary(datos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.60   20.70   22.70   25.73   30.27   48.50
median <- mean(datos)

datos <- data.frame(xi=datos)
View(datos)
datos <- cbind(datos, media <- mean(datos$xi))
View(datos)
datos<- cbind(datos,diferencia = datos$xi-datos$media)
View(datos)
datos <- cbind(datos,difaldcuadrado = datos$diferencia^2)
View(datos)

sumatoria <- sum(datos$difaldcuadrado)
sumatoria
## [1] 1129.587
var_m <- sumatoria/n
var_m
## [1] 94.13222
desv_m <- round(sqrt(var_m),4)
desv_m
## [1] 9.7022
#calculo del coeficiente de variacion 
#cv= desv estan / media*100

cv_m <- desv_m/(mean(datos$xi))*100
cv_m
## [1] 37.70285
#Gráfico de dispersion con línea media

titulo<- "Datos"
subtitulo<-paste("Media=", round(media,2),"Varianza =" , round(var_m,2),
                 "desv.est =", round(desv_m,2), "cv =", round(cv_m,2), "%")

ggplot(data = datos, mapping = aes(x=1:n, y=xi))+
  geom_point(colour="#87CEFA")+
  geom_hline(yintercept =media, colour="grey")+
  ggtitle(titulo,subtitle = subtitulo)+
  xlab('Observaciones')+ylab('valores')

# Primera linea genética N.S 
#Medidas de tendencia central y boxplot

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias

library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca N.S 1 y 2` <- as.numeric(base$`Mosca N.S 1 y 2`)


#Calculo de media
media <- mean(base$`Mosca N.S 1 y 2`)
media
## [1] 31.325
#Calculo de mediana
mediana <- median(base$`Mosca N.S 1 y 2`)
mediana 
## [1] 32.2
#Calculo de moda
moda <- mfv(base$`Mosca N.S 1 y 2`)
moda 
##  [1] 14.9 19.3 20.3 22.6 27.4 30.4 34.0 35.4 37.6 40.4 41.8 51.8
#Grafico boxplot
boxplot(base$`Mosca N.S 1 y 2`, 
        main="Boxplot de N.S", 
        xlab="Puestas de huevos", 
        col="lightblue",
        horizontal=TRUE, 
        border="darkblue")

cuartiles <- quantile(base$`Mosca N.S 1 y 2`)
cuartiles
##     0%    25%    50%    75%   100% 
## 14.900 22.025 32.200 38.300 51.800
# Primera linea genética N.S 
#Medidas de dispersion muestral y grafico de dispersion

setwd("/Users/julio/OneDrive/Escritorio/Proba")

# Cargar librerías necesarias
library(readxl)
library(modeest)
library(data.table)
library(ggplot2)
library(rio)

base <- read_excel("Lineas genéticas de mosquitas.xlsx")
View(base)

base$`Mosca N.S 1 y 2` <- as.numeric(base$`Mosca N.S 1 y 2`)

datos <- c(35.4,27.4,19.3,41.8,20.3,37.6,22.6,40.4,34,30.4,14.9,51.8)
datos
##  [1] 35.4 27.4 19.3 41.8 20.3 37.6 22.6 40.4 34.0 30.4 14.9 51.8
rango <- range(datos)
rango
## [1] 14.9 51.8
#CALCULO MUESTRAL"Moscas N.S"

n <- length(datos)
n
## [1] 12
summary(datos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   14.90   22.02   32.20   31.32   38.30   51.80
median <- mean(datos)

datos <- data.frame(xi=datos)
View(datos)
datos <- cbind(datos, media <- mean(datos$xi))
View(datos)
datos<- cbind(datos,diferencia = datos$xi-datos$media)
View(datos)
datos <- cbind(datos,difaldcuadrado = datos$diferencia^2)
View(datos)

sumatoria <- sum(datos$difaldcuadrado)
sumatoria
## [1] 1302.762
var_m <- sumatoria/n
var_m
## [1] 108.5635
desv_m <- round(sqrt(var_m),4)
desv_m
## [1] 10.4194
#calculo del coeficiente de variacion 
#cv= desv estan / media*100

cv_m <- desv_m/(mean(datos$xi))*100
cv_m
## [1] 33.26225
#Gráfico de dispersion con línea media

titulo<- "Datos"
subtitulo<-paste("Media=", round(media,2),"Varianza =" , round(var_m,2),
                 "desv.est =", round(desv_m,2), "cv =", round(cv_m,2), "%")

ggplot(data = datos, mapping = aes(x=1:n, y=xi))+
  geom_point(colour="#87CEFA")+
  geom_hline(yintercept =media, colour="grey")+
  ggtitle(titulo,subtitle = subtitulo)+
  xlab('Observaciones')+ylab('valores')

#Análisis estadístico por datos agrupados de las 3 lineas genéticas 
#Histogramas

# Cargar librerías necesarias
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
## 
##     between, first, last
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Crear el dataframe con los datos
datos <- data.frame(
  linea = rep(c("R.S", "R.S", "S.S", "S.S", "N.S", "N.S"), each = 6),
  valor = c(12.8, 21.6, 14.8, 23.1, 34.6, 19.7,  # R.S 1
            22.4, 27.5, 20.3, 38.7, 26.4, 25.7,  # R.S 2
            38.4, 32.9, 48.5, 20.9, 11.6, 22.3,  # S.S 1
            23.1, 29.4, 16.0, 20.1, 23.3, 22.3,  # S.S 2
            35.4, 27.4, 19.3, 41.8, 20.3, 37.6,  # N.S 1
            22.6, 40.4, 34.0, 30.4, 14.9, 51.8)  # N.S 2
)

# Función para calcular número de clases según Sturges
sturges <- function(n) {
  return(ceiling(1 + 3.322 * log10(n)))
}

# Calcular número de clases
n_clases <- sturges(nrow(datos))
print(paste("Número de clases según Sturges:", n_clases))
## [1] "Número de clases según Sturges: 7"
# Calcular rango y amplitud de clase
rango <- max(datos$valor) - min(datos$valor)
amplitud <- rango / n_clases
print(paste("Amplitud de clase:", round(amplitud, 2)))
## [1] "Amplitud de clase: 5.74"
# Crear límites de clases
limites <- seq(min(datos$valor), max(datos$valor), length.out = n_clases + 1)

# Función para crear tabla de frecuencias
tabla_frecuencias <- function(datos, limites) {
  # Crear los cortes
  clases <- cut(datos$valor, breaks = limites, include.lowest = TRUE, right = FALSE)
  
  # Calcular frecuencias
  fi <- table(clases)
  Fi <- cumsum(fi)
  fr <- prop.table(fi)
  Fr <- cumsum(fr)
  
  # Calcular puntos medios
  xi <- (limites[-length(limites)] + limites[-1])/2
  
  # Crear tabla
  tabla <- data.frame(
    Clase = 1:length(fi),
    Intervalo = names(fi),
    fi = as.vector(fi),
    Fi = as.vector(Fi),
    fr = as.vector(fr),
    Fr = as.vector(Fr),
    xi = xi,
    fi_xi = xi * as.vector(fi)
  )
  
  return(tabla)
}

# Crear tabla de frecuencias
tabla <- tabla_frecuencias(datos, limites)

# Calcular estadísticos
media_agrupada <- sum(tabla$fi_xi)/sum(tabla$fi)
print(paste("Media agrupada:", round(media_agrupada, 2)))
## [1] "Media agrupada: 27.07"
# Crear histograma
histograma <- ggplot(datos, aes(x = valor)) +
  geom_histogram(breaks = limites, fill = "skyblue", color = "black") +
  labs(title = "Histograma de Puestas de Huevos",
       x = "Número de puestas",
       y = "Frecuencia") +
  theme_minimal()

# Crear boxplot por línea genética
boxplot <- ggplot(datos, aes(x = linea, y = valor, fill = linea)) +
  geom_boxplot() +
  labs(title = "Boxplot por Línea Genética",
       x = "Línea",
       y = "Número de puestas") +
  theme_minimal()

# Mostrar resultados
print("Tabla de frecuencias:")
## [1] "Tabla de frecuencias:"
print(tabla)
##   Clase   Intervalo fi Fi         fr        Fr       xi     fi_xi
## 1     1 [11.6,17.3)  5  5 0.13888889 0.1388889 14.47143  72.35714
## 2     2 [17.3,23.1) 11 16 0.30555556 0.4444444 20.21429 222.35714
## 3     3 [23.1,28.8)  7 23 0.19444444 0.6388889 25.95714 181.70000
## 4     4 [28.8,34.6)  4 27 0.11111111 0.7500000 31.70000 126.80000
## 5     5 [34.6,40.3)  5 32 0.13888889 0.8888889 37.44286 187.21429
## 6     6 [40.3,46.1)  2 34 0.05555556 0.9444444 43.18571  86.37143
## 7     7 [46.1,51.8]  2 36 0.05555556 1.0000000 48.92857  97.85714
# Mostrar gráficos
print(histograma)

print(boxplot)

# Calcular estadísticos por grupo
resumen_por_grupo <- datos %>%
  group_by(linea) %>%
  summarise(
    media = mean(valor),
    desv_est = sd(valor),
    mediana = median(valor),
    min = min(valor),
    max = max(valor)
  )

print("Estadísticos por grupo:")
## [1] "Estadísticos por grupo:"
print(resumen_por_grupo)
## # A tibble: 3 × 6
##   linea media desv_est mediana   min   max
##   <chr> <dbl>    <dbl>   <dbl> <dbl> <dbl>
## 1 N.S    31.3    10.9     32.2  14.9  51.8
## 2 R.S    24.0     7.39    22.8  12.8  38.7
## 3 S.S    25.7    10.1     22.7  11.6  48.5