在R中,我有两组数据。一个显示每隔几年的事件,例如2002、2007和2009。然后,我还有另一组数据显示每年的活动计数,即2002、2003 ... 2009、2010。是否有一种运行方式两者之间是否存在R相关性测试,以查看活动水平是否与事件相关?
例如:
立法于2002年,2007年和2009年获得通过。然后,我们可以获得每年的投诉数量:
Year, n_complaints
2002, 100
2003, 50
2004, 75
2005, 60
2007, 120
2008, 30
2009, 75
2010, 110
然后我想回答一个问题:法案的通过与投诉数量有何关系?有相关测试可以回答这个问题吗?
答案 0 :(得分:0)
您可能会找到数百种计量经济学技术(尤其是在时间序列文献中)来回答此类问题,但是不幸的是,您的数据集太短了,无法确定任何确定的内容。让
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项。但是,该影响在统计上并不显着。这并不奇怪,因为此效果与之前看到的相关系数之间存在良好的关系。
要研究的其他内容可能是不同类型的效果(瞬时,永久或衰减)。另外,您应该首先考虑相关性可能为正的其他可能因素,因为也许现在我们看到了一些虚假的东西。
因此,使用此数据无法真正令人信服。在您的情况下,可能有可能尝试获取同一时期内投诉数量的季度或每月数据。