Хобрук: Ваш путь к мастерству в программировании

Вмененные прогнозы для отсутствующих данных временного ряда почти стационарны (плоская линия)

У меня есть данные об игроках с течением времени, в которых отсутствует количество игроков за несколько лет. Я пытаюсь заполнить/предсказать отсутствующие данные о подсчете игроков за разные промежутки времени.

Данные доступны здесь: https://1drv.ms/u/s!AvEZ_QPY7OZuhJAlKJN89rH185SUhA

Я следую приведенным ниже инструкциям, которые используют KalmanRun для вменения пропущенных значений. Я пробовал 3 разных подхода к преобразованию данных - с использованием объекта xts и 2 подхода к его преобразованию в данные временных рядов.

https://stats.stackexchange.com/questions/104565/how-to-use-auto-arima-to-impute-missing-values

require(forecast)
library(xts)
library(anytime)
library(DescTools)

df_temp = read.csv("r_share.csv")
df_temp[['DateTime']] <- as.Date(strptime(df_temp[['DateTime']], format='%Y-%m-%d %H:%M:%S'))

3 подхода к конвертации данных; xts работает лучше всего, возвращая ненулевые данные, которые можно интерпретировать.

#Convert df_temp to TimeSeries object

df_temp = xts(df_temp$Players, df_temp$DateTime)
#df_temp = as.ts(log(df_temp$Players), start = start(df_temp$DateTime), end = end(df_temp$DateTime), frequency = 365)
#df_temp = ts(df_temp$Players, start = c(2013, 02, 02), end = c(2016, 01, 31), frequency = 365)

Подгонка и зарисовка:

fit <- auto.arima(df_temp, seasonal = TRUE)
id.na <- which(is.na(df_temp))

kr <- KalmanRun(index(df_temp), fit$model, update = FALSE)

#?KalmanRun$tol

for (i in id.na)
  df_temp[i] <- fit$model$Z %*% kr$states[i,]

plot(df_temp)

Ожидаемый результат — это данные, которые имитируют изменчивость фактических данных и различаются для каждого интервала, в то время как фактический результат является относительно постоянным и неизменным (оба интервала имеют почти одинаковый прогноз).


Ответы:


1

Это должно быть с моделью arima()?.
Может быть, вы могли бы попробовать другую модель, разработанную Facebook, под названием Prophet.
Здесь вы можете найти руководство и страница github .

Если я понял, что вы хотите что-то вроде этого:

# Import library

library(prophet)

# Read  data
df = read.csv("C:/Users/Downloads/r_share.csv",sep = ";")

# Transform to date
df["DateTime"] = as.Date(df$DateTime,format = "%d/%m/%Y")

# Change names for the model
colnames(df) = c("ds","y")

# call model
m = prophet(df)


# make "future" just one day greater than past
future = make_future_dataframe(m,periods = 1)

# predict the points
forecast = predict(m,future)

# plot results
plot(m,forecast)

сюжет

26.06.2019
  • Извините, я действительно работал с пророком в прогнозировании временных рядов до сих пор. Я подумал, что это будет хорошим советом для тебя. Каждая модель будет иметь свои особенности, arima очень часто используемая модель, с нее приятно начинать. 26.06.2019
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..