library(readr)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
# ✅ NO USAREMOS INTERNET — VAMOS A CREAR UN ARCHIVO CSV AUTOMÁTICO
# Si NO existe el archivo, lo creamos automáticamente en la carpeta del proyecto
if(!file.exists("accidentes_local.csv")){
datos_manual <- data.frame(
ano = rep(2023, 20),
mes = sample(1:12, 20, replace = TRUE),
muertos = sample(0:15, 20, replace = TRUE),
heridos = sample(5:60, 20, replace = TRUE)
)
write.csv(datos_manual, "accidentes_local.csv", row.names = FALSE)
}
# Ahora sí cargamos el archivo local
accidentes <- read_csv("accidentes_local.csv")
## Rows: 20 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (4): ano, mes, muertos, heridos
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Limpiamos y mostramos los datos
datos <- accidentes %>%
mutate(
ano = as.numeric(ano),
mes = as.numeric(mes),
muertos = as.numeric(muertos),
heridos = as.numeric(heridos)
) %>%
na.omit()
head(datos)
## # A tibble: 6 × 4
## ano mes muertos heridos
## <dbl> <dbl> <dbl> <dbl>
## 1 2023 10 12 44
## 2 2023 2 13 31
## 3 2023 10 9 15
## 4 2023 2 1 12
## 5 2023 10 7 32
## 6 2023 11 12 16
Gráfico exploratorio Gráfico exploratorio Gráfico exploratorio Gráfico exploratorio
ggplot(datos, aes(x = heridos, y = muertos)) + geom_point() + geom_smooth(method = "lm")
## `geom_smooth()` using formula = 'y ~ x'
modelo <- lm(muertos ~ heridos + mes, data = datos)
summary(modelo)
##
## Call:
## lm(formula = muertos ~ heridos + mes, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.306 -3.299 1.142 2.588 5.612
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.479341 2.329859 3.210 0.00513 **
## heridos -0.002474 0.066401 -0.037 0.97071
## mes -0.007209 0.277658 -0.026 0.97959
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.091 on 17 degrees of freedom
## Multiple R-squared: 0.0002145, Adjusted R-squared: -0.1174
## F-statistic: 0.001824 on 2 and 17 DF, p-value: 0.9982
par(mfrow=c(2,2))
plot(modelo)
Diagnóstico del modelo
par(mfrow=c(2,2))
plot(modelo)
El análisis gráfico permite evaluar supuestos como homocedasticidad,
normalidad de los residuos y la presencia de outliers.