以下に示す関数から合成的に生成されたデータがあります。
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 を使用して係数を再作成しようとすると、係数がかなり正確に返されることがわかっています。前もって感謝します。