1

3 つの変数と交互作用を持つ線形モデルを使用しています。数式を手動で入力して各変数 (たとえば XY と Z) の値を入力する代わりに、特定の XY と Z の予測値を取得するように R に指示するにはどうすればよいでしょうか?

つまりもし

model=lm(VP~G+P+Z+G:Z+P:Z+G:P+P:G:Z,data=xyz)

'[output with beta coefficients]'

各項の個々のベータ係数を手動で入力せずに、線形モデルに GP と Z の値を渡すにはどうすればよいですか?

4

2 に答える 2

1

2方向(および3方向)の相互作用がすべてあるモデルから予測する場合は、モデルを次のように簡略化できます。

 model=lm(VP ~ (G+P+Z)^3, data=xyz)   # see ?formula

「モデル」オブジェクトから予測する場合、G、P、Zという名前の値をデータフレームに提供する必要があります

pred123 <- predict(model, newdata=data.frame(G=1, P=2, Z=3) )

個々の値の特定の選択に対して可能なすべての値の組み合わせを作成する場合は、expand.grid関数が非常に役立ちます。

 pred.all <- predict(modlel, newdat=expand.grid(G;1:3, P=2:5, Z=6:8) )
于 2012-12-04T05:30:41.117 に答える
1

を使用しpredict()ます。経由でアクセスできるヘルプ ページのすべての詳細をお読みください?predict。の例を使用した例を次に示します。?lm

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)

そして予測します:

> predict(lm.D9, newdata=data.frame(group = c("Ctl", "Trt")))
    1     2 
5.032 4.661 

パラメータの使用と、newdata予測される新しい値をどのように渡したかに注目してください。

于 2012-12-04T04:18:41.587 に答える