У меня есть проект на R, но я столкнулся с некоторыми трудностями. Я действительно хочу запустить модель локального уровня для скорости роста смертей от пандемии c без использования structTS или любого другого готового пакета для моделей временных рядов. Я хочу найти ошибку прогноза, используя фильтр Калмана и более гладкий, и принять их в качестве входных данных для регрессии, которую я хочу запустить. Ниже вы можете увидеть код для фильтра Калмана, который я уже написал, но я не знаю, как инициализировать дисперсии состояния и уравнения наблюдения. В данных по реке Нил Дурбина и Купмана они начинаются с оценок, которые получаются путем максимизации концентрированной функции правдоподобия. На фотографиях видно, что я имею в виду. Начальные значения var epsilon и var eta равны 15099 и 1469. Для имеющихся у меня данных я хочу оценить var epsilon и q, как указано на фотографии, а затем использовать эти инициализации в качестве входных данных для фильтра Калмана и сглаживания. Есть ли у кого-нибудь из вас представление о том, как оценить q в R, используя концентрированную логарифмическую функцию правдоподобия 2,63? Спасибо за ваше время.
a_ini = 0 p_ini = 10^7
var_eps = 0.01
var_eta = 0.01
a_filtered = c()
p_t = c()
v_t = c()
k_t = c()
f_t = c()
a = a_ini
p = p_ini
for(t in 1:NROW(covid6)){
if(t == 1){
a_filtered[t] = a_ini
p_t[t] = p_ini
} else {
a_filtered[t] = a_filtered[t-1] + k_t[t-1]*v_t[t-1]
p_t[t] = k_t[t-1]*var_eps + var_eta
}
v_t[t] = (covid6[[t,"new_deaths"]])- a_filtered[t]
f_t[t] = p_t[t] + var_eps
k_t[t] = p_t[t]/f_t[t]
}
л