Análisis Geoestadístico de Incendios 2020-2022
Análisis Geoestadístico de Incendios 2020-2022
Facultad de Ciencia
Departamento de Matemática y Ciencia de la Computación
Ingenierı́a Estadı́stica
Integrantes:
Bárbara Martı́nez
Isidora Rusnighi
Profesor:
Tarik Faouzi.
12 de diciembre, 2023.
Índice
1 Resumen 3
2 Introducción 3
7 Modelamiento 20
7.1 Modelo de Retardo espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.1.1 Supuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.1.1.1 Normalidad de los errores . . . . . . . . . . . . . . . . . . . . . 22
7.1.1.2 Autocorrelación Espacial de los errores . . . . . . . . . . . . . . 23
7.1.1.3 Homocedasticidad Espacial . . . . . . . . . . . . . . . . . . . . 23
9 Anexo 25
9.1 Comparación por tramos del dı́a según temporada . . . . . . . . . . . . . . . . . 25
9.2 Comparación de incendios por comuna respecto a la temporada . . . . . . . . . 26
9.3 Comparación Incendios intencionales y no intencionales por tramos del dı́a . . . 27
9.4 Comparación de incendios intencionales y no intencionales por comuna respecto
al tramo del dı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.5 Comparación de incendios intencionales y no intencionales por superficie con
respeco al perı́odo del dı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.6 Gráficos demográficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.7 Otros Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.7.1 Modelo de Error espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.7.2 Modelo Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
10 Código en R 34
Índice de figuras
1 Serie temporal de Incendios en la temporada 2020 . . . . . . . . . . . . . . . . . 5
2 Serie temporal de Incendios en la temporada 2021 . . . . . . . . . . . . . . . . . 6
3 Serie temporal de Incendios en la temporada 2022 . . . . . . . . . . . . . . . . . 6
1
4 Serie temporal de Incendios en el perı́odo 2020-2022 . . . . . . . . . . . . . . . . 6
5 Número de incendios por comuna con respecto al mes de la temporada 2020 . . 7
6 Número de incendios por comuna con respecto al mes de la temporada 2021 . . 7
7 Número de incendios por comuna con respecto al mes de la temporada 2022 . . 8
8 Distribución espacial del número de incendios en la temporada 2020 . . . . . . . 8
9 Distribución espacial del número de incendios en la temporada 2021 . . . . . . . 9
10 Distribución espacial número de incendios en la temporada 2022 . . . . . . . . . 9
11 Distribución espacial del número de incendios en el perı́odo 2020-2022 . . . . . . 10
12 Intensidad estimada en el perı́odo 2020-2022 . . . . . . . . . . . . . . . . . . . . 10
13 Número de incendios intencionales por comuna respecto al mes . . . . . . . . . . 12
14 Número de incendios no intencionales por comuna respecto al mes . . . . . . . . 13
15 Distribución espacial número de incendios intencionales 2020 . . . . . . . . . . . 13
16 Distribución espacial número de incendios no intencionales 2020 . . . . . . . . . 14
17 Distribución espacial número de incendios intencionales 2021 . . . . . . . . . . . 14
18 Distribución espacial número de incendios no intencionales 2021 . . . . . . . . . 15
19 Distribución espacial número de incendios intencionales 2022 . . . . . . . . . . . 15
20 Distribución espacial número de incendios no intencionales 2022 . . . . . . . . . 16
21 Distribución espacial número de incendios intencionales . . . . . . . . . . . . . . 16
22 Distribución espacial número de incendios no intencionales . . . . . . . . . . . . 17
23 Clasifición Hotspot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
24 Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
25 Distribución de los errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
26 Gráfico de Homocedasticidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
27 Número de incendios por tramos del dı́a de la temporada 2020 . . . . . . . . . . 25
28 Número de incendios por tramos del dı́a de la temporada 2021 . . . . . . . . . . 25
29 Número de incendios por tramos del dı́a de la temporada 2022 . . . . . . . . . . 25
30 Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2020 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
31 Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2021 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
32 Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
33 Número de incendios intencionales por tramos del dı́a . . . . . . . . . . . . . . . 27
34 Número de incendios no intencionales por tramos del dı́a . . . . . . . . . . . . . 27
35 Compración de incendios intencionales y no intencionales por tramo del dı́a . . . 27
36 Número de incendios intencionales por comuna respecto al perı́odo del dı́a . . . 28
37 Número de incendios no intencionales por comuna respecto al perı́odo del dı́a . . 28
38 Número de incendios intencionales por superficie respecto al mes . . . . . . . . . 29
39 Número de incendios intencionales por superficie respecto al mes . . . . . . . . . 29
40 Incendios intencionales y no intencionales en el perı́odo 2020 . . . . . . . . . . . 30
41 Incendios intencionales y no intencionales en el perı́odo 2021 . . . . . . . . . . . 30
42 Incendios intencionales y no intencionales en el perı́odo 2022 . . . . . . . . . . . 30
43 Modelo de error espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
44 Gráfico de Distribución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
45 Gráfico de Homocedasticidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
46 Modelo Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
47 Gráfico de distribución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
48 Gráfico de Homocedasticidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2
1. Resumen
El siguiente documento se elaboró usando datos oficiales entregados por las estadı́sticas de
los incendios forestales en Chile. Sé realizó un estudio centrado en los incendios forestales en
la Región del Biobı́o, utilizando técnicas de geoestadı́sticas para examinar su comportamiento.
Este enfoque nos permitirá analizar de manera más detallada sobre los patrones espaciales y
temporales de los incendios, ofreciendo una visión más completa de los factores que influyen
en su origen y propagación. Al emplear técnicas de geoestadı́sticas, se facilita una evaluación
precisa de la distribución espacial de estos eventos, lo que a su vez respalda el diseño de estra-
tegias más efectivas para la gestión y prevención de incendios forestales en la región.
Para la elaboración de este estudio, se consideró los incendios forestales de las temporadas
del 2020 a 2022, entregados por la Corporación Nacional Forestal (CONAF) del sitio web:
https://ide.minagri.gob.cl/geoweb/2019/11/21/desastres/
2. Introducción
Los incendios forestales son fuegos que se extienden sin control en áreas naturales, como
bosques, pastizales o praderas. Pueden comenzar inadvertidamente y propagarse rápidamente,
causando daños significativos. La mayorı́a de los incendios forestales son causados por acti-
vidades humanas, como fogatas descuidadas, quema de escombros, malesas o cigarrillos mal
apagados, aunque también pueden ser provocados intencionalmente. Estos incendios pueden
tener efectos devastadores en la vegetación y la vida silvestre, ası́ como en las comunidades
humanas que viven en áreas forestales. A nivel mundial, los incendios forestales destruyen ex-
tensas superficies vegetales, especialmente durante la época de verano.
Los incendios forestales representan una amenaza significativa para las áreas de interfaz urbano-
forestal, donde las personas que habitan en áreas entre bosques pueden verse expuestas a su
potencial destructivo. Por lo tanto, la protección contra incendios forestales en estas áreas es
de suma importancia para minimizar los riesgos e impactos negativos.
La Región del Biobı́o, reconocida por su rica biodiversidad y abundantes áreas naturales pro-
tegidas, se enfrenta anualmente a la amenaza persistente de incendios forestales. Estos eventos,
además de representar un riesgo para la seguridad y la infraestructura, tienen un impacto sig-
nificativo en la salud del ecosistema regional. Con el objetivo de comprender mejor la dinámica
de los incendios forestales en esta región, se ha emprendido el presente estudio estadı́stico.
Mediante este estudio, buscamos arrojar luz sobre la compleja interacción de variables que
3
influyen en los incendios forestales en la Región del Biobı́o, proporcionando una base sólida
para el desarrollo de estrategias efectivas de mitigación y respuesta ante futuros eventos. La
comprensión detallada de estos fenómenos es esencial para preservar la integridad de los eco-
sistemas locales y salvaguardar la seguridad de las comunidades que coexisten en esta región
tan excepcional
Objetivos:
Objetivo General
Contribuir con un nuevo estudio sobre incendios forestales en la Región del Biobı́o, con el obje-
tivo de identificar el comportamiento de estos mediante el empleo de técnicas de geoestadı́sticas.
Objetivos Especı́ficos
Conocer el Índice de Moran (local y global) para determinar correlaciones espaciales, para
posteriormente identificar comunas hotspot.
Este análisis inicial tiene como propósito examinar de manera integral los datos recopilados,
identificando tendencias, patrones y posibles anomalı́as. A través de este proceso exploratorio,
buscamos obtener una comprensión más profunda de la naturaleza de los incendios forestales
en la Región del Biobı́o.
Este análisis exploratorio sienta las bases para las fases posteriores del estudio, proporcionando
información crucial que orientará análisis más avanzados y la formulación de recomendaciones
preventivas y de gestión. La comprensión profunda de los datos es fundamental para abordar
de manera efectiva el desafı́o que representan los incendios forestales en esta región única y
biodiversa
Aclaratoria: Una temporada inicia el 1 de julio del año x y finaliza el 30 de junio del año
x+1.
4
Temporada Proporción
2020 0.342
2021 0.355
2022 0.303
En la table anterior, se aprecia una cantidad de incendios en las tres temporadas aproxima-
damente del 30 %, en la región del Biobı́o temporadas del 2020 a 2022.
Durante la temporada del año 2020, se observa un aumento significativo en los meses co-
rrespondientes al periodo estival. Posteriormente, hacia finales de la temporada de verano, se
evidencia un descenso en la curva, lo que se traduce en una disminución correlativa en el número
de incendios.
5
Figura 2: Serie temporal de Incendios en la temporada 2021
En el contexto de dos representaciones gráficas, se constata que los puntos máximos se sitúan
entre los meses de enero y febrero. En este escenario especı́fico, el punto álgido se ubica entre
febrero y marzo, seguido de una disminución gradual en el transcurso de los meses subsiguientes.
6
En la Figura 4, se representa el comportamiento de las tres temporadas (2020, 2021, 2022).
Se destaca que, durante un perı́odo que abarca el último trimestre del año y los inicios del año
siguiente, no se identifica una tendencia clara. Esta falta de patrón discernible puede atribuirse
a la variabilidad de los incendios, los cuales son eventos influenciados por condiciones como la
sequedad del terreno y temperaturas propicias para la combustión.
Figura 5: Número de incendios por comuna con respecto al mes de la temporada 2020
Figura 6: Número de incendios por comuna con respecto al mes de la temporada 2021
7
datos registrados. Este panorama subraya la variabilidad en la ocurrencia de incendios entre
diferentes comunas, ası́ como la presencia de lapsos donde no se disponen de datos pertinentes.
Figura 7: Número de incendios por comuna con respecto al mes de la temporada 2022
La comuna de Tucapel destaca como el epicentro con la mayor cantidad de incendios, con-
solidándose como un foco significativo durante la temporada 2020. Sin embargo, en las áreas
8
circundantes no se evidencian focos de magnitud similar. Más bien, en el otro extremo, se iden-
tifican focos cercanos que también alcanzan niveles significativos en cuanto a la cantidad de
incendios. Este patrón sugiere una distribución irregular de los eventos, con la comuna de Tu-
capel como un punto focal destacado, mientras que en áreas adyacentes se presentan focos que,
si bien no igualan la magnitud de Tucapel, aún representan eventos considerables en términos
de incidencia de incendios.
9
Durante la temporada de 2022, se observa un notable aumento tanto en la cantidad de focos
de incendio como en su intensidad. En este escenario, nuevas comunas, como Lebu, Los Ángeles,
Mulchén y Quilaco, emergen como áreas que experimentan focos de incendios. Esta expansión
geográfica y la intensificación de los focos indican una dinámica diferente en comparación con
temporadas anteriores, destacando la importancia de evaluar y abordar las causas subyacentes
de estos eventos para implementar medidas preventivas y de gestión más efectivas.
10
La figura anterior evidencia un marcado incremento de incendios forestales en la Región del
Biobı́o, sugiriendo que con el retorno a la presencialidad, después de la pandemia, se ha observa-
do un aumento en la incidencia de estos eventos. La distribución en forma de focos de incendios
llama particularmente la atención, planteando la interrogante de estudiar la probabilidad de
que zonas cercanas a epicentros de incendios, en años posteriores, también experimenten focos
de gran magnitud.
Este análisis prospectivo podrı́a proporcionar información valiosa para la implementación
de estrategias preventivas y la gestión del riesgo en áreas susceptibles a futuros eventos de
incendios forestales.
Se aprecia que, en las últimas tres temporadas, sobre el 60 % de los incendios forestales
tuvieron como origen una acción intencional. Este dato, revelador y preocupante, subraya la
11
presencia significativa de la intencionalidad como factor contribuyente en la incidencia de es-
tos eventos. La necesidad de abordar esta problemática se vuelve aún más imperativa en vista
de la magnitud de su impacto en el entorno natural y la seguridad de las comunidades afectadas.
Pensando en la creación del modelo, la determinación de la causa general del incendio se revela
como un componente esencial para obtener información valiosa acerca del origen y la naturaleza
del fuego. Esta categorización puede ofrecer percepciones cruciales que influyan en la estrategia
de respuesta y en la eficacia del control de la propagación del incendio. De especial relevancia
es la observación de que una proporción mayoritarı́a de los incendios registrados en las tres
temporadas ha sido atribuida a acciones intencionadas.
La implementación de esta dicotomización permitirá una focalización más precisa de los re-
cursos y esfuerzos, dirigidos a contrarrestar y prevenir incendios de origen intencional. Además,
facilitará un análisis más detallado de los patrones de propagación, permitiendo ajustes es-
tratégicos que contribuyan a reducir el impacto de estos eventos sobre el medio ambiente y las
comunidades afectadas.
12
Figura 14: Número de incendios no intencionales por comuna respecto al mes
Podemos apreciar que la comuna de Tucapel lidera como incendios de causa intencional, y
le sigue la comuna de Curanilahue y Lebu.
13
Figura 16: Distribución espacial número de incendios no intencionales 2020
14
Figura 18: Distribución espacial número de incendios no intencionales 2021
Para la temporada 2022, se destaca la comuna de Los Álamos como foco de incendios
intencionales, seguido por la comuna vecina de Curalinahue, y Tomé (no vecina) en la región
del Biobı́o temporada 2022
15
Figura 20: Distribución espacial número de incendios no intencionales 2022
Para la temporada 2022, se mantiene como lı́der la comuna de Los Álamos, seguido de la
comuna de Curanilahue y Tomé. No se observa gran diferencia con los incendios intencionales
en la temporada 2022.
Se aprecia que durante el perı́odo 2020-2022, la comuna de Curanilahue como foco lı́der de
incendios intencionales, seguido de las comunas vecinas como Los Álamos y Lebu.
16
Figura 22: Distribución espacial número de incendios no intencionales
Por otro lado, para los incendios de causa no intencionales se presenta una mayor cantidad de
comunas consideras focos importantes y la mayorı́a son colindantes, para el perı́odo 2020-2022.
vs
Donde:
17
wij : Correponde a pesos de la matriz W
n: Corresponde al tamaño muestral
S0 : Es una constante para todas las unidades espaciales
El ı́ndice de Moran oscila entre -1 y 1. Un valor positivo (0.4) sugiere autocorrelación espacial
positiva, lo que significa que valores similares tienden a agruparse en el espacio. El valor p de
0.0001 indica la probabilidad de observar la estadı́stica de Moran dada la hipótesis nula de
ausencia de autocorrelación espacial, bajo un 5 % de significancia, se sugiere que hay un patrón
espacial significativo en los datos que no puede explicarse simplemente por la distribución
aleatoria
Sin embargo, el ı́ndice de Moran no proporciona información detallada sobre áreas especı́fi-
cas del mapa donde se concentran tipos particulares de valores, ni destaca casos de dispersión
explı́cita. Sólo entrega una mirada general.
Las medidas locales de autocorrelación espacial se concentran en las relaciones entre cada
observación y su entorno, en lugar de ofrecer un único resumen de estas relaciones en todo
el mapa. En este contexto, estas medidas no se presentan como estadı́sticas resumidas, sino
más bien como puntuaciones individuales que posibilitan una comprensión más detallada de la
estructura espacial de los datos. A diferencia de las estadı́sticas globales, estas métricas brin-
dan información especı́fica sobre cómo las observaciones interactúan localmente, permitiendo
identificar patrones espaciales a una escala más detallada.
El ı́ndice de Moran local realiza una identificación de casos donde el valor de una observa-
ción y el promedio de sus vecinos son más similares o más diferentes de lo que podrı́amos
esperar por pura casualidad. Este enfoque se asemeja al mecanismo utilizado para calcular el
ı́ndice de Moran global, pero se aplica individualmente a cada observación.
vs
18
H1 : Si hay autocorrelación en los datos
Los resultados del Índice de Local Moran para las comunas de Chiguayante, Hualqui, San
Pedro de la Paz y Santa Juana revelan un valor p considerablemente bajo. Este resultado sugiere
que la agrupación espacial de incendios en estas comunas no es atribuible al azar, indicando
una autocorrelación espacial significativa. Este patrón especı́fico es de particular interés, ya que
permite identificar las comunas que actúan como puntos calientes o puntos frı́os en términos
de la incidencia de incendios. La siguiente representación gráfica proporciona una visualización
más clara de este patrón espacial.
19
7. Modelamiento
El cálculo del retardo en el contexto de incendios forestales generalmente se refiere al tiempo
transcurrido desde el inicio del incendio hasta el momento en que es controlado o extinguido.
Este valor se expresa comúnmente en unidades de tiempo, como horas.
Para llevar a cabo este cálculo, es necesario contar con información sobre el instante en que se
detectó el incendio y el momento en que fue controlado. Supongamos que tienes dos columnas
en tu conjunto de datos que representan estas fechas y horas.
R = F inal − Inicio
Donde:
R es el retardo en tiempo.
Superficie total afectada: El área total afectada por el incendio podrı́a tener una relación
con la complejidad y duración del control. Incendios con áreas más extensas podrı́an
requerir más tiempo para ser gestionados
i = 1, ..., n
donde el término error ϵi es independiente e idénticamente distribuido. Wij es el elemento (i, j)th
de la matriz de pesos n × n. El escalar ρ es un parámetro a estimar que determinará el nivel
20
P
de relación autorregresiva espacial entre yi y j Wij yj (combinación lineal de observaciones
espacialmente relacionadas basadas en elementos distintos de cero en la i-ésima fila de W).
En notación matricial se escribe:
Y = ρW Y + Xβ + ϵ (4)
El término (I −ρW )−1 se denomina multiplicador espacial e indica que el valor esperado de cada
observación yi dependerá de una combinación lineal de valores X tomados por observaciones
vecinas, escalado por el parámetro de dependencia ρ.
El modelo teórico en este caso es:
n
X
Controli = β0 + ρ wij Controlj + β1 AmbitoEmpresa + β2 Superficie+
j=1
21
Intercepto: -25.293085, con un error estándar de 13.907164. El p-value asociado indica
que el intercepto no es significativamente diferente de cero.
7.1.1. Supuestos
7.1.1.1. Normalidad de los errores : Para observar cuánto difiere la distribución de los
errores (la cual se trabaja bajo los residuos de la muestra) con la distribución normal teórica,
tenemos que:
Podemos notar que existen puntos distantes de la recta, lo que sugiere la posibilidad de que
los errores no sigan una distribución normal. Con el fin de analizar el comportamiento de los
residuos, aplicaremos la estadı́stica de la prueba de Lilliefors. Utilizamos la siguiente hipótesis
de contraste:
H0 : ϵ ∼ N (0, σ 2 ) vs H1 : ϵ ≁ N (0, σ 2 )
22
Test de Lilliefors: Esta prueba se basa en el estadı́stico de Kolmogorov-Smirnov, con la
diferencia de que los parámetros µ y σ deben ser estimados. El estadı́stico corresponde a:
Donde:
S(x): Distribución acumulada empı́rica de los valores x estandarizados.
Dado el resultado, se encontro evidencia, con un nivel de significancia del 5 %, para dudar de
la normalidad de los componentes del error.
23
Figura 26: Gráfico de Homocedasticidad
El eje x representa el ı́ndice de observación, mientras que el eje y muestra los residuos del
modelo. La lı́nea roja horizontal en y = 0 indica la homocedasticidad perfecta.
Este análisis gráfico sugiere que si hay evidencia visual de homocedasticidad en los residuos.
El modelo que ofrece una mejor capacidad de ajuste para explicar la duración de los incendios,
considerando variables como el ámbito, la intencionalidad y la superficie total quemada, resulta
ser el modelo de retardo espacial. Al estimar los coeficientes espaciales en este modelo, hemos
logrado cuantificar la fuerza y dirección de la autocorrelación espacial. Es relevante destacar
que, al observar las estimaciones, notamos que todos los coeficientes presentan valores positivos,
a excepción del intercepto. Este hallazgo indica la existencia de una relación espacial positiva
entre las observaciones, proporcionando ası́ información valiosa sobre la influencia geográfica
en la duración de los incendios.
24
de áreas crı́ticas y la prevalencia de incendios intencionales resaltan la importancia de estrate-
gias especı́ficas y coordinadas para abordar esta problemática.
En última instancia, este análisis geoestadı́stico realiza una comprensión de la dinámica tem-
poral de los incendios en el Biobı́o, y proporciona información valiosa para la formulación de
estrategias preventivas y la gestión efectiva de estos eventos en el futuro.
9. Anexo
9.1. Comparación por tramos del dı́a según temporada
Figura 27: Número de incendios por tramos Figura 28: Número de incendios por tramos
del dı́a de la temporada 2020 del dı́a de la temporada 2021
25
9.2. Comparación de incendios por comuna respecto a la temporada
Figura 30: Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2020
Figura 31: Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2021
26
Figura 32: Número de incendios por comuna con respecto al perı́odo de dı́a de la Temporada
2022
Figura 35: Compración de incendios intencionales y no intencionales por tramo del dı́a
27
9.4. Comparación de incendios intencionales y no intencionales por
comuna respecto al tramo del dı́a
Figura 36: Número de incendios intencionales por comuna respecto al perı́odo del dı́a
Figura 37: Número de incendios no intencionales por comuna respecto al perı́odo del dı́a
28
9.5. Comparación de incendios intencionales y no intencionales por
superficie con respeco al perı́odo del dı́a
29
9.6. Gráficos demográficos
30
9.7. Otros Modelo
9.7.1. Modelo de Error espacial
31
Test Estadı́stica P-valor Decisión
Moran I con
-0.032295 0.958 No se duda de H0
Bootstrap
Este modelo fue descartado debido a la falta de normalidad en los errores. Además, al
analizar el gráfico de homocedasticidad, se observa una dispersión concentrada alrededor del
eje y = 0, indicando cierta homogeneidad en la variabilidad de los residuos. Sin embargo,
también se aprecian numerosos puntos que se desvı́an de esta concentración, lo que sugiere la
presencia de patrones no ideales en la distribución de los errores.
32
Figura 47: Gráfico de distribución
33
Figura 48: Gráfico de Homocedasticidad
El test de Moran I con bootstrap planteó dudas sobre la hipótesis nula de falta de autoco-
rrelación espacial en este. Sin embargo, la falta persistente de normalidad en los errores y la
presencia de patrones no aleatorios en la distribución de los residuos llevaron a la decisión de
descartar este modelo.
10. Código en R
1 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
2 # 0. Liberias ----
3 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
4 library ( sf )
5 library ( dplyr )
6 library ( ggplot2 )
7 library ( sp )
8 library ( scales )
9 library ( lubridate )
10 library ( hms )
11 library ( tmap )
12 library ( sgo )
13 library ( spatstat )
14 library ( ks )
15 library ( spdep )
16 library ( spatialreg )
17 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
18 # 1. Modificaciones a las bases ----
19 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
20 i2020 <- st _ read ( file . choose () )
21 i2021 <- st _ read ( file . choose () )
22 i2022 <- st _ read ( file . choose () )
34
23
24 i2020 <- st _ transform ( i2020 , " + proj = longlat + datum = WGS84 " )
25 i2021 <- st _ transform ( i2021 , " + proj = longlat + datum = WGS84 " )
26 i2022 <- st _ transform ( i2022 , " + proj = longlat + datum = WGS84 " )
27
32 attach ( i2020 )
33 attach ( i2021 )
34 attach ( i2022 )
35 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
36 # #1.1. C d i f i c a c i o n CAUSA _ GENE ----
37 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
38 table ( i2020 $ CAUSA _ GENE )
39
35
63
92 attach ( i2020 )
93
36
100 i2021 $ CAUSA _ GENE <- ifelse ( i2021 $ CAUSA _ GENE %in %categoria _ otras ,
categoria _ nueva , i2021 $ CAUSA _ GENE )
101
122 categoria _ tran <-c ( " Transito de personas vehiculos o aeronaves " )
123 categoria _ nueva <-" Transito de personas vehiculos o aeronaves "
124 i2021 $ CAUSA _ GENE <- ifelse ( i2021 $ CAUSA _ GENE %in %categoria _ tran ,
categoria _ nueva , i2021 $ CAUSA _ GENE )
125
37
135 categoria _ nueva <-" Incendios intencionales "
136 i2021 $ CAUSA _ GENE <- ifelse ( i2021 $ CAUSA _ GENE %in %categoria _ int ,
categoria _ nueva , i2021 $ CAUSA _ GENE )
137
38
173 categoria _ nueva <-" Operaciones en vias ferreas "
174 i2022 $ CAUSA _ GENE <- ifelse ( i2022 $ CAUSA _ GENE %in %categoria _ ferre ,
categoria _ nueva , i2022 $ CAUSA _ GENE )
175
39
210 hist ( i2020 $ SUPERFICIE )
211 summary ( i2020 $ SUPERFICIE )
212 boxplot ( i2020 $ SUPERFICIE , horizontal = TRUE )
213 i2020 $ CAT _ SUPERFICIE <- ifelse ( i2020 $ SUPERFICIE <= 10 , " menos de
10 H c t a r e a s " , ifelse ( i2020 $ SUPERFICIE <= 60 , " entre 10 - 60
H c t a r e a s " , " sobre 60 H c t a r e a s " ) )
214 table ( i2020 $ CAT _ SUPERFICIE )
215 i2020 $ CAT _ SUPERFICIE = factor ( i2020 $ CAT _ SUPERFICIE , labels = c ( " menos
de 10 H c t a r e a s " ," entre 10 -60 H c t a r e a s " , " sobre 60
H c t a r e a s "))
216 table ( i2020 $ CAT _ SUPERFICIE )
217
218 i2021 $ CAT _ SUPERFICIE <- ifelse ( i2021 $ SUPERFICIE <= 10 , " menos de
10 H c t a r e a s " , ifelse ( i2021 $ SUPERFICIE <= 60 , " entre 10 - 60
H c t a r e a s " , " sobre 60 H c t a r e a s " ) )
219 table ( i2021 $ CAT _ SUPERFICIE )
220 i2021 $ CAT _ SUPERFICIE = factor ( i2021 $ CAT _ SUPERFICIE , labels = c ( " menos
de 10 H c t a r e a s " ," entre 10 -60 H c t a r e a s " , " sobre 60
H c t a r e a s "))
221 table ( i2021 $ CAT _ SUPERFICIE )
222
40
243 i2020 $ COMUNA <- ifelse ( i2020 $ COMUNA %in %categoria _ alamos , categoria _
nueva , i2020 $ COMUNA )
244
253
41
282 categoria _ tome <-c ( " T o m " )
283 categoria _ nueva <-" Tome "
284 i2022 $ COMUNA <- ifelse ( i2022 $ COMUNA %in %categoria _ tome , categoria _
nueva , i2022 $ COMUNA )
285
42
321 names ( intencional20 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,"
CAT _ SUPERFICIE " )
322 names ( no _ intencional20 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,
" CAT _ SUPERFICIE " )
323 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
324 # #2.2. Recuento de delitos intencionales / no intencionales 2021
----
325 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
326 intencional21 <- subset ( i2021 , CAUSA _ GENE == " Incendios intencionales "
)
327 no _ intencional21 <- subset ( i2021 , CAUSA _ GENE ! = " Incendios
intencionales " )
328 intencional21 <- data . frame ( intencional21 [ , c (5 ,4 ,30 ,37) ])
329 no _ intencional21 <- data . frame ( no _ intencional21 [ , c (5 ,4 ,30 ,37) ])
330 names ( intencional21 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,"
CAT _ SUPERFICIE " )
331 names ( no _ intencional21 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,
" CAT _ SUPERFICIE " )
332 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
333 # #2.3. Recuento de delitos intencionales / no intencionales 2022
----
334 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
335 intencional22 <- subset ( i2022 , causa _ gene == " Incendios intencionales "
)
336 no _ intencional22 <- subset ( i2022 , causa _ gene ! = " Incendios
intencionales " )
337 intencional22 <- data . frame ( intencional22 [ , c (39 ,40 ,33 ,38) ])
338 no _ intencional22 <- data . frame ( no _ intencional22 [ , c (39 ,40 ,33 ,38) ])
339 names ( intencional22 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,"
CAT _ SUPERFICIE " )
340 names ( no _ intencional22 ) [1:4] <-c ( " COMUNA " ," PROVINCIA " ," INICIO _ IN " ,
" CAT _ SUPERFICIE " )
341 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
342 # #2.4. data intencional / no intencional ----
343 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
344 intencional <- rbind ( intencional20 , intencional21 , intencional22 )
345 no _ intencional <- rbind ( no _ intencional20 , no _ intencional21 , no _
intencional22 )
346 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
347 # 3. F u n c i n para cambiar a hora ----
348 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
349 limpiar _ y _ convertir _ fecha <- function ( fecha _ texto ) {
350 fecha _ texto _ limpio <- gsub ( " -" , " " , fecha _ texto )
351 meses _ abreviados <- c ( " ene " , " feb " , " mar " , " abr " , " may " , " jun " ,
" jul " , " ago " , " sep " , " oct " , " nov " , " dic " )
352 for ( i in 1: length ( meses _ abreviados ) ) {
353 fecha _ texto _ limpio <- gsub ( meses _ abreviados [ i ] , sprintf ( " %02d
" , i ) , fecha _ texto _ limpio , ignore . case = TRUE )
43
354 }
355 fecha _ objeto <- dmy _ hm ( fecha _ texto _ limpio )
356 return ( fecha _ objeto )
357 }
358
359 i2020 $ fecha _ inicio <- limpiar _ y _ convertir _ fecha ( i2020 $ INICIO _ IN )
360 i2021 $ fecha _ inicio <- limpiar _ y _ convertir _ fecha ( i2021 $ INICIO _ IN )
361 i2022 $ fecha _ inicio <- limpiar _ y _ convertir _ fecha ( i2022 $ fh _ inicio )
362 j20 <- as . data . frame ( i2020 [ ,38])
363 j21 <- as . data . frame ( i2021 [ ,38])
364 j22 <- as . data . frame ( i2022 [ ,41])
365 base <- rbind ( j20 , j21 , j22 )
366
371 fecha _ inicio <- gsub ( " -" ," / " , i2020 $ fecha _ inicio )
372 i2020 $ fecha _ inicio <- fecha _ inicio
373 i2020 $ fecha _ gra <- as . Date ( i2020 $ fecha _ inicio )
374
375 fecha _ inicio <- gsub ( " -" ," / " , i2021 $ fecha _ inicio )
376 i2021 $ fecha _ inicio <- fecha _ inicio
377 i2021 $ fecha _ gra <- as . Date ( i2021 $ fecha _ inicio )
378
379 fecha _ inicio <- gsub ( " -" ," / " , i2022 $ fecha _ inicio )
380 i2022 $ fecha _ inicio <- fecha _ inicio
381 i2022 $ fecha _ gra <- as . Date ( i2022 $ fecha _ inicio , format = " %Y / %m / %d " )
382
383 fecha _ inicio <- gsub ( " -" ," / " , base $ fecha _ inicio )
384 base $ fecha _ inicio <- fecha _ inicio
385 base $ fecha _ gra <- as . Date ( base $ fecha _ inicio , format = " %Y / %m / %d " )
386
44
400 summarize ( count = n () ) %> %
401 arrange ( fecha _ gra )
402
45
439 labs ( x = " Fecha del incendio ( D a s ) " , y = ’ N m e r o de incendio ’ ,
title = ’ Incendios en la Temporada 2022 ’)
440 Graf _ men _ 2022
441 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
442 # #3.4. Todas la temporadas ----
443 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
444 Graf _ men <- ggplot ( df _ count , aes ( x = as . Date ( fecha _ gra , ’ %Y / %m / %d ’) ,y =
count ) ) +
445 geom _ line ( color = " #00 cc00 " , linewidth =0.1) +
446 geom _ smooth ( color = " #008000 " ) +
447 scale _ x _ date ( breaks = date _ breaks ( " 1 month " ) , labels = date _
format ( " %m " ) ) +
448 labs ( x = " Fecha del incendio " , y = ’ N m e r o de incendio ’ , title =
’ Incendios de las distintas temporadas ’)
449 Graf _ men
450 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
451 # 4. G r f i c o del recuento de incendios ----
452 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
453 # #4.1. G r f i c o s Geograficos
454 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
455 # ##4.1.1. Temporada 2020
456 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
457 coordenadas <- st _ coordinates ( i2020 $ geometry )
458 i2020 $ latitud <- coordenadas [ , " Y " ]
459 i2020 $ longitud <- coordenadas [ , " X " ]
460 attach ( i2020 )
461 # leaflet () %> %
462 # addTiles () %> % # Agregar capa de mapas base
463 # addMarkers ( lng = i2020 $ longitud , lat = i2020 $ latitud , popup =
" Mi marcador ")
464 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
465 # ##4.1.2. Temporada 2021
466 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
467 coordenadas <- st _ coordinates ( i2021 $ geometry )
468 i2021 $ latitud <- coordenadas [ , " Y " ]
469 i2021 $ longitud <- coordenadas [ , " X " ]
470 attach ( i2021 )
471 # leaflet () %> %
472 # addTiles () %> % # Agregar capa de mapas base
473 # addMarkers ( lng = i2021 $ longitud , lat = i2021 $ latitud , popup =
" Mi marcador ")
474 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
475 # ##4.1.3. Temporada 2022
476 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
477 coordenadas <- st _ coordinates ( i2022 $ geometry )
478 i2022 $ latitud <- coordenadas [ , " Y " ]
479 i2022 $ longitud <- coordenadas [ , " X " ]
480 attach ( i2022 )
46
481 # leaflet () %> %
482 # addTiles () %> % # Agregar capa de mapas base
483 # addMarkers ( lng = i2022 $ longitud , lat = i2022 $ latitud , popup =
" Mi marcador ")
484 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
485 # #4.2. Por temporadas ----
486 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
487 # ##4.2.1. Temporada 2020 ----
488 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
489 i2020 $ prueba <- as . POSIXct ( i2020 $ fecha _ inicio , format = " %Y / %m / %d
%H: %M: %S " )
490 i2020 <- subset ( i2020 , ! is . na ( prueba ) )
491 incendio _ 2020 <- i2020 %> %
492 mutate ( time = hms :: as _ hms ( hour ( prueba ) * 60+ minute ( prueba ) ) ,
493 date = date ( prueba ) ,
494 time _ group = cut ( as . numeric ( time ) , breaks = c (0 ,6 * 60 ,12 * 60 ,18
* 60 ,23 * 60+59) , labels = c ( " 00 -06 " ," 06 -12 " ," 12 -18 " ," 18 -00
" ) , include . lowest = TRUE ) )
495 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
496 # ###4.2.1.1. Grafica por horario de d a - - - -
497 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
498 incendio _ 2020 %> %
499 ggplot ( aes ( x = time _ group ) ) +
500 geom _ bar ( fill = " #756 bb1 " ) +
501 labs ( x = " Periodo del dia " , y = " Numero de incendios " , title = "
N m e r o de incendios por tramos del dia " )
502 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
503 # ###4.2.1.2 Grafica por comuna por periodo del d a ----
504 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
505 incendio _2020 %> %
506 group _ by ( COMUNA , time _ group ) %> %
507 summarise ( count = n () ) %> %
508 ggplot ( aes ( x = COMUNA , y = time _ group ) ) +
509 geom _ tile ( aes ( fill = count ) ) +
510 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
511 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
512 coord _ flip () +
513 ggtitle ( " N m e r o de incendio por comuna con respecto al periodo
de d a " )
514 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
515 # ###4.2.1.3 G r f i c a por comuna por mes ----
516 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
517 incendio _ 2020 <- incendio _ 2020 %> %
518 mutate ( day = wday ( prueba , label = T , abbr = T ) ,
519 month = month ( prueba , label = T , abbr = T ) )
520 incendio _ 2020 %> %
521 group _ by ( COMUNA , month ) %> %
522 summarise ( count = n () ) %> %
47
523 ggplot ( aes ( x = COMUNA , y = month ) ) +
524 geom _ tile ( aes ( fill = count ) ) +
525 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
526 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
527 coord _ flip () +
528 ggtitle ( " N m e r o de incendios por comuna con respecto al mes de
la temporada 2020 " )
529 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
530 # ##4.2.2. Temporada 2021 ----
531 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
532 i2021 $ prueba <- as . POSIXct ( i2021 $ fecha _ inicio , format = " %Y / %m / %d
%H: %M: %S " )
533 i2021 <- subset ( i2021 , ! is . na ( prueba ) )
534 incendio _ 2021 <- i2021 %> %
535 mutate ( time = hms :: as _ hms ( hour ( prueba ) * 60+ minute ( prueba ) ) ,
536 date = date ( prueba ) ,
537 time _ group = cut ( as . numeric ( time ) , breaks = c (0 ,6 * 60 ,12 * 60 ,18
* 60 ,23 * 60+59) , labels = c ( " 00 -06 " ," 06 -12 " ," 12 -18 " ," 18 -00
" ) , include . lowest = TRUE ) )
538 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
539 # ###4.2.2.1. Grafica por horario de d a - - - -
540 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
541 incendio _ 2021 %> %
542 ggplot ( aes ( x = time _ group ) ) +
543 geom _ bar ( fill = " #756 bb1 " ) +
544 labs ( x = " Periodo del dia " , y = " Numero de incendios " , title = "
N m e r o de incendios por tramos del dia de la tempora 2021 " )
545 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
546 # ###4.2.2.2 Grafica por comuna por periodo del d a ----
547 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
548 incendio _2021 %> %
549 group _ by ( COMUNA , time _ group ) %> %
550 summarise ( count = n () ) %> %
551 ggplot ( aes ( x = COMUNA , y = time _ group ) ) +
552 geom _ tile ( aes ( fill = count ) ) +
553 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
554 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
555 coord _ flip () +
556 ggtitle ( " N m e r o de incendio por comuna con respecto al periodo
de d a de la temporada 2021 " )
557 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
558 # ###4.2.1.3 G r f i c a por comuna por mes ----
559 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
560 incendio _ 2021 <- incendio _2021 %> %
561 mutate ( day = wday ( prueba , label = T , abbr = T ) ,
562 month = month ( prueba , label = T , abbr = T ) )
563 incendio _ 2021 %> %
564 group _ by ( COMUNA , month ) %> %
48
565 summarise ( count = n () ) %> %
566 ggplot ( aes ( x = COMUNA , y = month ) ) +
567 geom _ tile ( aes ( fill = count ) ) +
568 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
569 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
570 coord _ flip () +
571 ggtitle ( " N m e r o de incendios por comuna con respecto al mes de
la temporada 2021 " )
572 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
573 # ##4.2.3. Temporada 2022 ----
574 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
575 i2022 $ prueba <- as . POSIXct ( i2022 $ fecha _ inicio , format = " %Y / %m / %d
%H: %M: %S " )
576 i2022 <- subset ( i2022 , ! is . na ( prueba ) )
577 incendio _ 2022 <- i2022 %> %
578 mutate ( time = hms :: as _ hms ( hour ( prueba ) * 60+ minute ( prueba ) ) ,
579 date = date ( prueba ) ,
580 time _ group = cut ( as . numeric ( time ) , breaks = c (0 ,6 * 60 ,12 * 60 ,18
* 60 ,23 * 60+59) , labels = c ( " 00 -06 " ," 06 -12 " ," 12 -18 " ," 18 -00
" ) , include . lowest = TRUE ) )
581 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
582 # ###4.2.3.1. Grafica por horario de d a - - - -
583 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
584 incendio _ 2022 %> %
585 ggplot ( aes ( x = time _ group ) ) +
586 geom _ bar ( fill = " #756 bb1 " ) +
587 labs ( x = " Periodo del dia " , y = " Numero de incendios " , title = "
N m e r o de incendios por tramos del dia de la tempora 2022 " )
588 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
589 # ###4.2.3.2 Grafica por comuna por periodo del d a ----
590 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
591 incendio _2022 %> %
592 group _ by ( COMUNA , time _ group ) %> %
593 summarise ( count = n () ) %> %
594 ggplot ( aes ( x = COMUNA , y = time _ group ) ) +
595 geom _ tile ( aes ( fill = count ) ) +
596 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
597 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
598 coord _ flip () +
599 ggtitle ( " N m e r o de incendio por comuna con respecto al periodo
de d a de la temporada 2022 " )
600 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
601 # ###4.2.3.3 G r f i c a por comuna por mes ----
602 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
603 incendio _ 2022 <- incendio _2022 %> %
604 mutate ( day = wday ( prueba , label = T , abbr = T ) ,
605 month = month ( prueba , label = T , abbr = T ) )
606 incendio _ 2022 %> %
49
607 group _ by ( COMUNA , month ) %> %
608 summarise ( count = n () ) %> %
609 ggplot ( aes ( x = COMUNA , y = month ) ) +
610 geom _ tile ( aes ( fill = count ) ) +
611 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
612 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
613 coord _ flip () +
614 ggtitle ( " N m e r o de incendios por comuna con respecto al mes de
la temporada 2022 " )
615 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
616 # 4.3. Intencional - - - -
617 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
618 intencional $ prueba <- as . POSIXct ( intencional $ fecha _ inicio , format
= " %Y / %m / %d %H: %M: %S " )
619 ii <- intencional %> %
620 mutate ( time = hms :: as _ hms ( hour ( prueba ) * 60+ minute ( prueba ) ) ,
621 date = date ( prueba ) ,
622 time _ group = cut ( as . numeric ( time ) , breaks = c (0 ,6 * 60 ,12 * 60 ,18
* 60 ,23 * 60+59) , labels = c ( " 00 -06 " ," 06 -12 " ," 12 -18 " ," 18 -00
" ) , include . lowest = TRUE ) )
623 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
624 # ##4.3.1. Grafica por horario de d a - - - -
625 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
626 ii %> %
627 ggplot ( aes ( x = time _ group ) ) +
628 geom _ bar ( fill = " #756 bb1 " ) +
629 labs ( x = " Periodo del dia " , y = " Numero de incendios " , title = "
N m e r o de incendios por tramos del dia ( Intencional ) " )
630 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
631 # ##4.3.2. Grafica por comuna por periodo del d a ----
632 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
633 ii %> %
634 group _ by ( COMUNA , time _ group ) %> %
635 summarise ( count = n () ) %> %
636 ggplot ( aes ( x = COMUNA , y = time _ group ) ) +
637 geom _ tile ( aes ( fill = count ) ) +
638 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
639 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
640 coord _ flip () +
641 ggtitle ( " N m e r o de incendio intencionales por comuna con
respecto al periodo de d a " )
642 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
643 # ##4.3.3. Grafica por provincia por perido del d a ----
644 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
645 ii %> %
646 group _ by ( PROVINCIA , time _ group ) %> %
647 summarise ( count = n () ) %> %
648 ggplot ( aes ( x = PROVINCIA , y = time _ group ) ) +
50
649 geom _ tile ( aes ( fill = count ) ) +
650 labs ( x = " Provincia " ,y = " D a " , title = " " ) +
651 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
652 coord _ flip () +
653 ggtitle ( " N m e r o de incendios intencionales por provincia con
respecto al periodo de d a " )
654 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
655 # ##4.3.4. G r f i c a por comuna por mes ----
656 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
657 ii <- ii %> %
658 mutate ( day = wday ( prueba , label = T , abbr = T ) ,
659 month = month ( prueba , label = T , abbr = T ) )
660 ii %> %
661 group _ by ( COMUNA , month ) %> %
662 summarise ( count = n () ) %> %
663 ggplot ( aes ( x = COMUNA , y = month ) ) +
664 geom _ tile ( aes ( fill = count ) ) +
665 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
666 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
667 coord _ flip () +
668 ggtitle ( " N m e r o de incendios intencionales por comuna con
respecto al mes " )
669 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
670 # ##4.3.5. Grafica por provincia por mes ----
671 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
672 ii %> %
673 group _ by ( PROVINCIA , month ) %> %
674 summarise ( count = n () ) %> %
675 ggplot ( aes ( x = PROVINCIA , y = month ) ) +
676 geom _ tile ( aes ( fill = count ) ) +
677 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
678 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
679 coord _ flip () +
680 ggtitle ( " N m e r o de incendios intencionales por provincia con
respecto al mes " )
681 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
682 # ##4.3.6. Grafica por superficie por periodo del d a ----
683 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
684 ii %> %
685 group _ by ( CAT _ SUPERFICIE , time _ group ) %> %
686 summarise ( count = n () ) %> %
687 ggplot ( aes ( x = CAT _ SUPERFICIE , y = time _ group ) ) +
688 geom _ tile ( aes ( fill = count ) ) +
689 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
690 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
691 coord _ flip () +
692 ggtitle ( " N m e r o de incendio no intencionales por superficie
693 con respecto al periodo de d a " )
51
694 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
695 # 4.4. No Intencional - - - -
696 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
697 no _ intencional $ prueba <- as . POSIXct ( no _ intencional $ fecha _ inicio ,
format = " %Y / %m / %d %H: %M: %S " )
698 nn <- no _ intencional %> %
699 mutate ( time = hms :: as _ hms ( hour ( prueba ) * 60+ minute ( prueba ) ) ,
700 date = date ( prueba ) ,
701 time _ group = cut ( as . numeric ( time ) , breaks = c (0 ,6 * 60 ,12 * 60 ,18
* 60 ,23 * 60+59) , labels = c ( " 00 -06 " ," 06 -12 " ," 12 -18 " ," 18 -00
" ) , include . lowest = TRUE ) )
702 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
703 # ##4.4.1. Grafica por horario de d a - - - -
704 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
705 nn %> %
706 ggplot ( aes ( x = time _ group ) ) +
707 geom _ bar ( fill = " #756 bb1 " ) +
708 labs ( x = " Periodo del dia " , y = " Numero de incendios " , title = "
N m e r o de incendios no intencional por tramos del dia " )
709 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
710 # ##4.4.2. Grafica por comuna por periodo del d a ----
711 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
712 nn %> %
713 group _ by ( COMUNA , time _ group ) %> %
714 summarise ( count = n () ) %> %
715 ggplot ( aes ( x = COMUNA , y = time _ group ) ) +
716 geom _ tile ( aes ( fill = count ) ) +
717 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
718 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
719 coord _ flip () +
720 ggtitle ( " N m e r o de incendio no intencionales por comuna con
respecto al periodo de d a " )
721 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
722 # ##4.4.3. Grafica por provincia por perido del d a ----
723 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
724 nn %> %
725 group _ by ( PROVINCIA , time _ group ) %> %
726 summarise ( count = n () ) %> %
727 ggplot ( aes ( x = PROVINCIA , y = time _ group ) ) +
728 geom _ tile ( aes ( fill = count ) ) +
729 labs ( x = " Provincia " ,y = " D a " , title = " " ) +
730 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
731 coord _ flip () +
732 ggtitle ( " N m e r o de incendios no intencionales por provincia
con respecto al periodo de d a " )
733 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
734 # ##4.4.4. G r f i c a por comuna por mes ----
735 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
52
736 nn <- nn %> %
737 mutate ( day = wday ( prueba , label = T , abbr = T ) ,
738 month = month ( prueba , label = T , abbr = T ) )
739 nn %> %
740 group _ by ( COMUNA , month ) %> %
741 summarise ( count = n () ) %> %
742 ggplot ( aes ( x = COMUNA , y = month ) ) +
743 geom _ tile ( aes ( fill = count ) ) +
744 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
745 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
746 coord _ flip () +
747 ggtitle ( " N m e r o de incendios no intencionales por comuna con
respecto al mes " )
748 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
749 # ##4.4.5. Grafica por provincia por mes ----
750 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
751 nn %> %
752 group _ by ( PROVINCIA , month ) %> %
753 summarise ( count = n () ) %> %
754 ggplot ( aes ( x = PROVINCIA , y = month ) ) +
755 geom _ tile ( aes ( fill = count ) ) +
756 labs ( x = " Comuna " ,y = " Mes " , title = " " ) +
757 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
758 coord _ flip () +
759 ggtitle ( " N m e r o de incendios no intencionales por provincia
con respecto al mes " )
760 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
761 # ##4.4.6. Grafica por superficie por periodo del d a ----
762 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
763 nn %> %
764 group _ by ( CAT _ SUPERFICIE , time _ group ) %> %
765 summarise ( count = n () ) %> %
766 ggplot ( aes ( x = CAT _ SUPERFICIE , y = time _ group ) ) +
767 geom _ tile ( aes ( fill = count ) ) +
768 labs ( x = " Comuna " ,y = " D a " , title = " " ) +
769 scale _ fill _ viridis _ c ( " N m e r o de incendios " , label = comma ) +
770 coord _ flip () +
771 ggtitle ( " N m e r o de incendio no intencionales por superficie
772 con respecto al periodo de d a " )
773 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
774 # 5. G r f i c a s de intensidad ----
775 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
776 poly <- st _ read ( file . choose () )
777 poly _ biobio <- subset ( poly , Region == " R e g i n del B o - B o " )
778 poly _ biobio <- st _ transform ( poly _ biobio , " + proj = longlat + datum =
WGS84 " )
779
780
53
781 categoria _ conce <-c ( " C o n c e p c i n " )
782 categoria _ nueva <-" Concepcion "
783 poly _ biobio $ Comuna <- ifelse ( poly _ biobio $ Comuna %in %categoria _ conce ,
categoria _ nueva , poly _ biobio $ Comuna )
784
54
823 title ( main = " Incendios intencionales temporada 2021 " )
824 plot ( poly _ biobio $ geometry )
825 plot ( no _ intencional21 $ geometry , add =T , pch = " . " , col = " red " )
826 title ( main = " Incendios no intencionales temporada 2021 " )
827 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
828 # ##5.1.3. Temporada 2023 ----
829 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
830 par ( mfrow = c (1 ,2) )
831 plot ( poly _ biobio $ geometry )
832 plot ( intencional22 $ geometry , add =T , pch = " . " , col = " blue " )
833 title ( main = " Incendios intencionales temporada 2022 " )
834 plot ( poly _ biobio $ geometry )
835 plot ( no _ intencional22 $ geometry , add =T , pch = " . " , col = " red " )
836 title ( main = " Incendios no intencionales temporada 2022 " )
837 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
838 # #5.2. D i s t r i b u c i n espacial de incendios ----
839 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
840 # ##5.2.1. Temporada 2020 ----
841 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
842 resultados <- table ( incendio _ 2020 $ COMUNA )
843 resultados _ 2020 <- as . data . frame ( resultados )
844 colnames ( resultados _ 2020) <- c ( " Comuna " , " Frecuencia " )
845 merged _ 2020 <- merge ( poly _ biobio , resultados _ 2020 , by = " Comuna " ,
all . x = TRUE )
846 merged _ 2020 $ Frecuencia [ is . na ( merged _ 2020 $ Frecuencia ) ] <- 0
847 tm _ shape ( merged _ 2020) +
848 tm _ borders () +
849 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios del 2020 ’)
+
850 tm _ text ( " Comuna " , size = 0.6) +
851 tm _ layout (
852 legend . position = c ( " center " , " bottom " ) ,
853 legend . text . size = 0.6
854 )
855 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
856 # ###5.2.1.1. Intencional ----
857 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
858 resultados <- table ( intencional20 $ COMUNA )
859 intencional2020 <- as . data . frame ( resultados )
860 colnames ( intencional2020 ) <- c ( " Comuna " , " Frecuencia " )
861 mergedint _ 2020 <- merge ( poly _ biobio , intencional2020 , by = "
Comuna " , all . x = TRUE )
862 mergedint _ 2020 $ Frecuencia [ is . na ( mergedint _ 2020 $ Frecuencia ) ] <- 0
863 tm _ shape ( mergedint _ 2020) +
864 tm _ borders () +
865 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios
Intencionales del 2020 ’) +
866 tm _ text ( " Comuna " , size = 0.6) +
55
867 tm _ layout (
868 legend . position = c ( " center " , " bottom " ) ,
869 legend . text . size = 0.6
870 )
871 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
872 # ###5.2.1.2. No intencional ----
873 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
874 resultados <- table ( no _ intencional20 $ COMUNA )
875 no _ intencional2020 <- as . data . frame ( resultados )
876 colnames ( no _ intencional2020 ) <- c ( " Comuna " , " Frecuencia " )
877 mergenoint _ 2020 <- merge ( poly _ biobio , no _ intencional2020 , by = "
Comuna " , all . x = TRUE )
878 mergenoint _ 2020 $ Frecuencia [ is . na ( mergenoint _ 2020 $ Frecuencia ) ] <-
0
879 tm _ shape ( mergenoint _ 2020) +
880 tm _ borders () +
881 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios No
Intencionales del 2020 ’) +
882 tm _ text ( " Comuna " , size = 0.6) +
883 tm _ layout (
884 legend . position = c ( " center " , " bottom " ) ,
885 legend . text . size = 0.6
886 )
887 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
888 # ##5.2.2. Temporada 2021 ----
889 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
890 resultados <- table ( i2021 $ COMUNA )
891 resultados _ 2021 <- as . data . frame ( resultados )
892 colnames ( resultados _ 2021) <- c ( " Comuna " , " Frecuencia " )
893 merged _ 2021 <- merge ( poly _ biobio , resultados _ 2021 , by = " Comuna " ,
all . x = TRUE )
894 merged _ 2021 $ Frecuencia [ is . na ( merged _ 2021 $ Frecuencia ) ] <- 0
895 tm _ shape ( merged _ 2021) +
896 tm _ borders () +
897 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios del 2021 ’)
+
898 tm _ text ( " Comuna " , size = 0.6) +
899 tm _ layout (
900 legend . position = c ( " center " , " bottom " ) ,
901 legend . text . size = 0.6
902 )
903 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
904 # ###5.2.2.1. Intencional ----
905 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
906 resultados <- table ( intencional21 $ COMUNA )
907 intencional2021 <- as . data . frame ( resultados )
908 colnames ( intencional2021 ) <- c ( " Comuna " , " Frecuencia " )
56
909 mergedint _ 2021 <- merge ( poly _ biobio , intencional2021 , by = "
Comuna " , all . x = TRUE )
910 mergedint _ 2021 $ Frecuencia [ is . na ( mergedint _ 2021 $ Frecuencia ) ] <- 0
911 tm _ shape ( mergedint _ 2021) +
912 tm _ borders () +
913 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios
Intencionales del 2021 ’) +
914 tm _ text ( " Comuna " , size = 0.6) +
915 tm _ layout (
916 legend . position = c ( " center " , " bottom " ) ,
917 legend . text . size = 0.6
918 )
919 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
920 # ###5.2.2.2. No intencional ----
921 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
922 resultados <- table ( no _ intencional21 $ COMUNA )
923 no _ intencional2021 <- as . data . frame ( resultados )
924 colnames ( no _ intencional2021 ) <- c ( " Comuna " , " Frecuencia " )
925 mergenoint _ 2021 <- merge ( poly _ biobio , no _ intencional2021 , by = "
Comuna " , all . x = TRUE )
926 mergenoint _ 2021 $ Frecuencia [ is . na ( mergenoint _ 2021 $ Frecuencia ) ] <-
0
927 tm _ shape ( mergenoint _ 2021) +
928 tm _ borders () +
929 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios No
Intencionales del 2021 ’) +
930 tm _ text ( " Comuna " , size = 0.6) +
931 tm _ layout (
932 legend . position = c ( " center " , " bottom " ) ,
933 legend . text . size = 0.6
934 )
935 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
936 # ##5.2.3. Temporada 2022 ----
937 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
938 resultados <- table ( i2022 $ COMUNA )
939 resultados _ 2022 <- as . data . frame ( resultados )
940 colnames ( resultados _ 2022) <- c ( " Comuna " , " Frecuencia " )
941 merged _ 2022 <- merge ( poly _ biobio , resultados _ 2022 , by = " Comuna " ,
all . x = TRUE )
942 merged _ 2022 $ Frecuencia [ is . na ( merged _ 2022 $ Frecuencia ) ] <- 0
943 tm _ shape ( merged _ 2022) +
944 tm _ borders () +
945 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios del 2022 ’)
+
946 tm _ text ( " Comuna " , size = 0.6) +
947 tm _ layout (
948 legend . position = c ( " center " , " bottom " ) ,
949 legend . text . size = 0.6
57
950 )
951 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
952 # ###5.2.2.1. Intencional ----
953 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
954 resultados <- table ( intencional22 $ COMUNA )
955 intencional2022 <- as . data . frame ( resultados )
956 colnames ( intencional2022 ) <- c ( " Comuna " , " Frecuencia " )
957 mergedint _ 2022 <- merge ( poly _ biobio , intencional2022 , by = "
Comuna " , all . x = TRUE )
958 mergedint _ 2022 $ Frecuencia [ is . na ( mergedint _ 2022 $ Frecuencia ) ] <- 0
959 tm _ shape ( mergedint _ 2022) +
960 tm _ borders () +
961 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios
Intencionales del 2022 ’) +
962 tm _ text ( " Comuna " , size = 0.6) +
963 tm _ layout (
964 legend . position = c ( " center " , " bottom " ) ,
965 legend . text . size = 0.6
966 )
967 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
968 # ###5.2.2.2. No intencional ----
969 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
970 resultados <- table ( no _ intencional22 $ COMUNA )
971 no _ intencional2022 <- as . data . frame ( resultados )
972 colnames ( no _ intencional2022 ) <- c ( " Comuna " , " Frecuencia " )
973 mergenoint _ 2022 <- merge ( poly _ biobio , no _ intencional2022 , by = "
Comuna " , all . x = TRUE )
974 mergenoint _ 2022 $ Frecuencia [ is . na ( mergenoint _ 2022 $ Frecuencia ) ] <-
0
975 tm _ shape ( mergedint _ 2022) +
976 tm _ borders () +
977 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios No
Intencionales del 2022 ’) +
978 tm _ text ( " Comuna " , size = 0.6) +
979 tm _ layout (
980 legend . position = c ( " center " , " bottom " ) ,
981 legend . text . size = 0.6
982 )
983 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
984 # ##5.2.4. De todas las temporadas ----
985 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
986 ii2020 <- i2020 [ ,5]
987 ii2021 <- i2021 [ ,5]
988 ii2022 <- i2022 [ ,39]
989 df _ com <- rbind ( ii2020 , ii2021 , ii2022 )
990
58
993 colnames ( total ) <- c ( " Comuna " , " Frecuencia " )
994 mergeto <- merge ( poly _ biobio , total , by = " Comuna " , all . x = TRUE )
995 mergeto $ Frecuencia [ is . na ( mergeto $ Frecuencia ) ] <- 0
996 tm _ shape ( mergeto ) +
997 tm _ borders () +
998 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios ’) +
999 tm _ text ( " Comuna " , size = 0.6) +
1000 tm _ layout (
1001 legend . position = c ( " center " , " bottom " ) ,
1002 legend . text . size = 0.6
1003 )
1004 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1005 # ###5.2.4.1. Intencional ----
1006 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1007 resultados <- table ( intencional $ COMUNA )
1008 intencion <- as . data . frame ( resultados )
1009 colnames ( intencion ) <- c ( " Comuna " , " Frecuencia " )
1010 mergeint <- merge ( poly _ biobio , intencion , by = " Comuna " , all . x =
TRUE )
1011 mergeint $ Frecuencia [ is . na ( mergeint $ Frecuencia ) ] <- 0
1012 tm _ shape ( mergeint ) +
1013 tm _ borders () +
1014 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios
Intencionales ’) +
1015 tm _ text ( " Comuna " , size = 0.6) +
1016 tm _ layout (
1017 legend . position = c ( " center " , " bottom " ) ,
1018 legend . text . size = 0.6
1019 )
1020 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1021 # ###5.2.4.2. No Intencional ----
1022 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1023 resultados <- table ( no _ intencional $ COMUNA )
1024 no _ intencion <- as . data . frame ( resultados )
1025 colnames ( no _ intencion ) <- c ( " Comuna " , " Frecuencia " )
1026 no _ mergeint <- merge ( poly _ biobio , no _ intencion , by = " Comuna " ,
all . x = TRUE )
1027 no _ mergeint $ Frecuencia [ is . na ( no _ mergeint $ Frecuencia ) ] <- 0
1028 tm _ shape ( no _ mergeint ) +
1029 tm _ borders () +
1030 tm _ fill ( " Frecuencia " , title = ’ N m e r o de Incendios No
Intencionales ’) +
1031 tm _ text ( " Comuna " , size = 0.6) +
1032 tm _ layout (
1033 legend . position = c ( " center " , " bottom " ) ,
1034 legend . text . size = 0.6
1035 )
1036 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
59
1037 # #5.3. Grafico colores ----
1038 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1039 # #5.3.1. C o m p a r a c i n por Temporada ----
1040 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1041 par ( mfrow = c (1 ,3) )
1042 dato <- as . data . frame ( st _ coordinates ( i2020 [ ,]) )
1043 dim ( dato )
1044 dato $ fecha <- i2020 $ fecha _ gra
1045 dato <- array ( c ( dato $X , dato $Y , dato $ fecha ) , dim = c (2786 ,3 ,1) )
1046 bndry <- st _ coordinates ( poly _ biobio $ geometry )
1047 bndry <- as . array ( cbind ( bndry [ ,1] , bndry [ ,2]) )
1048 W <- owin ( xrange = c ( min ( bndry [ , 1]) , max ( bndry [ , 1]) ) ,
1049 yrange = c ( min ( bndry [ , 2]) , max ( bndry [ , 2]) ) ,
1050 poly = list ( x = rev ( bndry [ , 1]) , y = rev ( bndry [ , 2]) ) )
1051 h <- ppp ( x = dato [ , 1 , 1] , y = dato [ , 2 , 1] , window = W , marks =
dato [ , 3 , 1])
1052 X=h
1053 as . data . frame ( h )
1054 df <- as . data . frame ( cbind ( h $x , h $ y ) )
1055 H = Hpi ( x = df )
1056 D <- density . ppp (h , diggle = F , varcov = H , positive =T , at = "
pixels " , edge = T )
1057 plot (D , main = ’ Temporada 2020 ’)
1058 contour (D , add = TRUE )
1059
60
1081 dato <- array ( c ( dato $X , dato $Y , dato $ fecha ) , dim = c (2894 ,3 ,1) )
1082 bndry <- st _ coordinates ( poly _ biobio $ geometry )
1083 bndry <- as . array ( cbind ( bndry [ ,1] , bndry [ ,2]) )
1084 W <- owin ( xrange = c ( min ( bndry [ , 1]) , max ( bndry [ , 1]) ) ,
1085 yrange = c ( min ( bndry [ , 2]) , max ( bndry [ , 2]) ) ,
1086 poly = list ( x = rev ( bndry [ , 1]) , y = rev ( bndry [ , 2]) ) )
1087 h <- ppp ( x = dato [ , 1 , 1] , y = dato [ , 2 , 1] , window = W , marks =
dato [ , 3 , 1])
1088 X=h
1089 as . data . frame ( h )
1090 df <- as . data . frame ( cbind ( h $x , h $ y ) )
1091 H = Hpi ( x = df )
1092 D <- density . ppp (h , diggle = F , varcov = H , positive =T , at = "
pixels " , edge = T )
1093 plot (D , main = ’ Temporada 2022 ’)
1094 contour (D , add = TRUE )
1095 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1096 # 6. HotSpot ----
1097 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1098 # st _ write ( poly _ biobio , " poly _ biobio . shp ")
1099 poly _ bio <- st _ read ( file . choose () ) # poly _ biobio
1100 My . poly1 <- as . data . frame ( poly _ bio )
1101 com20 <- data . frame ( i2020 [ ,5])
1102 com21 <- data . frame ( i2021 [ ,5])
1103 com22 <- data . frame ( i2022 [ ,39])
1104 base . unida <- rbind ( com20 , com21 , com22 )
1105 base . unida <- subset ( base . unida , COMUNA ! = " Tirua " )
1106 My . poly1 <- subset ( My . poly1 , Comuna ! = " Tirua " )
1107 attach ( base . unida )
1108 nc . combine1 <- as . data . frame ( base . unida )
1109 OA . Census <- merge ( My . poly1 , nc . combine1 , by . x = " Comuna " , by . y = "
COMUNA " )
1110 OA . Census _ sf <- st _ as _ sf ( OA . Census )
1111 library ( sfdep )
1112 library ( spdep )
1113 w <- table ( OA . Census _ sf $ Comuna )
1114 rep . dis <- as . data . frame ( w )
1115 My . poly1 <- st _ as _ sf ( My . poly1 )
1116 districts <- merge ( My . poly1 , rep . dis , by . x = ’ Comuna ’ , by . y = "
Var1 " , all . x = TRUE )
1117 districts $ Freq [ is . na ( districts $ Freq ) ] <- 0
1118 neighbours <- poly2nb ( districts , queen = FALSE )
1119 neighbours [[30]] <- c (5 , 8)
1120 neighbours [[5]] <- c (8 ,30)
1121 neighbours [[8]] <- c (5 ,16 ,30)
1122 neighbours [[30]] <- as . integer ( neighbours [[30]])
1123 neighbours [[5]] <- as . integer ( neighbours [[5]])
1124 neighbours [[8]] <- as . integer ( neighbours [[8]])
61
1125 listw <- spdep :: nb2listw ( neighbours , style = " W " , zero . policy =
TRUE )
1126 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1127 # #6.1 C o r r e l a c i n espacial global ----
1128 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1129 # ho : No hay a u t o c o r r e l a c i n espacial en los datos
1130 # h1 : Si hay a u t o c o r r e l a c i n en los datos
1131 moran . test ( districts $ Freq , listw ) # si hay c o r r e l a c i n
1132 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1133 # #6.2. C o r r e l a c i n espacial local ----
1134 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1135 # ho : No hay a u t o c o r r e l a c i n espacial en los datos
1136 # h1 : Si hay a u t o c o r r e l a c i n en los datos
1137 Gi = localmoran ( districts $ Freq , listw , alternative = " greater " )
1138 # Gi1 <- es el estadistico , m s cercano a 1 es que hay m s
c o r r e l a c i n , o sea el p - valor mas p e q u e o
1139 Gi1 = as . data . frame ( Gi ) $ Z . Ii
1140 b <- data . frame ( Gi )
1141 names ( b ) [1:5] <-c ( " a " ," b " ," c " ," d " ," pr " )
1142 c <- subset (b , pr <0.05)
1143 P _ valor = as . data . frame ( b ) $ pr
1144
62
1166 scale _ fill _ gradient2 () # makes the value 0 ( random ) be the
middle
1167 tes _ hot _ spots $ gi1 <- Gi1
1168 tes _ hot _ spots $ P _ valor <-P _ valor
1169 attach ( tes _ hot _ spots )
1170 tes _ hot _ spots | >
1171 # with the columns ’gi ’ and ’b . pr "
1172 # ’b . pr ’ is the p - value of a folded permutation test
1173 dplyr :: select ( gi1 , P _ valor ) | >
1174 mutate (
1175 # Add a new column called " classification "
1176 classification = case _ when (
1177 # Classify based on the following criteria :
1178 gi1 > 0 & P _ valor <= 0.05 ~ " Caliente " ,
1179 gi1 > 0 & P _ valor <= 0.02 ~ " Muy Caliente " ,
1180 TRUE ~ " Insignificante "
1181 ),
1182 # Convert ’ classification ’ into a factor for easier plotting
1183 classification = factor (
1184 classification ,
1185 levels = c ( " Insignificante " ," Muy Caliente " ," Caliente " )
1186 )
1187 ) |>
1188 # Visualize the results with ggplot2
1189 ggplot ( aes ( fill = classification ) ) +
1190 geom _ sf ( color = " black " , lwd = 0.1) +
1191 scale _ fill _ brewer ( type = " seq " , palette = " BuPu " ) +
1192 theme _ void () +
1193 labs (
1194 fill = " C l a s i f i c a c i n Hot Spot "
1195 )
1196 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1197 # 7. Modelo Propuesto ----
1198 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1199 # hacer una base con variables , retardo ( cuanto se demora en
controlar el incendio en horas ) , mbito ,
1200 # causa general ( intencional / no intencional ) , Superficie de area
afectada
1201 i2020 $ cgene <- ifelse ( i2020 $ CAUSA _ GENE == " Incendios intencionales " ,"
Incendios intencionales " ," Incendios No intencionales " )
1202 i2020 $ fecha _ fin <- limpiar _ y _ convertir _ fecha ( i2020 $ EXTINCION )
1203 attach ( i2020 )
1204 i2020 $ fi <- strptime ( i2020 $ fecha _ inicio , format = " %Y / %m / %d %H: %M
: %S " )
1205 i2020 $ ff <- strptime ( i2020 $ fecha _ fin , format = " %Y- %m- %d %H: %M: %S
")
1206 i2020 $ retraso <- as . numeric ( difftime ( i2020 $ ff , i2020 $ fi , units =
" hours " ) )
63
1207 attach ( i2020 )
1208 base2020 <- subset ( i2020 , retraso ! = " NA " )
1209 attach ( base2020 )
1210 base2020 <- st _ as _ sf ( i2020 [ , c (6 ,43 ,29 ,47 ,5) ])
1211 names ( base2020 ) [1:5] <-c ( " AMBITO " ," GENE " ," SUPERFICIE " ," CONTROL " ,"
COMUNA " )
1212
1213 i2021 $ cgene <- ifelse ( i2021 $ CAUSA _ GENE == " Incendios intencionales " ,"
Incendios intencionales " ," Incendios No intencionales " )
1214 i2021 $ fecha _ fin <- limpiar _ y _ convertir _ fecha ( i2021 $ EXTINCION )
1215 attach ( i2021 )
1216 i2021 $ fi <- strptime ( i2021 $ fecha _ inicio , format = " %Y / %m / %d %H: %M
: %S " )
1217 i2021 $ ff <- strptime ( i2021 $ fecha _ fin , format = " %Y- %m- %d %H: %M: %S
")
1218 i2021 $ retraso <- as . numeric ( difftime ( i2021 $ ff , i2021 $ fi , units =
" hours " ) )
1219 attach ( i2021 )
1220 base2021 <- subset ( i2021 , retraso ! = " NA " )
1221 attach ( base2021 )
1222 base2021 <- st _ as _ sf ( i2020 [ , c (6 ,43 ,29 ,47 ,5) ])
1223 names ( base2021 ) [1:5] <-c ( " AMBITO " ," GENE " ," SUPERFICIE " ," CONTROL " ,"
COMUNA " )
1224
1225 i2022 $ cgene <- ifelse ( i2022 $ causa _ gene == " Incendios intencionales " ,"
Incendios intencionales " ," Incendios No intencionales " )
1226 i2022 $ fecha _ fin <- limpiar _ y _ convertir _ fecha ( i2022 $ fh _ extinci )
1227 attach ( i2022 )
1228 i2022 $ fi <- strptime ( i2022 $ fecha _ inicio , format = " %Y / %m / %d %H: %M
: %S " )
1229 i2022 $ ff <- strptime ( i2022 $ fecha _ fin , format = " %Y- %m- %d %H: %M: %S
")
1230 i2022 $ retraso <- as . numeric ( difftime ( i2022 $ ff , i2022 $ fi , units =
" hours " ) )
1231 attach ( i2022 )
1232 base2022 <- subset ( i2022 , retraso ! = " NA " )
1233 attach ( base2022 )
1234 base2022 <- st _ as _ sf ( i2022 [ , c (9 ,46 ,32 ,50 ,5) ])
1235 names ( base2022 ) [1:5] <-c ( " AMBITO " ," GENE " ," SUPERFICIE " ," CONTROL " ,"
COMUNA " )
1236 basefinal <- rbind ( base2020 , base2021 , base2022 )
1237 basefinal2 <- st _ read ( file . choose () ) # basegeo
1238 basefinal2 $ CONTROL <- basefinal $ CONTROL
1239 basefinal2 $ SUPERFICIE <- as . numeric ( basefinal2 $ SUPERFICIE )
1240 basefinal2 $ lat <- as . numeric ( basefinal2 $ lat )
1241 basefinal2 $ long <- as . numeric ( basefinal2 $ long )
1242 attach ( basefinal2 )
1243 basefinal2 <- na . omit ( basefinal2 )
64
1244 attach ( basefinal2 )
1245 # Crear una muestra aleatoria de los datos
1246 set . seed (123)
1247 muestra <- basefinal2 [ sample ( nrow ( basefinal2 ) , 1000) , ]
1248 datos _ sf <- st _ as _ sf ( muestra , coords = c ( " long " , " lat " ) , crs =
4326)
1249 k _ vecinos <- 5
1250 w <- knn2nb ( knearneigh ( st _ coordinates ( datos _ sf ) , k = k _ vecinos ) )
1251 listw <- nb2listw (w , style = " B " )
1252 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1253 # #7.1. Modelo de Error espacial ----
1254 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1255 modelo <- errorsarlm ( CONTROL ~ AMBITO + SUPERFICIE + GENE , data =
datos _ sf , listw = listw )
1256 summary ( modelo )
1257 AIC ( modelo )
1258 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1259 # ##7.1.1. Prueba de normalidad de los errores ----
1260 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1261 library ( nortest )
1262 lillie . test ( modelo $ residuals )
1263 qqnorm ( modelo $ residuals )
1264 qqline ( modelo $ residuals )
1265 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1266 # ##7.1.2. Prueba de A u t o c o r r e l a c i n Espacial residual ----
1267 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1268 # a u t o c o r r e l a c i n de los residuos
1269 residuos <- residuals ( modelo )
1270 moran . test ( residuos , listw = listw , randomisation = FALSE )
1271
1277 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1278 # ##7.1.3. Prueba de Homocedasticidad espacial ----
1279 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1280 plot ( modelo $ residuals , pch = 16 , col = " blue " )
1281 abline ( h = 0 , col = " red " )
1282 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1283 # #7.2. Modelo de Retardo espacial ----
1284 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1285 modelo _ lag <- lagsarlm ( CONTROL ~ AMBITO + SUPERFICIE + GENE , data
= datos _ sf , listw = listw )
1286 summary ( modelo _ lag )
1287 AIC ( modelo _ lag )
1288 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
65
1289 # ##7.2.1. Prueba de normalidad de los errores ----
1290 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1291 lillie . test ( modelo _ lag $ residuals )
1292 qqnorm ( modelo _ lag $ residuals )
1293 qqline ( modelo _ lag $ residuals )
1294 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1295 # ##7.2.2. Prueba de A u t o c o r r e l a c i n Espacial residual ) ----
1296 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1297 residuos <- residuals ( modelo _ lag )
1298 moran . test ( residuos , listw = listw , randomisation = FALSE )
1299 # si no se cumple la normalidad
1300 library ( spdep )
1301 moran . mc ( residuos , listw = listw , nsim = 999)
1302 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1303 # ##7.2.3. Prueba de Homocedasticidad espacial ----
1304 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1305 plot ( modelo _ lag $ residuals , pch = 16 , col = " blue " )
1306 abline ( h = 0 , col = " red " )
1307 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1308 # #7.3. Modelo Espacial de Durbin ----
1309 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1310 modelo _ <- lagsarlm ( CONTROL ~ AMBITO + SUPERFICIE + GENE , data =
datos _ sf , listw = listw , Durbin = T )
1311 summary ( modelo _ )
1312 AIC ( modelo _ )
1313 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1314 # ##7.3.1. Prueba de normalidad de los errores ----
1315 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1316 shapiro . test ( modelo _ lag $ residuals )
1317 qqnorm ( modelo _ $ residuals )
1318 qqline ( modelo _ $ residuals )
1319 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1320 # ##7.3.2. Prueba de A u t o c o r r e l a c i n Espacial residual ----
1321 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1322 residuos <- residuals ( modelo _ )
1323 moran . test ( residuos , listw = listw , randomisation = FALSE )
1324 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1325 # ##7.3.3. Prueba de Homocedasticidad espacial ----
1326 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1327 plot ( modelo _ $ residuals , pch = 16 , col = " blue " )
1328 abline ( h = 0 , col = " red " )
1329 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1330 # #7.4. Modelo Lineal ----
1331 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1332 mode <- lm ( CONTROL ~ AMBITO + SUPERFICIE + GENE , data = datos _ sf )
1333 summary ( mode )
1334 AIC ( mode )
1335 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
66
1336 # ##7.4.1. Prueba de normalidad de los errores ----
1337 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1338 lillie . test ( mode $ residuals )
1339 qqnorm ( mode $ residuals )
1340 qqline ( mode $ residuals )
1341 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1342 # ##7.4.2. Prueba de A u t o c o r r e l a c i n Espacial residual ----
1343 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1344 residuos <- residuals ( mode )
1345 moran . test ( residuos , listw = listw , randomisation = FALSE )
1346 moran . mc ( residuos , listw = listw , nsim = 999)
1347 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1348 # ##7.4.3. Prueba de Homocedasticidad espacial ----
1349 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1350 plot ( mode $ residuals , pch = 16 , col = " blue " )
1351 abline ( h = 0 , col = " red " )
1352 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1353 # #7.5. Que modelos nos quedamos ? ----
1354 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
1355 # Quedarnos con el menor AIC
1356 AIC ( modelo )
1357 AIC ( modelo _ lag )
1358 AIC ( modelo _ )
1359 AIC ( mode )
67