Directorio de trabajo

getwd()
## [1] "C:/Users/TEMP"
setwd("C:/Users/Carlos Mojocó/Documents/Modelacion")
datosBiomasa = read.table("Base de datos_Produccion de biomasa total.csv", header = TRUE, sep = ",")

Separación de la data por municipio

BiomasaMonteria = datosBiomasa[1:33,]
BiomasaSaldaña = datosBiomasa[34:63,]

Gráficas de dispersión con línea 1:1 y líneas de discrepancia

Montería

min(BiomasaMonteria$Biomasa.Total_Obs)
max(BiomasaMonteria$Biomasa.Total_Obs)
min(BiomasaMonteria$Biomasa.Total_Sim)
max(BiomasaMonteria$Biomasa.Total_Sim)
plot(x= BiomasaMonteria$Biomasa.Total_Sim, y = BiomasaMonteria$Biomasa.Total_Obs, col = "black", main = "Montería", xlab ="Biomasa total observada", ylab = "Biomasa total simulada", xlim = c(60,21600), ylim =c(60, 21600))

v1 = c(60,21600)
points(v1, v1, type= "l", col="black")

v2 = c(v1-(v1*0.20))
points(v1, v2, type = "l", col="red")

v3 = c(v1+(v1*0.20))
points(v1, v3, type = "l", col="red")

Conclusión

  • Se puede observar que aproximadamente el 90% de los datos se encuentran dentro del intervalo, donde las líneas de discrepancia alrededor de la recta 1:1 tienen una variación del 20% ya que si se manejaba una del 15% iba a ser mayor la cantidad de los datos fuera del intervalo.

Saldaña

min(BiomasaSaldaña$Biomasa.Total_Obs)
max(BiomasaSaldaña$Biomasa.Total_Obs)
min(BiomasaSaldaña$Biomasa.Total_Sim)
max(BiomasaSaldaña$Biomasa.Total_Sim)
plot(x= BiomasaSaldaña$Biomasa.Total_Sim, y = BiomasaSaldaña$Biomasa.Total_Obs, col = "black", main = "Saldaña", xlab ="Biomasa total observada", ylab = "Biomasa total simulada", xlim = c(260,17000), ylim =c(260, 17000))

v4 = c(260,17000)
points(v1, v1, type= "l", col="black")

v5 = c(v1-(v1*0.20))
points(v1, v2, type = "l", col="red")

v6 = c(v1+(v1*0.20))
points(v1, v3, type = "l", col="red")

Conclusión

  • Se puede observar que aproximadamente el 90% de los datos se encuentran dentro del intervalo, al igual que ocurre en Montería.

Gráficas de residuales

Montería

BiomasaMonteria$residualesMonteria = BiomasaMonteria$Biomasa.Total_Sim - BiomasaMonteria$Biomasa.Total_Obs
min(BiomasaMonteria$residualesMonteria)
max(BiomasaMonteria$residualesMonteria)
plot(x= BiomasaMonteria$Biomasa.Total_Obs, y = BiomasaMonteria$residualesMonteria, col = "black", main = "Montería", xlab ="Biomasa total observada [g/m^2]", ylab = "Residuales (simulados - observados [g/m^2])", ylim = c(-9000, 9000))
abline(h=0, col= "black")
round(mean(BiomasaMonteria$residualesMonteria),1)
## [1] -1091.4
text(x = 4000, y = -5000, label = "Residual medio = -1091,4", col = "dark green")

Conclusión

  • Se presenta una mayor subestimación, ya que es mayor la cantidad de puntos que se encuentran bajo cero (zona negativa). Asimismo, el sesgo está dando negativo, lo cual indica que los valores están por debajo de la realidad.

Saldaña

BiomasaSaldaña$residualesSaldaña = BiomasaSaldaña$Biomasa.Total_Sim - BiomasaSaldaña$Biomasa.Total_Obs
min(BiomasaSaldaña$residualesSaldaña)
max(BiomasaSaldaña$residualesSaldaña)
plot(x= BiomasaSaldaña$Biomasa.Total_Obs, y = BiomasaSaldaña$residualesSaldaña, col = "black", main = "Saldaña", xlab ="Biomasa total observada [g/m^2]", ylab = "Residuales (simulados - observados [g/m^2])", ylim = c(-5000, 5000))
abline(h=0, col= "black")
round(mean(BiomasaSaldaña$residualesSaldaña),1)
## [1] 540.7
text(x = 3300, y = -4000, label = "Residual medio = 540,7", col = "dark green")

Conclusión

  • Se presenta una mayor sobreestimación, ya que es mayor la cantidad de puntos que se encuentran sobre cero (zona positiva). Asimismo, el sesgo está dando positivo, lo cual indica que los valores están por encima de la realidad.

