Поделиться через


series_periods_validate()

Проверяет, содержит ли временной ряд периодические шаблоны заданной длины.

Часто метрика, измеряющая трафик приложения, характеризуется еженедельным или ежедневным периодом. Этот период можно подтвердить, выполнив series_periods_validate() проверку еженедельного и ежедневного периодов.

Синтаксис

series_periods_validate(Серии,period1 [ ,period2, . . . ] )

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
Серии dynamic ✔️ Массив числовых значений, обычно это выходные данные операторов make-series или make_list .
period1, period2 и т. д. real ✔️ Периоды для проверки в единицах размера ячейки. Например, если ряд находится в ячейках 1h, еженедельный период составляет 168 ячеек. Требуется по крайней мере один период.

Важно!

  • Минимальное значение для каждого из параметров периода равно 4 , а максимальное — половину длины входного ряда. Для аргумента точки за пределами этих границ оценка выходных данных будет иметь значение 0.
  • Входные временные ряды должны быть регулярными, то есть агрегированными в константных ячейках, и это всегда происходит, если они были созданы с помощью make-series. В противном случае выходные данные не имеют смысла.
  • Функция принимает до 16 периодов для проверки.

Возвращаемое значение

Функция выводит таблицу с двумя столбцами:

  • periods: динамический массив, содержащий точки для проверки, указанные во входных данных.
  • scores: динамический массив, содержащий оценку от 0 до 1. Оценка показывает значение точки в соответствующей позиции в массиве периодов .

Пример

Следующий запрос внедряет snapshot месячного трафика приложения, агрегированное два раза в день (размер ячейки составляет 12 часов).

print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y  
| render linechart

Периоды рядов.

Если запустить series_periods_validate() эту серию для проверки еженедельного периода (14 точек в длину), это приведет к высокой оценке и с оценкой 0 при проверке пятидневного периода (10 баллов).

print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y  
| project series_periods_validate(y, 14.0, 10.0)

Выходные данные

series_periods_validate_y_periods series_periods_validate_y_scores
[14.0, 10.0] [0.84, 0.0]