Está en la página 1de 10

Untitled

Bootstrap

2023-06-12

#Bases de datos #Los datos fueron proporcionados por la #Dra. Katrin Sieron
investigadora del Centro de #Ciencias de la Tierra de la Universidad Veracruzana. #Los
datos proporcionados se analizaron y presentaron en este proyecto #con su autorizació n
previa.
#Se cargan las bases de datos #El campo volcá nico Chichinautzin posee una cantidad de
356 volcanes individuales #El campo volcá nico de los Tuxtlas poseen 368 volcanes
individuales #Los dos campos poseen las variables de latitud y longitud en coordenadas
UTM
library(dplyr) library(spatstat) library(ggplot2)
chichinautzin<-read.csv(file.choose()) tuxtlas<-read.csv(file.choose()) tuxtlas<-
dplyr::select(tuxtlas,x,y)
#Capitulo uno
#Donde se busca contestar a la pregunta de si las intensidades de los campos volcanicos
son iguales
cap1_ch<-chichinautzin%>% mutate(clase=“CV Chichinauztin”)
cap1_tux<-tuxtlas%>% mutate(clase=“CV Los Tuxtlas”)
cap1_union<-rbind(cap1_tux,cap1_ch)
ggplot(cap1_union,aes(x/1000,y/1000))+ geom_point()+ facet_wrap(~clase,scales =
“free”)+ labs(x=“Latitud en Kilométros”, y=“Longitud en Kilométros”)+ theme_bw()
#Capítulo 2
#Herramientas de modelació n. set.seed(2023)
#Proceso Poisson Homogéneo
cap_2X<- runifpoint(200) cap_2X<-as.data.frame(cap_2X)
cap_2X<-cap_2X%>%mutate(clase=“Aleatorio”)
ggplot(data=cap_2X, mapping=aes(x=x, y=y)) + geom_point()+ theme_bw()
#Proceso puntual regular
cap2_r<- rSSI(0.05, 200)
cap2_r<-as.data.frame(cap2_r)
cap2_r<-cap2_r%>%mutate(clase=“Regular”)
ggplot(data=cap2_r, mapping=aes(x=x, y=y)) + geom_point()+ theme_bw()
#Proceso Puntual agrupado

Proceso de Poisson no homogéneo (lambda depende de x)


lambda <- 200 # Tasa de ocurrencia de los sucesos npoints <- rpois(n = 1, lambda =
lambda) # Generamos el nú mero de ocurrencias # Generamos los puntos como variables
normales independientes x <- rnorm(npoints,mean = .5,sd=.5) y <- rnorm(npoints,mean
= .5,sd=.5) cap2_df <- data.frame(x = x, y = y) # Dataframe con los resultados cap_2df<-
cap2_df%>% mutate(x=(x-min(x))/(max(x)-min(x)))%>% mutate(y=(y-min(y))/(max(y)-
min(y)))
cap_2df<-cap_2df%>%mutate(clase=“Agrupado”)

Representación gráfica
ggplot(data=cap2_df, mapping=aes(x=x, y=y)) + geom_point()+ theme_minimal()
#Union de grá ficos capítulo 2
cap2_tpatrones<-rbind(cap_2df, cap_2X, cap2_r)
ggplot(cap2_tpatrones,aes(x,y))+ geom_point()+ facet_wrap(~clase)+ theme_bw()
#Realizacion de proceso puntuales poisson no homogéneos #Bajo aleatoriedad espacial
completa set.seed(2023) cap_21<- runifpoint(200) cap_21<-as.data.frame(cap_21)
cap_211<-cap_21%>%mutate(clase=“1”)
cap_22<-cap_21%>%mutate(clase=“2”)
cap_23<-cap_21%>%mutate(clase=“3”)
cap2_real<-rbind(cap_211,cap_22, cap_23)
ggplot(data=cap2_real, mapping=aes(x=x, y=y)) + geom_point()+ theme_bw()+
facet_wrap(~clase)
#Capitulo 3
library(dplyr) library(spatstat) library(ggplot2)
tuxtlas<-read.csv(file.choose()) tuxtlas1.0<-dplyr::select(tuxtlas,x,y) #se seleccionan las
variables de x e y
cap3_tux1.1<-tuxtlas1.0
cap3_tux1.2<-cap3_tux1.1%>%#se transforma a escala kilómetros
mutate(x=x/1000)%>%
mutate(y=y/1000)

