1
我從下面顯示的函數合成生成一些數據。R在數據上擬合多項式
fn <- function(w1,w2){
f= -(0.1 + 1.3*w1 + 0.4*w2 - 1.8*w1*w1 - 1.8*w2*w2)
return(f)
}
接着我創建具有值的數據幀如下所示
x = data.frame(
yval = fn(seq(0.1,0.9,by=0.01),seq(1.1,0.3,by=-0.01)),
x1 = seq(0.1,0.9,by=0.01),
x2 = seq(1.1,0.3,by=-0.01)
)
我想看看是否在通過使用多項式擬合,我試圖作爲FN我可以重新創建多項式的係數下面
fit = lm(yval ~ x1 + x2 + I(x1^2) + I(x2^2),data=x)
coef(fit)
所示。然而,當我運行上面的代碼,得到以下
(Intercept) x1 x2 I(x1^2) I(x2^2)
2.012 -5.220 NA 3.600 NA
似乎從未「檢測到」術語x2。有人會知道我可能做錯了什麼嗎?我知道,如果我創建合成線性數據並嘗試使用lm重新創建係數,我會相當準確地返回係數。提前致謝。
'x1'和'x2'完全共線,因此無法同時對兩個參數進行估計。 R認識到這一點,並將其中的一個設置爲「NA」。 –