2016-12-04 5 views
2

のgeom_smoothで働いていない:NLS方法は、私は、特定の機能を指定せずに、非線形回帰を取得するには、次のコードをしようとしていますggplot

library(drc) 
head(heartrate) 
# pressure rate 
#1 50.85 348.76 
#2 54.92 344.45 
#3 59.23 343.05 
#4 61.91 332.92 
#5 65.22 315.31 
#6 67.79 313.50 

library(ggplot2) 
ggplot(heartrate, aes(pressure, rate)) + 
    geom_point() + 
    geom_smooth(method="nls", formula = rate ~ pressure) 

しかし、それは私に次のような警告提供します:

Warning message: 
Computation failed in `stat_smooth()`: 
object of type 'symbol' is not subsettable 

プロットはポイントのみで示されます。回帰直線はプロットされません。

この問題を解決するにはどうすればよいですか?

答えて

1

method = "nls"が必要とするものは、stats::nls()の引数とほぼ同じです。変数とパラメータを含む非線形モデル式を与え、se = FALSEreference: R mailing)とする必要があります。

ggplot(heartrate, aes(x = pressure, y = rate)) + # variable names are changed here 
    geom_point() + 
    geom_smooth(method="nls", formula = y ~ x, 
       method.args = list(start = c(x = 1)), se = F, colour = "green3") + 
    geom_smooth(method="nls", formula = y ~ a * x, 
       method.args = list(start = c(a = 1)), se = F, colour = "blue") + 
    geom_smooth(method="nls", formula = y ~ a * x + b, 
       method.args = list(start = c(a = 1, b = 1)), se = F, colour = "red") 

enter image description here

関連する問題