cap3_tux1.3<-cap3_tux1.2%>%#transformación min max


mutate(x=(x-min(x))/(max(x)-min(x)))%>%
mutate(y=(y-min(y))/(max(y)-min(y)))

#Orientacion hacia los ejes de má xima variabilidad———————–


library(factoextra)
cap3_cova_tux<-cov(cap3_tux1.3)#cá lculo de la matriz de covarianzas eigen <-
eigen(cap3_cova_tux)#cá lculo de eigenvalores y eigenvectores
det(cap3_cova_tux)#determinante de la matriz de covarianzas
cap3_pc_tux<-prcomp(cap3_tux1.3)#cá lculo de acp y biplot
fviz_pca_var(cap3_pc_tux,
col.var = "contrib", # Color by contributions to the PC
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE # Avoid text overlapping
)+
guides(color=FALSE)+
labs(title="")+
theme_bw()

cap_3_tux_res.ind <- get_pca_ind(cap3_pc_tux)#extraccion de coordenadas


cap3_rotac_tux1.1<-as.data.frame(cap_3_tux_res.ind$coord)#convertir
coordenadas a data frame

cap3_rotac_tux1.2<-cap3_rotac_tux1.1%>%#guardado en una base de datos


nueva
mutate(x=Dim.1,
y=Dim.2)%>%dplyr::select(x,y)

cap3_rotac_tux_graf<-cap3_rotac_tux1.2%>%#rotació n min max de nuevo mutate(x=(x-


min(x))/(max(x)-min(x)), y=(y-min(y))/(max(y)-min(y)))
cap3_model0_tux<-cap3_rotac_tux_graf#guardado en otra base de datos

cap3_modelo_tux_nppparam<-cap3_model0_tux%>%
mutate(x=x,
y=y)

cap3_modelo_tux_nppp <- ppp(cap3_modelo_tux_nppparam$x,#ajuste del patró n puntual


cap3_modelo_tux_nppparam$y, c(0,1), c(0,1))
#————————————————————————
#Campo Volcá nico Chichinautzin
#————————————————————————
chichinautzin<-read.csv(file.choose())
#Aplicacion de patrones puntuales espaciales

cap3_chintzn1.1<-chichinautzin

#Conversion a kilómetros campo


#volcanico Chichinautzin

cap3_chintzn1.2<-cap3_chintzn1.1%>%
mutate(x=x/1000)%>%
mutate(y=y/1000)

#Transformacion min max


#campo volcánico Chichinautzin

cap3_chintzn1.3<-cap3_chintzn1.2%>%
mutate(x=(x-min(x))/(max(x)-min(x)))%>%
mutate(y=(y-min(y))/(max(y)-min(y)))

#rotacion hacia los ejes de má xima variabilidad #


———————————————————————– #con componentes principales
Chichinautzin
library(factoextra)
cap3_chntzn_cova<-cov(cap3_chintzn1.3)#matriz de covarianzas
eigens<-eigen(cap3_chntzn_cova)#cálculo de eigenvalores y eigenvectores
det(cap3_chntzn_cova)#determinante de la matriz de covarianzas

cap3_pc_chtzn<-prcomp(cap3_chintzn1.3)#cálculo de componentes

fviz_pca_var(cap3_pc_chtzn,#grafico de biplot
col.var = "contrib", # Color by contributions to the PC
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE # Avoid text overlapping
)+
guides(color=FALSE)+
labs(title="")+
theme_bw()

