R中的多元线性回归

时间:2014-01-21 00:24:17

标签: r regression linear lm

如何在R中执行多个线性回归函数(如lm)以拟合预测规则y = cx ^ a_1x ^ b_2,(其中x1和x2是属性,a,b,c是参数,y是预测标签)我的训练集包括观察((xi,1,xi,2),yi),i = 1,...,n,yi都是正数?

1 个答案:

答案 0 :(得分:3)

阅读你的等式非常困难,但如果你的意思是:

y = c×x 1 a ×x 2 b

然后你有(至少)两个选择:

  1. 使用lm(...)公式:log(y) ~ log(x1) + log(x2)。这将生成截距(log(c))的估计,以及log(x1)log(x2)(分别为a和b)的系数。这种方法存在风险,因为它依赖于响应(在这种情况下为log(y))具有常量方差的正常错误。如果y中的误差在常数方差下是正常的,则log(y)中的误差将不会出现,因此您必须仔细检查残差Q-Q图以查看是否符合该约束。
  2. 直接在非线性模型中使用您的等式,
  3. 例如,

    fit = nls(y ~ c*x1^a*x2^b, data=mydata, start=c(a=1, b=1, c=1))
    

    nls(...)的问题在于,如果a,b和c(此处为1,1,1)的初始估计值与最佳拟合值相差太远,则可能无法收敛。一般来说,我会建议对这类问题进行非线性回归。