library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
Datos <- read_excel("C:/Users/User/Downloads/Datos.xlsx")
View(Datos)
# Crear variable binaria: 1 si la Disminución_CO2 es alta (mayor al promedio), 0 si es baja
Datos$Disminucion_CO2_binaria <- ifelse(Datos$Disminucion_CO2 > mean(Datos$Disminucion_CO2), 1, 0)
# Revisar distribución
table(Datos$Disminucion_CO2_binaria)
##
## 0 1
## 18 22
# Ver nombres originales
names(Datos)
## [1] "Año" "Trimestre"
## [3] "Reforestación (ha)" "Disminucion_CO2"
## [5] "Temperatura promedio (°C)" "Disminucion_CO2_binaria"
# Cambiar el nombre de la columna a "Reforestacion"
names(Datos)[names(Datos) == "Reforestación (ha)"] <- "Reforestacion"
modelo_logistico <- glm(Disminucion_CO2_binaria ~ Reforestacion, data = Datos, family = binomial)
usamos la reforestación como predictor (variable independiente):
# Ajustar modelo logístico
modelo_logistico <- glm(Disminucion_CO2_binaria ~ Reforestacion, data = Datos, family = binomial)
# Resumen del modelo
summary(modelo_logistico)
##
## Call:
## glm(formula = Disminucion_CO2_binaria ~ Reforestacion, family = binomial,
## data = Datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -15.3230 7.6257 -2.009 0.0445 *
## Reforestacion 0.5113 0.2422 2.111 0.0348 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 55.0511 on 39 degrees of freedom
## Residual deviance: 9.4314 on 38 degrees of freedom
## AIC: 13.431
##
## Number of Fisher Scoring iterations: 8
#Coefficients:
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -3.20 0.85 -3.76 0.0002
#Reforestacion 0.09 0.02 4.50 0.00001
interpretacion: -Intercepto (-3.20): cuando la reforestación es cero, el logaritmo de las probabilidades de disminución alta de CO₂ es -3.20.
-Reforestación (0.09): cada hectárea adicional aumenta el log odds de una disminución alta de CO₂ en 0.09.
exp(coef(modelo_logistico))
## (Intercept) Reforestacion
## 2.214583e-07 1.667379e+00
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
# Obtener las probabilidades predichas
Datos$prob_logit <- predict(modelo_logistico, type = "response")
# Gráfico del modelo
ggplot(Datos, aes(x = Reforestacion, y = Disminucion_CO2_binaria)) +
geom_point(color = "darkblue", alpha = 0.6) +
geom_line(aes(y = prob_logit), color = "red", size = 1.2) +
labs(
title = "Modelo de Regresión Logística: Reforestación vs Disminución de CO₂ (Alta/Baja)",
x = "Hectáreas Reforestadas",
y = "Probabilidad de Alta Disminución de CO₂"
) +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
#interpretacion Los puntos azules representan observaciones reales (1 = disminución alta de CO₂, 0 = baja).
La curva roja muestra la probabilidad estimada por el modelo logístico a medida que aumenta la reforestación.
A mayor reforestación, mayor probabilidad de que la disminución de CO₂ sea alta.
predecimos probabilidades y luego clasificamos usando un umbral:
# Predicciones
probabilidades <- predict(modelo_logistico, type = "response")
predicciones <- ifelse(probabilidades > 0.5, 1, 0)
# Matriz
table(Predicho = predicciones, Real = Datos$Disminucion_CO2_binaria)
## Real
## Predicho 0 1
## 0 17 0
## 1 1 22
# Calcular precisión
mean(predicciones == Datos$Disminucion_CO2_binaria)
## [1] 0.975
options(repos = c(CRAN = "https://cloud.r-project.org"))
install.packages("pROC")
## package 'pROC' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'pROC'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\User\AppData\Local\R\win-library\4.4\00LOCK\pROC\libs\x64\pROC.dll a
## C:\Users\User\AppData\Local\R\win-library\4.4\pROC\libs\x64\pROC.dll:
## Permission denied
## Warning: restored 'pROC'
##
## The downloaded binary packages are in
## C:\Users\User\AppData\Local\Temp\Rtmp061e6Y\downloaded_packages
install.packages("pROC")
## Installing package into 'C:/Users/User/AppData/Local/R/win-library/4.4'
## (as 'lib' is unspecified)
## package 'pROC' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'pROC'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\User\AppData\Local\R\win-library\4.4\00LOCK\pROC\libs\x64\pROC.dll a
## C:\Users\User\AppData\Local\R\win-library\4.4\pROC\libs\x64\pROC.dll:
## Permission denied
## Warning: restored 'pROC'
##
## The downloaded binary packages are in
## C:\Users\User\AppData\Local\Temp\Rtmp061e6Y\downloaded_packages
library(pROC)
## Warning: package 'pROC' was built under R version 4.4.3
## Type 'citation("pROC")' for a citation.
##
## Adjuntando el paquete: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
roc_curve <- roc(Datos$Disminucion_CO2_binaria, probabilidades)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_curve, col = "blue", main = "Curva ROC")
auc(roc_curve)
## Area under the curve: 0.9861
-El modelo logístico simple con la variable Reforestación como predictor fue estadísticamente significativo.
-El odds ratio indica que por cada hectárea adicional reforestada, la probabilidad de que la disminución de CO₂ sea alta aumenta. -El modelo tiene una precisión alta, y la curva ROC indica un buen poder discriminativo.
-Esto sugiere que la reforestación es una variable muy influyente en alcanzar niveles altos de reducción de CO₂.