#se extraen las coordenadas de cada evento para posterior aná lisis
cap_3_chtzn_res.ind <- get_pca_ind(cap3_pc_chtzn)#extraccion de coordenadas
cap3_rotac_chntz<-as.data.frame(cap_3_chtzn_res.ind$coord)#guardado base
nueva

cap3_rotac_chntz1.1<-cap3_rotac_chntz%>%#limpieza y acomodado nueva base


mutate(x=Dim.1,
y=Dim.2)%>%dplyr::select(x,y)

#———————————————————————— #grafico de rotació n de


coordenadas hacia los ejes de #maxima variabilidad #cap3_rotacion_de_ejes min max
cap3_rotac_chntz_graf<-cap3_rotac_chntz1.1%>%#rotació n min max mutate(x=(x-
min(x))/(max(x)-min(x)), y=(y-min(y))/(max(y)-min(y)))
cap3_modelo_chtzn_nparam<-cap3_rotac_chntz_graf#guardado base nueva

cap3_modelo_chtzn_nparam1.1<-cap3_modelo_chtzn_nparam%>%#ajuste de
valores
mutate(x=x,
y=y)

#se ajusta el patró n puntual #se amplía el tamañ o de ancho de ventana


cap3_modelo_chtzn_nppp <- ppp(cap3_modelo_chtzn_nparam1.1$x,#ajuste de patró n
puntual cap3_modelo_chtzn_nparam1.1$y, c(0,1), c(0,1))
#———————————————————————— #Prueba de Permutaciones
#Campo volcá nico Chichinautzin
cap3_modelo_chtzn_nppp1.0<-ppm(cap3_modelo_chtzn_nppp~polynom(x,y,2))#ajuste de
modelo de patró n puntual 2do grado cap3_modelo_chtzn_nppp1.1<-
step(cap3_modelo_chtzn_nppp1.0)#eliminacion hacia atrá s
cap3_modelo_chtzn_nppp1.2<-ppm(cap3_modelo_chtzn_nppp,~(x+y+I(x 2)+I(y2)))#seleccion
del modelo ajustado
d<-as.vector(coef(cap3_modelo_chtzn_nppp1.2))#extraccion de coeficientes en
vector

x_chtzn<-c(cap3_modelo_chtzn_nparam1.1$x)#guardado de variables x para


cálculo de verosimilitud
y_chtzn<-c(cap3_modelo_chtzn_nparam1.1$y)#guardado de base y

L_chtzn<-as.vector(NULL)#vector donde se guardarán los resultados

#Verosimilitud del campo volcá nico Chichinautzin————————-


