如何在R中拟合像的回归?


9

我有一些时间序列数据,其中测得的变量是离散的正整数(计数)。我想测试一下是否随着时间的推移出现上升趋势(或没有)。自变量(x)的范围是0-500,因变量(y)的范围是0-8。

我以为我可以通过y = floor(a*x + b)使用普通最小二乘法(OLS)拟合形式的回归来回答这个问题。

我将如何使用R(或Python)执行此操作?是否有现有的程序包,还是最好编写自己的算法?

PS:我知道这不是理想的技术,但是我需要做一个我可以理解的相对简单的分析-我的背景是生物学而不是数学。我知道我违反了有关测量变量误差以及测量随时间变化的独立性的假设。


5
尽管尝试这种形式的回归在数学上很自然,但是在其背后却隐藏着一个统计错误:错误项现在将与预测值紧密相关。这是对OLS假设的强烈违反。相反,请使用Greg Snow的回复所建议的基于计数的技术。(不过,我很高兴提出这个问题,因为它反映了一些真实的思想和聪明。谢谢您在这里提出问题!)
whuber

Answers:


11

您可以使用中的nls(非线性最小二乘)函数拟合您所陈述的模型R,但是正如您所说的那样,这将违反许多假设,而且可能仍然没有多大意义(您说的是预测结果在一个步骤中是随机的函数,而不是围绕平稳增长关系的整数值)。

拟合计数数据的更常见方法是使用帮助中的glm函数进行R泊松回归,帮助页面上的第一个示例是泊松回归,但是如果您不太熟悉统计信息,最好咨询统计学家以确保您做事正确。

如果8的值是绝对最大值(不可能看到更高的计数,而不仅仅是您看到的),那么您可以考虑按比例赔率进行逻辑回归,对于R,您可以在软件包中使用以下几种工具如果您想这样做,确实应该让统计学家参与。


“您是说预测的结果是围绕阶跃函数随机的,而不是围绕平稳增长的关系的整数值” ---我没有考虑过这一点。最后,我通过glm进行了Poisson回归。它不是理想的选择,但是满足我的需求就足够了。
afaulconbridge 2012年

10

很明显,格雷格的建议是第一件事:泊松回归是许多具体模型中的自然模型情况。

但是,您建议的模型可能会出现,例如,当您观察到四舍五入的数据时: 具有iid正常错误。

Yi=axi+b+ϵi,
ϵi

我认为看看可以用它做什么是很有趣的。我用表示标准正态变量的cdf。如果,则 使用熟悉的计算机符号。FϵN(0,σ2)

P(ax+b+ϵ=k)=F(kb+1axσ)F(kbaxσ)=pnorm(k+1axb,sd=σ)pnorm(kaxb,sd=σ),

您观察到数据点。对数似然由 这与最小二乘法不同。您可以尝试使用数值方法使其最大化。这是R中的插图:(xi,yi)

(a,b,σ)=ilog(F(yib+1axiσ)F(yibaxiσ)).
log_lik <- function(a,b,s,x,y)
  sum(log(pnorm(y+1-a*x-b, sd=s) - pnorm(y-a*x-b, sd=s)));

x <- 0:20
y <- floor(x+3+rnorm(length(x), sd=3))
plot(x,y, pch=19)
optim(c(1,1,1), function(p) -log_lik(p[1], p[2], p[3], x, y)) -> r
abline(r$par[2], r$par[1], lty=2, col="red")
t <- seq(0,20,by=0.01)
lines(t, floor( r$par[1]*t+r$par[2]), col="green")

lm(y~x) -> r1
abline(r1, lty=2, col="blue");

圆形线性模型

在红色和蓝色中,分别通过此可能性的数值最大化和最小二乘找到的线。绿色楼梯为从最大似然发现......这表明,你可以使用最小二乘法,最多的译文 0.5,并得到大致相同的结果; 或者,最小二乘方很好地拟合了模型 其中是最接近的整数。经常遇到四舍五入的数据,以至于我确信这是已知的,并且已经进行了广泛的研究。ax+bax+ba,bb

Yi=[axi+b+ϵi],
[x]=x+0.5

4
+1我喜欢这项技术,实际上是在几年前向风险分析杂志提交了一篇论文。(一些风险分析家对区间值数据非常感兴趣。)该数据被受众认为是“过于数学化”的而被拒绝。:-(一个提示:。用数值方法时,它总是一个好主意,好供给的初始值的解决方案考虑申请OLS原始数据来获得这些值,然后在“抛光”他们用数值优化
whuber

是的,这是一个好建议。实际上,在那种情况下,我选择远程值来强调“有效”,但实际上,您的建议将是避免从非常平坦的区域开始的唯一解决方案,具体取决于数据...
Elvis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.