【问题标题】:Comparing two curves for difference in trend比较两条曲线的趋势差异
【发布时间】:2020-03-23 01:13:55
【问题描述】:

我有一些关于全州药物使用随时间变化趋势的数据。我想知道随着时间的推移,静脉吸毒的性别差异与所有娱乐性吸毒的性别差异是否发生了变化。

我的数据如下。我想我可能需要使用时间序列分析,但我不确定。任何帮助将非常感激。

enter image description here

【问题讨论】:

  • 请不要发布代码/数据/错误的图像:它不能被复制或搜索 (SEO),它会破坏屏幕阅读器,并且它可能不适合某些移动设备。参考:meta.stackoverflow.com/a/285557/3358272(和xkcd.com/2116)。请直接包含代码、控制台输出或数据(例如,dput(head(x))data.frame(...))。
  • 我们在您的图片中看不到性别、静脉注射、娱乐或时间信息。您的图片看起来更像是对某事的摘要。

标签: r statistics


【解决方案1】:

由于问题中的描述与数据不匹配,因为没有关于性别的信息,我们将假设我们想要确定非法和 iv 的趋势是否相同。

比较趋势

请注意,ivillicit 的去趋势值没有自相关,因此我们将使用普通线性模型。

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,其中包含 timevalueind 列(ivillicit)。然后运行具有两个斜率和另一个具有一个斜率的线性模型。两者都有两个拦截。然后使用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(values),我们同样找不到自相关(未显示),但我们确实发现 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

【讨论】:

    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2011-01-31
    • 2021-06-17
    • 1970-01-01
    • 2013-07-09
    • 2018-03-24
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多