Evaluación estadística

Montería

# Sesgo

sesgoMonteria = round((sum(BiomasaMonteria$Biomasa.Total_Sim-BiomasaMonteria$Biomasa.Total_Obs))/nrow(BiomasaMonteria), 3)
print(paste("El sesgo para los datos de Montería es de: ", sesgoMonteria))
## [1] "El sesgo para los datos de Montería es de:  -1091.357"
# Coeficiente de correlación

# Opción 1

promedioObsMonteria = mean(BiomasaMonteria$Biomasa.Total_Obs) 
promedioSimMonteria = mean(BiomasaMonteria$Biomasa.Total_Sim) 

sumaObsMonteria = BiomasaMonteria$Biomasa.Total_Obs-promedioObsMonteria 
sumaSimMonteria = BiomasaMonteria$Biomasa.Total_Sim-promedioSimMonteria

sumaObsMonteria2 = (BiomasaMonteria$Biomasa.Total_Obs-promedioObsMonteria)^2
sumaSimMonteria2 = (BiomasaMonteria$Biomasa.Total_Sim-promedioSimMonteria)^2

sumaObsMonteria3 = sum(sumaObsMonteria2)
sumaSimMonteria3= sum(sumaSimMonteria2) 

NumeradorMonteria = sumaObsMonteria * sumaSimMonteria
sumNumeradorMonteria = sum(NumeradorMonteria)

rMonteria1 = round((sumNumeradorMonteria/((sqrt(sumaObsMonteria3))*(sqrt(sumaSimMonteria3)))),3)
print(paste("El coeficiente de correlación para los datos de Montería es de: ", rMonteria1))
## [1] "El coeficiente de correlación para los datos de Montería es de:  0.943"
# Opción 2
rMonteria2 = round(cor(BiomasaMonteria$Biomasa.Total_Sim, BiomasaMonteria$Biomasa.Total_Obs),3)
print(paste("El coeficiente de correlación para los datos de Montería es de: ", rMonteria2))
## [1] "El coeficiente de correlación para los datos de Montería es de:  0.943"

Conclusión

  • Según el coeficiente de correlación (r), se puede asegurar que los datos simulados tienen un buen ajuste a los reales, es decir que no existe una gran discrepancia entre ellos.

Saldaña

# Sesgo

sesgoSaldaña = round((sum(BiomasaSaldaña$Biomasa.Total_Sim-BiomasaSaldaña$Biomasa.Total_Obs))/nrow(BiomasaSaldaña),3)
print(paste("El sesgo para los datos de Saldaña es de: ", sesgoSaldaña))
## [1] "El sesgo para los datos de Saldaña es de:  540.677"
# Coeficiente de correlación

# Opción 1

promedioObsSaldaña = mean(BiomasaSaldaña$Biomasa.Total_Obs) 
promedioSimSaldaña = mean(BiomasaSaldaña$Biomasa.Total_Sim) 

sumaObsSaldaña = BiomasaSaldaña$Biomasa.Total_Obs-promedioObsSaldaña
sumaSimSaldaña = BiomasaSaldaña$Biomasa.Total_Sim-promedioSimSaldaña

sumaObsSaldaña2 = (BiomasaSaldaña$Biomasa.Total_Obs-promedioObsSaldaña)^2
sumaSimSaldaña2 = (BiomasaSaldaña$Biomasa.Total_Sim-promedioSimSaldaña)^2

sumaObsSaldaña3 = sum(sumaObsSaldaña2)
sumaSimSaldaña3= sum(sumaSimSaldaña2) 

NumeradorSaldaña = sumaObsSaldaña * sumaSimSaldaña
sumNumeradorSaldaña = sum(NumeradorSaldaña)

rSaldaña1 = round((sumNumeradorSaldaña/((sqrt(sumaObsSaldaña3))*(sqrt(sumaSimSaldaña3)))),3)
print(paste("El coeficiente de correlación para los datos de Saldaña es de: ", rSaldaña1))
## [1] "El coeficiente de correlación para los datos de Saldaña es de:  0.96"
# Opción 2

rSaldaña2 = round(cor(BiomasaSaldaña$Biomasa.Total_Sim, BiomasaSaldaña$Biomasa.Total_Obs),3)
print(paste("El coeficiente de correlación para los datos de Saldaña es de: ", rSaldaña2))
## [1] "El coeficiente de correlación para los datos de Saldaña es de:  0.96"

Conclusión

  • Según el coeficiente de correlación (r), se puede asegurar que los datos simulados tienen un buen ajuste a los reales, es decir que no existe una gran discrepancia entre ellos y a diferencia de Montería este presenta una mayor discrepancia en los datos.