2014-01-21 66 views
0

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

回答

3

这是非常难读你的公式,但如果你的意思是:

Ÿç× X 一个你有(至少= × X 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. 直接在非线性模型用你的公式,

例如,

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)离最佳拟合值太远。一般来说,我会为这类问题推荐非线性回归。