Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kalman filter #80

Open
fleur0911 opened this issue May 6, 2024 · 1 comment
Open

Kalman filter #80

fleur0911 opened this issue May 6, 2024 · 1 comment

Comments

@fleur0911
Copy link

I want to make quarterly gini data from yearly gini data with a VAR and a Kalman filter. By doing this, I get an error. What do I have to change?
Browse[4]> # Creëer een VAR-model met de variabelen die je wilt gebruiken voor voorspellingen
Browse[4]> data_var_kalman <- nieuwe_dataset_var_1[, c("log_GDP", "log_eurostoxx", "log_labourcostindex", "log_employment", "log_hicp", "log_gini_disp")]
Browse[4]> # Verwijder rijen met ontbrekende waarden
Browse[4]> data_var_no_na <- na.omit(data_var_kalman)
Browse[4]> # Stel het aantal lags in voor het VAR-model
Browse[4]> lags <- 1
Browse[4]> # Creëer het VAR-model
Browse[4]> var_model_kalman <- VAR(data_var_no_na, p = lags)
Browse[4]> # Voorspel de ontbrekende waarden van log_gini_disp met behulp van het VAR-model
Browse[4]> predicted_gini_kalman <- predict(var_model_kalman, n.ahead = sum(missing_indices))$fcst$log_gini_disp[, 1]
Browse[4]> # Controleer of er ontbrekende waarden zijn in de voorspellingen
Browse[4]> if (any(is.na(predicted_gini_kalman))) {

  • Voer een alternatieve voorspelling uit of neem andere maatregelen

  • (bijvoorbeeld vervanging door gemiddelde, lineaire interpolatie, etc.)

  • stop("Er zijn ontbrekende waarden in de voorspellingen.")
  • } else {
  • Converteer predicted_gini_kalman naar een tijdreeksobject

  • predicted_gini_ts <- ts(predicted_gini_kalman)
  • Initialiseer het staatsspace-model voor de Kalman-filter

  • model_kalman <- SSModel(predicted_gini_ts ~ SSMtrend(1))
  • Debug: bekijk het type van model_kalman

  • print(class(model_kalman))
  • Controleer of het staatsspace-model correct is gedefinieerd

  • if (!is.SSModel(model_kalman)) {
  • stop("Het staatsspace-model is niet correct gedefinieerd.")
    
  • }
  • Schat de parameters van het Kalman-filtermodel met initiële schattingen

  • kf_fit <- fitSSM(model_kalman, inits = c(0, 0.01)) # Voorbeeld initiële schattingen
  • Voorspel de ontbrekende waarden van log_gini_disp met behulp van de Kalman-filter

  • smoothed_values <- KFS(kf_fit)$smoothed$state[, 1]
  • }
    debug at Problem to set a state space model #7: predicted_gini_ts <- ts(predicted_gini_kalman)
    Browse[5]> if (!inherits(model_kalman, "SSModel")) {
  • stop("Het staatsspace-model is niet correct gedefinieerd.")
  • }
    Browse[5]> kf_fit <- fitSSM(model_kalman, inits = c(0, 0.01)) # Voorbeeld initiële schattingen
    Browse[5]> smoothed_values <- KFS(kf_fit)$smoothed$state[, 1]
    Error during wrapup: Object is not of class 'SSModel'
    Error: no more error handlers available (recursive errors?); invoking 'abort' restart
@helske
Copy link
Owner

helske commented May 7, 2024

That copy paste is not very helpful, please provide a minimal reproducible example, see, e.g., https://forum.posit.co/t/faq-whats-a-reproducible-example-reprex-and-how-do-i-create-one/5219

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants