我試圖按照Nolan和Hitt(2006)的方法來預測硝酸鹽濃度(well = STNM,Y =硝酸鹽濃度)。以下是我正在使用的一些預測變量。 X代表氮負荷變量(例如肥料負荷,化糞池),Z代表運輸變量(例如土壤Ksat),z代表衰減(例如土壤碳,%溼地)。使用nls進行R中的多元非線性迴歸,得到一堆錯誤
這是具有非線性乘法項的線性子模型:
Y = sum(xi*bi) * sum(exp(Zi*ai)) * sum(exp(xi*di))
其中b,a和d是參數。我有8個X變量和參數,5個Z變量和參數以及5個變量和參數。以下是我的數據頭部示例(不包括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(右軸, 「梯度」): 較長物體長度不是多個物體的長度較短
我已經搜索了一堆答案,沒有一種情況似乎適用於我,但我承認不知道我做得太好了。任何幫助,將不勝感激!