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.