【问题标题】:How to find fourth and fifth regression coefficients in R?如何在R中找到第四和第五个回归系数?
【发布时间】:2015-04-11 14:30:36
【问题描述】:

我想计算5 回归系数。我通过互联网搜索,但没有找到任何相关信息。 我的数据:

    y=c(2,13,0.4,5,8,10,13)
    x=c(2,13,0.004,5,8,1,13)
    z=c(2,3,0.004,15,8,10,1)

正规方程:

   y=a1x+a2z+a3

x,z,自变量,y是因变量,a1 a3,a2是模型的参数。

这个方程的正态拟合::

       fit=lm(y~x+z)

但我的方程式看起来像:

      y=((a1x+a2z+a3)^a4)+a5

我的问题是我们如何在上面显示的方程中找到该模型的其他参数 a4a5(constant)。我应该在 R 中使用什么来找到它们?

【问题讨论】:

  • 看看?nls
  • 我想这个问题更适合stats.stackexchange.com,因为它是一个基于统计/模型的问题,没有编程问题
  • sacvf,你给出的模型方程非线性的。
  • nls 中的示例展示了如何拟合您的公式。你试过吗?或多或少您必须将= 替换为~,添加数据、初始参数并希望默认算法能够通过优化处理。 :)

标签: r regression


【解决方案1】:

下面使用optim会怎么样?

f <- function(p){
          sum((y - (p[1]*x+p[2]*z+p[3])^p[4]+p[5])^2)
     }

p <- optim(rep(.5, 5), f)$par
p
[1]  3.5539397  0.8423521  0.1872422  0.6287906 -0.1863242

所以,a5-0.1863242。拟合值如下:

plot(seq_along(y), y)
lines((p[1]*x+p[2]*z+p[3])^p[4]+p[5])

【讨论】:

  • 为了最小化残差平方和。这些是您的响应和拟合值之间的差异。
  • 它们是优化的五个参数的起始值
  • 结果估计值可能因起始值而异。这是非线性估计的缺点。您可以使用参数maxit 控制迭代次数
  • 您忘记将 p 作为参数包含在您的函数中
猜你喜欢
  • 2013-10-04
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多