Сравнение двух кривых для различия в тренде - PullRequest
0 голосов
/ 22 марта 2020

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

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

введите описание изображения здесь

1 Ответ

0 голосов
/ 22 марта 2020

Поскольку описание в вопросе не соответствует данным, так как нет информации о поле, мы будем исходить из того, что мы хотим определить, совпадают ли тенденции незаконного и iv.

Сравнение трендов

Обратите внимание, что нет автокорреляции в отклоненных значениях iv или illicit, поэтому мы будем использовать обычные линейные модели.

iv <- c(0.4, 0.3, 0.4, 0.3, 0.2, 0.2)
illicit <- c(5.5, 5.7, 4.8, 4.7, 6.1, 5.3)
time <- 2011:2016

ar(resid(lm(iv ~ time)))
## Call:
## ar(x = resid(lm(iv ~ time)))
##
## Order selected 0  sigma^2 estimated as  0.0024

ar(resid(lm(illicit ~ time)))
## Call:
## ar(x = resid(lm(illicit ~ time)))
##
## Order selected 0  sigma^2 estimated as  0.287

Создать кадр данных 12x3 long со столбцами time, value и ind (iv или illicit). Затем запустите линейную модель с двумя уклонами, а другую - с одним уклоном. Оба имеют два перехвата. Затем сравните их, используя anova. Очевидно, что они незначительно отличаются, поэтому мы не можем отвергнуть гипотезу о том, что склоны одинаковы.

wide <- data.frame(iv, illicit)
long <- cbind(time, stack(wide))

fm2 <- lm(values ~ ind/(time + 1) + 0, long)
fm1 <- lm(values ~ ind + time + 0, long)
anova(fm1, fm2)

, что дает:

Analysis of Variance Table

Model 1: values ~ ind + time + 0
Model 2: values ~ ind/(time + 1) + 0
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1      9 1.4629                           
2      8 1.4469  1  0.016071 0.0889 0.7732

Сравнение модели с уклонами с моделью без уклонов

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

fm0 <- lm(values ~ ind + 0, long)
anova(fm0, fm2)

, дающей:

Analysis of Variance Table

Model 1: values ~ ind + 0
Model 2: values ~ ind/(time + 1) + 0
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     10 1.4750                           
2      8 1.4469  2  0.028143 0.0778 0.9258

или с пошаговой регрессией, мы обнаружим, что ее предпочтительной моделью является модель с двумя перехватами и без уклонов:

step(fm2)

давая:

Start:  AIC=-17.39
values ~ ind/(time + 1) + 0

           Df Sum of Sq    RSS     AIC
- ind:time  2  0.028143 1.4750 -21.155
<none>                  1.4469 -17.386

Step:  AIC=-21.15
values ~ ind - 1

       Df Sum of Sq     RSS     AIC
<none>                1.475 -21.155
- ind   2    172.28 173.750  32.073

Call:
lm(formula = values ~ ind - 1, data = long)

Coefficients:
     indiv  indillicit  
      0.30        5.35  

log преобразованные значения

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

fm2log <- lm(log(values) ~ ind/(time + 1) + 0, long)
fm1log <- lm(log(values) ~ ind + time + 0, long)

anova(fm1log, fm2log)

, давая:

Analysis of Variance Table

Model 1: log(values) ~ ind + time + 0
Model 2: log(values) ~ ind/(time + 1) + 0
  Res.Df     RSS Df Sum of Sq      F  Pr(>F)  
1      9 0.35898                              
2      8 0.18275  1   0.17622 7.7141 0.02402 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...