Cambio estructural # llamar base de datos attach(data) options(scipen=999) # Convertir serie de tiempo library(tseries) serets = ts(sere, frequency = n, start = c(fecha,inicio)) plot(xts,yts,col = "blue", xlab = "xts", ylab = "yts ") plot(yts, col="red") # 1. Estimar regresión con todos los datos rel = yts ~xts model = lm(rel) summary(model) sse = deviance(model) # 2) Estime los submodelos requeridos #Primer Corte de información model1 = lm(rel, subset= fecha < corte) summary(model1) sse1=deviance(model1) #Segundo Corte de información model2 = lm(rel, subset= fecha >= corte) summary(model2) sse2=deviance(model2) #Convertimos los valores de SSE para todos los casos como lo propone Chow. sser = sse ssenr = sse1 + sse2 # Determinamos los valores de los parámetros y la cantidad de los datos en corte: k = length(coef(model)) j = 2# número de submodelos creados N = nrow(yts) #tota n1 = nrow(datos1) n2 = nrow(datos2) # 5) Aplicamos la fórmula de Fcalculado fc=((sser-ssenr)/k)/((ssenr)/(N-(j*k))) #6) Aplicamos la función de Fteórico alpha = 0.01 ft = qf(alpha,k,N-(j*k),lower.tail=FALSE) # 7) Contrastamos con P_valor pvalue = pf(fc,k,N-(j*k),lower.tail=FALSE) data.frame(fc,ft,pvalue) # test de cusum library(strucchange) cusum = efp(rel, type = c("Rec-CUSUM")) plot(cusum) sctest(rel) #analisis grafico de puntos de corte factibles. breaks = 3 point = breakpoints(rel, h = 0.15) sc = coef(point, breaks = breaks) plot.ts(yts) lines(fitted(point, breaks = breaks), col =4) lines(confint(point, breaks = breaks))