for(i in 1:356){#ajuste de ciclo d pertenece al vector de los coeficientes #x_chtzn
representa la variable x guardada en lista #y_chtzn representa la variable y 356 es por el
nú mero de volcanes
L_chtzn[i]= ((d[1]+d[2]x_chtzn[i]+ d[3]y_chtzn[i]+ d[4](x_chtzn[i]^2)+ d[5]
(y_chtzn[i]^2))*356)
-(exp(d[1]+
d[2]*x_chtzn[i]+
d[3]*y_chtzn[i]+
d[4]*(x_chtzn[i]^2)+
d[5]*(y_chtzn[i]^2))
)

Verosimilitud_chtzn<-sum(L_chtzn) #cá lculo de la verosimilitud


#Campo volcá nico los Tuxtlas
cap3_fit_tux_polinom<- #ajuste de un modelo de segundo grado
ppm(cap3_modelo_tux_nppp~polynom(x,y,2))

cap3_fit_tux_polinom1.1<-step(cap3_fit_tux_polinom)#eliminación hacia
atrás
d<-as.vector(coef(cap3_fit_tux_polinom1.1))#guardado de los
coeficientes del modelo ajustado

x_tux<-c(cap3_modelo_tux_nppparam$x)#guardado de las variable de x de Tuxtlas y_tux<-


c(cap3_modelo_tux_nppparam$y)#guardado de la variable y de Tuxtlas
L_tux<-as.vector(NULL)

#Verosimilitud del campo volcá nico de los Tuxtlas————————


for(i in 1:368){#368 es por el nú mero de volcanes individuales en los Tuxtlas
L_tux[i]= (d[1]+# d representa el vector de coeficientes del modelo ajustado
d[2]*x_tux[i]+#x_tux representa la variable x guardado
anteriormente de tux
d[3]*y_tux[i]+#la variable y_tux representa la variable y de tux
d[4]*(x_tux[i]^2)+
d[5]*(y_tux[i]^2))*368

-(exp(d[1]+
d[2]*x_tux[i]+
d[3]*y_tux[i]+
d[4]*(x_tux[i]^2)+
d[5]*(y_tux[i]^2))
)

Verosimilitud_tux<-sum(L_tux)#cá lculo de la verosimilitud


#Verosimilitud de H0————————————————– #para el cá lculo de la
verosimilitud se unieron las bases de #chichinaautzin y los Tuxtlas
H0<-rbind(cap3_modelo_chtzn_nparam1.1,cap3_modelo_tux_nppparam)
cap3_modelo_H0 <- ppp(H0$x,H0$y,#ajuste del patrón puntual para H0
c(0,1),
c(0,1))

cap3_modelo_H01.0<-ppm(cap3_modelo_H0~polynom(x,y,2))#ajuste del
polinomio de 2do grado
cap3_modelo_H01.1<-step(cap3_modelo_H01.0)#elimincacion hacia atrás

cap3_modelo_H0_nppp1.2<-ppm(cap3_modelo_H0,~(x+y+I(x 2)+I(y2)))#seleccion del modelo


d<-as.vector(coef(cap3_modelo_H0_nppp1.2))#se guardan los coeficientes del modelo en
un vector
x_H0<-c(H0$x)#se guardan las variables de x de H0
y_H0<-c(H0$y)#variable de y de HO

L_H0<-as.vector(NULL)#vector donde se guardarán los valores calculados

#Verosimilitud del campo volcá nico Chichinautzin————————-


for(i in 1:724){#724 representa el nú mero total de datos
L_H0[i]= (d[1]+#d representa el vector de coeficientes del modelo d[2]x_H0[i]+#x_h0
representa al eje de las x d[3]y_H0[i]+#y_h0 representa al eje de las y d[4](x_H0[i]^2)+ d[5]
(y_H0[i]^2))*724
-(exp(d[1]+
d[2]*x_H0[i]+
d[3]*y_H0[i]+
d[4]*(x_H0[i]^2)+
d[5]*(y_H0[i]^2)))

}
Verosimilitud_H0<-sum(L_H0)#se calcula la verosimilitud
H1<-log(Verosimilitud_chtzn)+log(Verosimilitud_tux) #Se calcula la
verosimilitud para H1

G<- -2*log(Verosimilitud_H0)-((-2*(H1)))# se calcula el estadístico de


prueba

#######prueba de permutaciones#—————————————–
#para la prueba de permutaciones se juntan las dos bases de datos en
#la base llamada perm

perm<-rbind(cap3_modelo_chtzn_nparam1.1,cap3_modelo_tux_nppparam)
G_perm<-as.vector(NULL)#se crea un vector donde se guardarán los
estadísticos de
#prueba calculados

for (i in 1:1000) {#se consideran 1000 iteraciones


muestra<-sample(1:nrow(perm),size=356,replace = FALSE)#se crea un sistema para
extracció n de muestras perm1<-perm[muestra,]#tamañ o de muestra 356 perm2<-perm[-
muestra,]#tamañ o de muestra 368
#—————————————————- #verosimilitud de perm
cap3_modelo_perm <- ppp(perm1$x,#se ajusta el patró n puntual para perm1 perm1$y,
c(0,1), c(0,1))
cap3_modelo_perm1.2<-ppm(cap3_modelo_perm,~(x+y+I(x 2)+I(y2)))#se ajusta el modelo a
perm1
d_perm1<-as.vector(coef(cap3_modelo_perm1.2))#se extraen los coeficientes
del modelo ajustado de perm1

x_perm1<-c(perm1$x)#se extraen las variables de x de perm1


y_perm1<-c(perm1$y)#se extraen las variables de y de perm1

L_perm1<-as.vector(NULL)#se crea el vector donde se guardará el


estadístico calculado

for(j in 1:356){# se construye el ciclo para el cá lculo de la verosimilitud de perm1


L_perm1[j]= (d_perm1[1]+#d_perm1 representa el vector de coeficientes del
modelo
d_perm1[2]*x_perm1[j]+#x_perm representa la variable x de
perm1
d_perm1[3]*y_perm1[j]+#y_perm representa la variable de y de
perm1
d_perm1[4]*(x_perm1[j]^2)+
d_perm1[5]*(y_perm1[j]^2))*356

-(exp(d_perm1[1]+
d_perm1[2]*x_perm1[j]+
d_perm1[3]*y_perm1[j]+
d_perm1[4]*(x_perm1[j]^2)+
d_perm1[5]*(y_perm1[j]^2))
)
}

Verosimilitud_perm1<-sum(L_perm1)#se calcula la verosimilitud de perm1


#verosimilitud de perm2
cap3_modelo_perm2 <- ppp(perm2$x,#se crea un patró n puntual espacial para perm2
perm2$y, c(0,1), c(0,1))
cap3_modelo_perm2.22<-ppm(cap3_modelo_perm2,~(x+y+I(x^2)+I(y^2)))#se ajusta
el modelo a perm2

d_perm2<-as.vector(coef(cap3_modelo_perm2.22))#se guardan los


coeficientes del modelo

x_perm2<-c(perm2$x)#se guarda la variable de x de perm2 y_perm2<-c(perm2$y)#se


guarda la variable de y de perm2
L_perm2<-as.vector(NULL)#se crea el vector en donde se guardarán los
cálculos

for(l in 1:368){#se inicia el ciclo para el cá lculo de la verosimilitud de perm2


L_perm2[l]= (d_perm2[1]+#d se refiere a el vector de coeficientes del modelo
ajustado de perm2
d_perm2[2]*x_perm2[l]+#x_perm2 representa la variable x de
perm2
d_perm2[3]*y_perm2[l]+#y_perm2 representa la variable y de
perm2
d_perm2[4]*(x_perm2[l]^2)+
d_perm2[5]*(y_perm2[l]^2))*368

-(exp(d_perm2[1]+
d_perm2[2]*x_perm2[l]+
d_perm2[3]*y_perm2[l]+
d_perm2[4]*(x_perm2[l]^2)+
d_perm2[5]*(y_perm2[l]^2))
)

Verosimilitud_perm2<-sum(L_perm2)#se calcula la verosimilitud de perm2


H1_perm<-log(Verosimilitud_perm2)+log(Verosimilitud_perm1)#se calcula la
verosimilitud de H1

G_perm[i]<- -2*log(Verosimilitud_H0)-(-2*(H1_perm))#se calcula la razón de


verosimilitudes
#el cálculo de H0 viene de antes de la creación de la prueba y se
guarda cada
#repeticion par posterior construcción de un gráfico.

}
hist(G_perm)#grafico de la distribució n del estadístico de prueba ((sum(G_perm>=G))
+1)/(1000+1)# p valor< 0.05
as.data.frame(G_perm)%>% ggplot(aes(x=(G_perm)))+
geom_histogram(aes(y=..density..),position=“identity”, #fill=“midnightblue”,
color=“white”,alpha=.3)+ geom_density()+#size=1.1,#color=“darkgreen”, #linetype=““)+
labs(x=”Cá lculo del Estadístico de Prueba”, y=“Densidad”)+ scale_y_continuous(labels =
scales::percent_format(scale = .1))+ theme_bw()#+ geom_vline(xintercept = (G), color =
“red”, size=1.5,linetype=“dashed”)+ theme(axis.text.y=element_blank(),
axis.ticks.y=element_blank())

También podría gustarte