あなたは2つの連続した非カテゴリ変数を持っているので、ロジスティック曲線は3D曲線になります。私はあなたに提示のための2つの方法を提供します。
persp
実際の3D滑らかな曲線を生成する機能。
v
を値の数に固定し、2Dロジスティック曲線(これを "S"字型曲線と呼びます)を生成します。
あなたが最初の2Dグリッドを生成する必要が3D曲線
press_grid <- seq(200, 480, by = 5)
v_grid <- seq(0.6, 1.5, by = 0.1)
newdat <- data.frame(press = rep(press_grid, times = length(v_grid)), v = rep(v_grid, each = length(press_grid)))
pred <- predict.glm(mylogit, newdata = newdat, type="response")
z <- matrix(pred, length(press_grid))
persp(press_grid, v_grid, z, xlab = "pressure", ylab = "velocity", zlab = "predicted probability", main = "logistic curve (3D)", theta = 30, phi = 20)
。 newdat
にはこのグリッドがあり、このグリッドを表示するにはplot(newdat)
を実行できます。次に、predict.glm(..., type = "response")
を呼び出すことによって、このグリッド上で予測が行われます。結果はpred
です。それをプロットするには、マトリックスz
にキャストし、次にpersp
を呼び出して3Dプロットを作成します。 xlab
,ylab
およびzlab
は、3軸のラベルである。パラメータtheta
とphi
は、視野角を調整するために使用されます。上記で
、press
とv
用限界グリッドは元のデータの範囲に基づいている:range(dat$press)
とrange(dat$v)
。この範囲を超えた予測はあまりにも遠すぎません。しかし、この範囲内でさえ、あなたは17の観察しかありません。だからあなたはまだプロットに懐疑的である必要があります。ここ
は曲線である:
2D曲線
このおもちゃの機能は、いくつかのレベルに固定v
で、2次元曲線を作製するために有用である:
curve_2D_fix_v <- function(model, v = 1, press_grid = seq(200, 480, by = 5), add = FALSE, col = "black") {
newdat <- data.frame(press = press_grid, v = v)
pred <- predict.glm(model, newdat, type = "response")
if (add) lines(press_grid, pred, col = col) else {
plot(press_grid, pred, xlab = "pressure", ylab = "predicted probability", type = "l", col = col, main = "logistic curve (2D)")
abline(h = c(0, 0.5, 1), lty = 2, col = col)
}
}
add = FALSE
の場合、新しいプロットウィンドウが開きます。 TRUE
ですが、それは前のウィンドウにプロットします(しかし、そのようなウィンドウがあることを確認するのがあなたの義務です!)2Dプロットは、0、0.5、1で水平線を追加できるので、より多くの情報を与えます。
行こてみましょう。ここでは
curve_2D_fix_v(mylogit, v = 0.4, add = FALSE, col = "black")
curve_2D_fix_v(mylogit, v = 0.6, add = TRUE, col = "red")
curve_2D_fix_v(mylogit, v = 0.8, add = TRUE, col = "green")
curve_2D_fix_v(mylogit, v = 1, add = TRUE, col = "blue")
curve_2D_fix_v(mylogit, v = 1.2, add = TRUE, col = "cyan")
curve_2D_fix_v(mylogit, v = 0.4, add = TRUE, col = "yellow")
が曲線である:両方のプロットで
ディスカッション
、我々は間の関係を見ますgender
(予測確率)およびv
(速度)はあまり強くありません。 2Dプロットでは、v
のほぼすべての値が同じ曲線を生成します。一方、press
(圧力)は強い効果である。戻るあなたのモデルに
:あなたはv
は全く重要ではないことがわかります
> summary(mylogit)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 8.08326 4.45463 1.815 0.0696 .
press -0.02575 0.01618 -1.591 0.1115
v -0.15385 4.83824 -0.032 0.9746
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
!厳密に言えば、press
も0.1レベルで有意ではない。 これは非常に弱いモデルです。変数v
をドロップして、press
を唯一の変数として使用してモデルを再度実行することをお勧めします。
はい - ロジスティック曲線をプロットしたい –
これはこのようなものでなければなりませんが、エラーが表示されています。私はそれをどう扱うかわかりません。 –
plot(dat $ press、dat $ gender) カーブ(予測(mylogit、newdata = newdat、type = "resp")、add = TRUE) –