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