Моделирование данных об ошибках для комбинации прогнозов с учетом корреляции между моделями прогнозов

#r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных.

Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов.

 # Load libraries  library(lqmm)  library(MBESS)  library(MASS)  # Simulation of error data given number, variance and correlation among forecasts  fun_scenario lt;- function(seed, no_forecaster, variance_forecaster, correlation_low, correlation_high, population, train, test){    # Make code reproducible / Define seed for sampling data  set.seed(seed)    # Unbiased forecasts  mean_forecaster lt;- rep(0,no_forecaster)    # Define performance of forecasters  variance_forecaster lt;- variance_forecaster    # Define correlation (areas) among forecasts  correlation_forecaster lt;- round(runif(no_forecaster*no_forecaster, correlation_low, correlation_high),2)    # Store correlation values in matrix  correlation_forecaster lt;- matrix(correlation_forecaster, ncol = no_forecaster, nrow = no_forecaster)    # Make matrix symmetric  correlation_forecaster[lower.tri(correlation_forecaster)] = t(correlation_forecaster)[lower.tri(correlation_forecaster)]    # Replace diagonal values with 1  correlation_forecaster lt;- correlation_forecaster   diag(rep(1, no_forecaster)) - diag(diag(matrix(correlation_forecaster, nrow = no_forecaster, ncol = no_forecaster, byrow = TRUE)))    # Correlation matrix must be positive definite for covariance matrix to be positive definite  lqmm::is.positive.definite(correlation_forecaster)    # Approximate next positive-definite correlation matrix   correlation_forecaster lt;- Matrix::nearPD(correlation_forecaster, corr = TRUE)    # Build covariance matrix out of correlation matrix  covariance_forecaster lt;- MBESS::cor2cov(as.matrix(correlation_forecaster$mat), sqrt(variance_forecaster))    # Draw errors from multivariate normal distribution  population_errors lt;- MASS::mvrnorm(n = population, mu = mean_forecaster, Sigma = covariance_forecaster, empirical = TRUE)    # Define size and generate training and test set  n_train lt;- train  n_test lt;- test    sample_indices lt;- sample(seq(1:population), n_train n_test, replace=FALSE);    sample_set lt;- population_errors[sample_indices,]    train_set lt;- sample_set[1:n_train,]  test_set lt;- sample_set[(n_train 1):(n_train   n_test),]    returnlist lt;- list()    returnlist[[1]] lt;- train_set  returnlist[[2]] lt;- test_set  returnlist[[3]] lt;- population_errors    names(returnlist) lt;- c("Train Data", "Test Data", "Population")    return(returnlist)  }            # Function to calculate optimal weights by Bates amp; Granger (1969)  fun_OW_BG lt;- function(train_data){    # Covariance matrix of train data  covariance_matrix lt;- cov(train_data)    # Inverse of covariance matrix  inv_covariance_matrix lt;- solve(covariance_matrix)    # Vectors with 1's  l lt;- as.matrix(as.vector(rep(1,ncol(train_data))))  lt lt;- t(as.vector(rep(1,ncol(train_data))))    # Calculate optimal weights by Bates amp; Granger (1969)  weights lt;- c()    for (i in 1:ncol(inv_covariance_matrix)){  weights[i] lt;- as.numeric((inv_covariance_matrix %*% l)[i]/(lt %*% inv_covariance_matrix %*% l))  }    return(weights)  }      # Doesn't work  data lt;- fun_scenario(123, 10, seq(1,10,1), 0.7, 0.9, 10000, 20, 5000)    # Calculate MSE on test set  MSE lt;- 1/nrow(data
 #r #combinations #simulation #correlation #forecast



Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Test Data`) * sum((data #r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Test Data` %*% fun_OW_BG(data #r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Train Data`))^2) MSE # works data lt;- fun_scenario(123, 10, seq(1,10,1), 0.2, 0.4, 10000, 20, 5000) # Calculate MSE on test set MSE lt;- 1/nrow(data #r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Test Data`) * sum((data #r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Test Data` %*% fun_OW_BG(data #r #combinations #simulation #correlation #forecast

Вопрос:

В настоящее время я использую R для моделирования данных об ошибках, чтобы узнать больше о комбинации прогнозов. Идея заключается в том, что вместо изучения и применения методов прогнозирования я непосредственно моделирую данные об ошибках из многомерного нормального распределения с учетом некоторого количества прогнозов, дисперсии прогнозов и корреляции между прогнозами, изучая оптимальные веса на основе этих ошибок в соответствии с Бейтсом и Грейнджером (1969). Моделирование хорошо работает в областях с низкой корреляцией, но в областях с высокой корреляцией я получаю странные результаты. Хотя оптимальные веса усваиваются только из небольшого набора тренировочных данных и, следовательно, чувствительны к переобучению, веса, полученные из моего тренировочного набора, дают MSE 0 для тестовых данных. Возможно, у кого-то из вас есть идея, есть ли ошибка в процессе моделирования или мне не хватает знаний в комбинации прогнозов, поскольку результат с MSE 0 по тестовым данным может иметь смысл, несмотря на отсутствие доступных данных для обучения и чрезмерно подходящих оптимальных весов. Train Data`))^2) MSE