evolve_gbmdl: Generate a list of candidate changepoints using a genetic...

View source: R/segment_coen.R

evolve_gbmdlR Documentation

Generate a list of candidate changepoints using a genetic algorithm

Description

Generate a list of candidate changepoints using a genetic algorithm

Usage

evolve_gbmdl(x, mat_cp, these_bmdls)

junta_1_puntos_cambio(padres, mat_cp)

junta_k_puntos_cambio(mat_padres, mat_cp)

mata_1_tau_volado(cp, prob_volado = 0.5)

mata_k_tau_volado(mat_cp)

muta_1_cp_BMDL(
  cp,
  x,
  probs_nuevos_muta0N = c(0.8, 0.1, 0.1),
  dist_extremos = 10,
  min_num_cpts = 1,
  mutation_possibilities = c(-1, 0, 1),
  mutation_probs = c(0.3, 0.4, 0.3),
  max_num_cp = 20
)

muta_k_cp_BMDL(mat_cp, x)

sim_1_cp_BMDL(x, max_num_cp = 20, prob_inicial = 0.06)

sim_k_cp_BMDL(x, generation_size = 50, max_num_cp = 20)

probs_vec_MDL(vec_MDL, probs_rank0_MDL1 = 0)

selec_k_pares_de_padres(vec_probs)

chromo2tau(chromo)

mat_cp_2_list(mat_cp)

Arguments

x

A time series object

mat_cp

A matrix of potential changepoints

these_bmdls

vector of BMDL() scores

padres

vector de longitud dos con índice de papa e índice de mama

mat_padres

matriz de kx2 la cual contiene en sus renglones las parejas de padres

cp

vector cromosoma que se va a poner a prueba

prob_volado

probabilidad de quitar un tiempo de cambio existente utilizado por mata_k_tau_volado para quitar elementos de más. Se recomienda dejar el valor de 0.5 ya que así al juntar los pc del padre y madre se eliminará la mitad de estos

probs_nuevos_muta0N

probabilidades de mutar 0,1,2,...,l hasta cierto numero l; eg si vale c(.5,.2,.2,.1) se tiene una probabilidad 0.5 de mutar 0 (de no mutar), probabilidad 0.2 de mutar 1,, probabilidad 0.2 de mutar 2, y, probabilidad 0.1 de mutar 3.

dist_extremos

distancia entre el primer los puntos de cambio v_0 y v_1 al igual que entre v_m y v_{m+1}; distancia minima que debe de haber de un punto de cambio y los valores 1 y T, donde T es la longitud total de la serie

min_num_cpts

es la cota inferior del número de puntos de cambio que puede tener un cromosoma

mutation_possibilities

vector con mutaciones posibles; eg si mutaciones=c(-1,0,1) entonces un punto de cambio puede ser movido una unidad a la izquierda, puede quedarse igual, o moverse una unidad a la derecha

mutation_probs

probabilidades de mutación. Las longitudes de este vector y mutaciones tienen que ser iguales; eg si mutaciones=c(-1,0,1) y probs_muta = c(.2, .6, .2) entonces se tiene una probabilidad .2 de que el punto de cambio se desplace a la izquierda, probabilidad .6 de quedar igual, y probabilidad . 2 de ser movido a la derecha

max_num_cp

el máximo número de rebases. Este parámetro se ocupa en particular para que todos los cromosomas quepan en una matriz.

prob_inicial

probabilidad de que en la primera generación un punto cualquiera sea punto de cambio. Se recomienda =.5 ya que con esto se distribuyen relativamente uniformes los puntos de cambio

generation_size

tamaño de las generaciones

vec_MDL

vector con valores MDL

OBSERVACIÓN: Esto regresa numeros negativos, los cuales mientras más negativo mejor, ya que dará que es un mejor vector de tiempos de cambio. Es decir, un MDL de -6000 es mejor que -4000

probs_rank0_MDL1

para medir obtener la probabilidad de los padres se pueden tomar o las probabilidades con respecto a los rangos (como en el artículo) o se pueden tomar las probabilidades con respecto a el MDL. La diferencia radica en que si se toma con respecto al MDL se tendrá que un cromosoma con un gran MDL este tendrá una gran ventaja de ocurrir, en cambio cuando solo se tiene rank esta ventaja gran ventaja se reduce

vec_probs

vector de probabilidades de selección de cada uno de los cromosomas

chromo

Chromosome, from a row of the matrix mat_cp

Details

regresa un vector de tamaño max_num_cp+3 donde la primera entrada es m, la segunda v_0=1, ...., v_{m+1}=N,0,...,0

por ejemplo: c(4,1,3,8,11,15,20,0,0,0,0) para m=4, max\_num\_cp=8, N=20. Se tienen m puntos de cambio, los cuales \tau_0=1 y \tau_{m+1}= N+1, pero en nuestro caso tenemos que los vectores cp tienen c(m,\tau_0=1,\tau_1,...,\tau_{m-1},\tau_m= N,0,0,0) por lo cual se nosotros:

  • empieza con el número de puntos de cambio;

  • la segunda entrada es un uno;

  • la tercera entrada es el primer punto de cambio;

  • las siguientes son otros puntos de cambio;

  • la siguiente entrada después de punto de cambio tiene el valor N; y

  • los siguientes son númores cero hasta llenarlo para que sea de tamaño max_num_cp

Value

regresa una matriz de las mismas dimensiones que mat_cp, pero con los nuevos cromosomas

el mismo cromosoma sin algunos de sus puntos de cambio

regresa una matriz a la cual se le quitaron a sus cromosomas algunos puntos de cambio

regresa un vector mutado

regreas una mat_cp mutada

regresa una matriz de k por max_num_cp+3, la cual en cada renglón tiene una simulación de un vector de tiempos de cambio

regresa un vector de probabilidades

Examples

mat_cp <- sim_k_cp_BMDL(DataCPSim)
bmdls <- mat_cp |> 
  mat_cp_2_list() |> 
  evaluate_cpts(.data = as.ts(DataCPSim), model_fn = fit_nhpp) |> 
  dplyr::pull(BMDL)
evolve_gbmdl(exceedances(DataCPSim), mat_cp, bmdls)
sim_1_cp_BMDL(exceedances(DataCPSim))
sim_1_cp_BMDL(exceedances(rlnorm_ts_1))
sim_1_cp_BMDL(exceedances(rlnorm_ts_2))
sim_1_cp_BMDL(exceedances(rlnorm_ts_3))
sim_1_cp_BMDL(exceedances(bogota_pm))

sim_k_cp_BMDL(DataCPSim)

chromo <- c(4, 1, 557, 877 , 905, 986, 1096, 0, 0, 0)
chromo2tau(chromo)

tidychangepoint documentation built on April 4, 2025, 4:31 a.m.