Вы можете найти сотни эконометрических методов (особенно в литературе о временных рядах) для ответа на такие вопросы, но, к сожалению, ваш набор данных слишком короткий, чтобы сказать что-то определенное. Пусть
df$legislation <- ifelse(df$Year %in% c(2002, 2007, 2009), 1, 0)
, который является типичным способом определения переменных для таких событий. Опять же, если бы у вас было больше данных, вы могли бы проверить влияние каждого законодательства в отдельности.
Всегда хорошая идея сначала построить данные
with(df, plot(x = Year, y = n_complaints, type = 'b', pch = legislation + 1))
, где в данном случае треугольники соответствуют новым законам. Таким образом, можно предположить, что количество жалоб увеличивается до и / или уменьшается сразу после принятия нового законодательства, но это всего лишь предположение.
Нетрудно взглянуть на коэффициент корреляции и проверить его равенство нулю
with(df, cor.test(n_complaints, legislation))
#
# Pearson's product-moment correlation
#
# data: n_complaints and legislation
# t = 1.6455, df = 6, p-value = 0.151
# alternative hypothesis: true correlation is not equal to 0
# 95 percent confidence interval:
# -0.2422314 0.9062091
# sample estimates:
# cor
# 0.5576247
Итак, коэффициент равен 0,55, что звучит довольно обнадеживающе, но из-за размера выборки доверительный интервал огромен, и мы не можем отклонить ноль, что на самом деле корреляции нет.
Как я уже говорил, было бы интересно посмотреть на динамику этих временных рядов. ccf
соответствует взаимным корреляциям, когда мы сдвигаем временной ряд во времени и видим, есть ли какая-либо корреляция при опережении и отставании ряда.
ccf(df$n_complaints, df$legislation)
Итак, корреляции (лаги -1, 0 и 1) показывают то же, что и на первом графике: потенциальная тенденция уменьшения количества жалоб до и после принятия нового законодательства. Но это без какой-либо определенности.
Наконец, то же самое можно увидеть при оценке модели линейной регрессии. Например,
summary(lm(n_complaints ~ legislation, data = df))
#
# Call:
# lm(formula = n_complaints ~ legislation, data = df)
#
# Residuals:
# Min 1Q Median 3Q Max
# -35.000 -17.083 -1.667 12.917 45.000
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 65.00 12.41 5.240 0.00194 **
# legislation 33.33 20.26 1.645 0.15097
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 27.74 on 6 degrees of freedom
# Multiple R-squared: 0.3109, Adjusted R-squared: 0.1961
# F-statistic: 2.708 on 1 and 6 DF, p-value: 0.151
Следовательно, действие законодательства является положительным, предполагая, что в тот же период оно добавляет 33,33 дополнительных жалоб, при этом среднее значение составляет 65. Однако эффект не является статистически значимым. Это не удивительно, поскольку между этим эффектом и коэффициентом корреляции, замеченным ранее, есть хорошая связь.
Другие вещи, на которые стоит обратить внимание, - это различные виды эффектов (мгновенные, постоянные или затухающие). Также вы должны сначала принять во внимание другие возможные факторы, почему корреляция может быть положительной, потому что, возможно, теперь мы видим что-то поддельное.
Итак, нет ничего действительно убедительного, что можно сделать с этими данными. Возможно, в вашем случае возможно будет попытаться получить квартальные или ежемесячные данные о количестве жалоб за тот же период времени.