#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