Анализ ежедневных / недельных данных с использованием ts в R - PullRequest
17 голосов
/ 09 декабря 2011

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

Мне кажется, что класс ts не очень подходит для анализа ежедневных или еженедельных данных. Почти во всех примерах, которые я вижу в Интернете или в «Вводном временном ряду Каупертвейта и Меткалфа с R», используются месячные или годовые данные.

Я хотел бы использовать ts для анализа еженедельных данных, не рекомендуется ли?

Ответы [ 5 ]

11 голосов
/ 09 декабря 2011

Основная проблема заключается в том, что большинство людей, которые хотят анализировать ежедневные или еженедельные данные, хотят делать что-то вроде использования частоты 365 дней в году или 52 недель в году, но количество дней или недель в году не равно 365 или52 или даже постоянная.Если вы отбрасываете один день в високосные годы, например, для ежедневных данных, или используете 7 дней для каждой недели года, за исключением одного, у которого есть 8 или 9 дней, например, для еженедельных данных, то вы можете использовать его для подделки.Возможно бесконечное разнообразие схем.

Прочитайте эту ветку для примера.

9 голосов
/ 09 декабря 2011

Класс ts подходит для любого типа данных, которые имеют строго метрономические интервалы между наблюдениями.Будь то интервал лет, месяцев, дней, минут, не имеет значения.Это делает его очень подходящим для многих научных данных, например, для наблюдений за погодой.

Однако у большого класса связанных со временем данных есть пробелы.Возьмем, к примеру, цены закрытия акций, которых нет в выходные дни.Для данных этого типа вам лучше использовать пакеты xts (расширяемый временной ряд) или zoo (упорядоченные наблюдения Z - где Z - инициал одного из авторов пакета).

Ссылки на CRAN:

5 голосов
/ 23 декабря 2011

Зоопарк хорошо работает с ежедневными данными.Например, если у вас был ежедневный ряд потоковых потоков в векторе Q и с соответствующими отметками даты D (например, созданные с использованием as.Date ()).

Qz <- zoo (Q, order.by = D) </p>

создаст объект, который будет красиво отображаться, и вы можете использовать функции, такие как window (), для извлечения отдельных лет, например

окно (Qz, start = as.Date ('2000-01-01'), end = as.Date ('2000-31-12')

Проверьте пакет Zoo для получения дополнительной информации.

3 голосов
/ 09 декабря 2011

единица времени не входит в игру; только количество точек данных на единицу (частоту). Что касается ts и его функций, то день - год, десятилетие - что угодно. Ни в коем случае вы не говорите ему, что время, до которого он имеет дело, - неделя или день. Это не имеет значения!

1 голос
/ 09 декабря 2011

Я полагаю, что проблема с ежедневными / еженедельными данными заключается в том, что оба имеют скачкообразные единицы.Каждый четвертый год имеет еще 366 дней, а каждый четвертый - 53 недели.Или имеет с 1900 года. Таким образом, «частота» либо не постоянная, ни дробная.В противном случае ts должен работать просто отлично.

Самый простой способ обходить недели - использовать дату начала недели.В unix-подобных системах вы также можете использовать недели ISO, а также есть пакет, который их реализует.Конечно, если ваши данные уже через несколько недель, они нужны только для маркировки графиков и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...