Анализ данных и знаний / 8 лаба / Восьмёрочка
.doct=seq(0, 2100, by=1)
lt = length(t)
u = 210 + 2.1*t
c = 22 + sin(21 + 9.42*t/60)
e = rnorm(lt, 1, 0.105)
y = u*c*e
plot(t,y, type='s',xlab="Время", ylab="Показатель", main="График временного ряда")
#Среднее хронологическое:
ym = (y[1]/2 + y[lt]/2 + sum(y[2:(lt-1)]))/(lt - 1)
[1] 53161.94
#Абсолютные приросты:
dyc = y[2:lt] - y[1:(lt-1)]; dyc = c(NA, dyc)
dyb = y[2:lt] - y[1]; dyb = c(NA, dyb)
dym = y[2:lt] - ym; dym = c(NA, dym)
Видно, что динамика базисных и средних абсолютных приростов одинакова и отличается только абсолютными значениями. Кривые сдвинуты на определённую величину. Динамика цепных абсолютных приростов – существенно иная. Она хаотична и характеризуется ростом амплитуды отклонений со временем, что соответствует методике генерирования исходящего временного ряда.
#Средние абсолютные приросты:
dycm = (dyc[2]/2 + dyc[lt]/2 + sum(dyc[3:(lt-1)]))/(lt - 2)
[1] 45.43247
dybm = (dyb[2]/2 + dyb[lt]/2 + sum(dyb[3:(lt-1)]))/(lt - 2)
[1] 48626.32
dymm = (dym[2]/2 + dym[lt]/2 + sum(dym[3:(lt-1)]))/(lt - 2)
[1] 22.98161
#Темпы роста:
ryc = y[2:lt]/y[1:(lt-1)]; ryc = 100*c(NA, ryc)
ryb = y[2:lt]/y[1]; ryb = 100*c(NA, ryb)
rym = y[2:lt]/ym; rym = 100*c(NA, rym)
Динамика базисных и средних абсолютных устройств подобна и отличается амплитудой колебаний. Показатели пропорциональны друг другу.
#Средние темпы роста:
rycm = prod(ryc[2:lt]^(1/(lt-1)))
[1] 100.1525
rybm = prod(ryb[2:lt]^(1/(lt-1)))
[1] 945.9726
rymm = prod(rym[2:lt]^(1/(lt-1)))
[1] 81.11651
#Темпы прироста:
tyc = ryc - 100
tyb = ryb - 100
tym = rym – 100
plot(t, tyc , type = "l",xlab="Время", ylab="Темпы прироста", main="Темпы прироста", ylim=c(-110,3000), col = 24, pch = 14, lty = 1, lwd = 1)
lines(t, tyb , col = 25, lty = 1, lwd = 1)
lines(t, tym , col = 26, lty = 1,lwd = 1 )
legend(1, 3000, c("Цепные","Базисные","Средние"), cex=1, col=c("24","25","26"), bty = "y", lty=c(1, 1, 1))
Динамика базисных и средних устройств подобна, но в этом случае показатели не пропорциональны, а линейны.
#Средние темпы прироста:
tycm = prod(tyc[2:lt]^(1/(lt-1)))
[1] NaN
tybm = prod(tyb[2:lt]^(1/(lt-1)))
[1] NaN
tymm = prod(tym[2:lt]^(1/(lt-1)))
[1] NaN
Среднее геометрическое определить невозможно т.к. ряды вмещают отрицательные значения.
ayc = ryc[2:lt]/ryc[1:(lt-1)];
ayc = c(NA, ayc); ayc
plot(t, ayc , type = "s",xlab="Время", ylab="Коэффициент ускорения", main="Коэффициент ускорения", col = 6, pch = 7, lty = 1, lwd = 0.1)
Видим, что изменения коэффициента ускорения в основном хаотичное.
#Среднее значение коэффициента ускорения:
aycm = prod(ayc[3:lt]^(1/(lt-1)))
[1] 1.000039
#Таблица значений исследуемых показателей:
ttt = matrix(data = c(t, dyc, dyb, dym, ryc, ryb, rym, tyc, tyb, tym, ayc), ncol= 11, nrow = length(t))
ttt = data.frame(ttt)
names(ttt) = c("Время", "АПЛ", "АПБ", "АПС", "ТЗЛ", "ТЗБ", "ТЗС", "ТРЛ", "ТПБ", "ТПС", "КП")
ttt
#Проверка наличия тренда по критерию восходящих и снисходящих серий:
z = array()
for (i in 2:lt) {
if (y[i] > y[i - 1])
{z[i-1] = 1}
else
{z[i-1] = 0}
}
Z
[1] 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0
[39] 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1
[77] 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0
[115] 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0
[153] 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0
w = 1; l = 1; m = 1
for (j in 2:(lt-1)) {
if (z[j] == z[j-1])
{w = w + 1}
else
{l = max(l,w); w = 1; m = m+1}
}
lc = 7
mc = ((2*lt - 1)/3 -1.96*sqrt((16*lt - 29)/90))
l; m; mc
[1] 5
[1] 1381
[1] 1362.47
Вывод: кол-во серий 1381 и превышает критическое значение 1362. Длинна самой длинной серии равна пяти и является меньшей критического значения 7 для исследуемого ряда. Таким образом выполняются оба условия отсутствия тренда.