2017-03-12 27 views
0

Rを使って、予測されたロジスティック曲線(経験的データから予測される)の方程式を見つける方法を入力したいと思います。予測ロジスティック曲線の方程式を見つけるにはどうすればよいですか?

私が見つけることができるもっとも近いコマンドは、library(ggpmisc)stat_poly_eq関数で、ggplot2でカーブをプロットするときに使用します。しかし、私はグラフ上にy = 0.48を印刷するためにしかこのメソッドを得ることができませんが、私は全体の方程式を必要とします。ここで

は、参考のためにいくつかのRコードです:

gg.disp.adults<- ggplot(sub.data, aes(x=SVL3, y=Disp01)) + 
    geom_point(size=4) + 
    stat_smooth(aes(y= Disp01), method="glm", method.args=list(family="binomial"), se=F) + 
    stat_poly_eq(aes(label=paste(..eq.label..,..rr.label..,sep="~~~~")), 
      rr.digits=3, coef.digits=2, 
      formula = y~1/(1+exp(-x)), 
      parse = TRUE) + 
theme(axis.text.x=element_text(size=14, color="black"), 
    axis.text.y=element_text(size=14, color="black"), 
    axis.line=element_line(size=1), 
    axis.title.x=element_text(size=14), 
    axis.title.y=element_text(size=14), 
    panel.background=element_rect(fill="white")) + 
ylab("Dispersal Probability") + 
ylim(0,1)+ 
xlab("Adult SVL") 
gg.disp.adults 

plot

予測曲線の実際の方程式を求めて行く方法について教えてください。

EDIT:

I出力の概要からの係数を用いて予測曲線の方程式を見つけることができた、そして標準的なロジスティック方程式に適用する: Y〜1 /(1 + EXP(-x ))。参考のためのRコードは次のとおりです。

Call: 
glm(formula = Disp01 ~ SVL3, family = binomial, data = sub.data) 

Deviance Residuals: 
    Min  1Q Median  3Q  Max 
-2.1207 -0.8812 -0.4844 0.8885 1.9168 

Coefficients: 
      Estimate Std. Error z value Pr(>|z|)  
(Intercept) -12.1800  3.6968 -3.295 0.000985 *** 
SVL3   0.1845  0.0561 3.289 0.001006 ** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

x<- seq(50,80,1) 
y<- 1/(1+exp(-(0.1845*x-12.18))) #coefficients from glm2 output 
plot(y~x, typ="l", ylim=c(0,1)) 
points(Disp01~SVL3, data=sub.data, pch=16, cex=1.5) 

...新しい予測曲線の写真を投稿できません。

答えて

1

stat_smoothはデータ上でglm(y ~ x, ...)を実行しているだけなので、同じことを実行してモデルの見積もりを回復できます。ここではいくつかの作られたデータとの例を示します

データをメイク:

library(ggplot2) 
set.seed(123) 
d <- data.frame(x = rnorm(100, 0, 2)) 
d$y <- rbinom(100, 1, plogis(d$x)) 

glmを使用してフィット。

ggplot(d, aes(x, y)) + 
    stat_smooth(method = "glm", method.args = list(family = "binomial")) + 
    geom_point(data = fitted, aes(x, y)) 

enter image description here

:私たちは、正確に stat_smoothラインで fittedマッチアップからその予測値を見ることができます。ここ

fit <- glm(y ~ x, data = d, family = binomial(link = "logit")) 
fitted <- data.frame(x = d$x, y = predict(fit, type = "response")) 

fitしたがって、あなたがしたい式を報告します

関連する問題