【发布时间】:2017-09-04 01:28:12
【问题描述】:
我正在尝试按照 Nolan 和 Hitt (2006) 的方法来预测井中的硝酸盐浓度(井 = STNM,Y = 硝酸盐浓度)。以下是我正在使用的一些预测变量。 X 代表氮负荷变量(例如,肥料负荷、化粪池),Z 代表运输变量(例如,土壤 Ksat),z 代表衰减(例如,土壤碳、湿地百分比)。
这是一个带有非线性乘法项的线性子模型:
Y = sum(xi*bi) * sum(exp(Zi*ai)) * sum(exp(xi*di))
其中 b、a 和 d 是参数。我有 8 个 X 变量和参数,5 个 Z 变量和参数,以及 5 个 z 变量和参数。下面是我的数据头示例(不包括 Z3-5 或 z1-5)。
STNM Y X1 X2 X3 X4 X5 X6 X7 X8 Z1 Z2
A-0071 0.49 216.45 0.00 233.03 17.15 0.00 33.87 6.97 37 0.00 113
A-0420 0.00 23.88 0.00 39.15 23.85 0.00 0.00 6.91 0 0.00 190
A-0421 0.01 167.00 114.72 295.03 27.18 4.87 3.62 7.00 2 0.00 132
A-0436 0.38 216.45 0.00 233.03 17.15 0.00 33.87 6.97 37 0.00 52
A-0725 0.04 13.94 0.00 22.86 22.86 0.00 0.00 7.07 0 57.41 40
M-0013 0.00 494.77 549.91 1045.28 1.21 10.31 1.34 6.93 18 0.00 225
现在我的问题是,当我尝试运行 nls 时,我使用以下代码:
m <- nls(y ~ ((X1*b1)+(X2*b2)+(X3*b3)+(X4*b4)+(X5*b5)+(X6*b6)+(X7*b7)+(X8*b8))*(exp(Z1*a1)+exp(Z2*a2)+exp(Z3*a3)+exp(Z4*a4)+exp(Z5*a5))*(exp(z1*d1)+exp(z2*d2)+exp(z3*d3)+exp(z4*d4)+exp(z5*d5)), data=data, start = list(b1=.0001,b2=.0001,b3=0,b4=0,b5=0,b6=.00072,b7=0,b8=.00095,a1=-0.0547,a2=0.01,a3=-.149,a4=-.19,a5=-.19,d1=-20,d2=-20,d3=-50,d4=-3,d5=-1))
我收到以下错误:
qr.qty(QR, resid) 中的错误: 'qr' 和 'y' 必须有相同的行数
另外:警告信息:
1:在 lhs - rhs 中: 较长的对象长度不是较短对象长度的倍数
2:在 .swts * attr(rhs, "gradient") 中: 较长的对象长度不是较短对象长度的倍数
我搜索了一堆答案,但似乎没有一种情况适用于我,但我承认我不知道我做得太好。任何帮助,将不胜感激!
【问题讨论】:
标签: r regression