時間の経過に伴う価格情報のggplotの散布図に、指数関数的減衰線(エラーバー付き)をプロットしようとしています。私は現在これを持っています:
f2 <- ggplot(data, aes(x=date, y=cost) ) +
geom_point(aes(y = cost), colour="red", size=2) +
geom_smooth(se=T, method="lm", formula=y~x) +
# geom_smooth(se=T) +
theme_bw() +
xlab("Time") +
scale_y_log10("Price over time") +
opts(title="The Falling Price over time")
print(f2)
キーラインはgeom_smoothコマンドにありformula=y~x
ます。これは線形モデルのように見えますが、ggplotは自動的にscale_y_log10を検出してログに記録するようです。
さて、ここでの私の問題は、日付が日付データ型であるということです。の形式の指数関数的減衰モデルを適用できるようにするには、t=0なので秒に変換する必要があると思いますy = Ae^-(bx)
。
これは、y = exp(x)のようなものを試したときに、日付の指数をとることができないというメッセージ(?)が表示されるためだと思います。それは読みます:
Error in lm.wfit(x, y, w, offset = offset, singular.ok = singular.ok, :
NA/NaN/Inf in foreign function call (arg 1)
ただし、log(y) = x
正しく機能します。(yは数値データ型、xは日付です。)
geom_smooth(formula = Formula)関数呼び出しのggplotプロット内に指数関数的成長/減衰時系列モデルを適合させる便利な方法はありますか?