これは私が今のところいるところです:
df
2 つの列(両方とも実数を含む) を持つデータ フレームがA
あり、は に依存しています。列を互いにプロットします。B
b
a
p = ggplot(df, aes(A, B)) + geom_point()
関係が非線形であることを確認します。追加:
p = p + geom_smooth(method = 'loess', span = 1)
最適な「良好な」ラインを提供します。Iの新しい値a
が与えられるとA
、次の方法を使用して の値を予測しますB
。
B.loess = loess(B ~ A, span = 1, data = df)
predict(B.loess, newdata = a)
ここまでは順調ですね。ただし、使用して外挿できないことに気付きloess
ました (おそらくノンパラメトリックなので?!)。外挿はかなり自然に見えます - 関係は力のようなものが起こっているように見えます。
x = c(1:10)
y = 2^x
df = data.frame(A = x, B = y)
ここで行き詰まります。まず、この種の (「パワー」) データに最適な線を使用せずにプロットするには、どのような方法を使用できloess
ますか? 次のような哀れな試み:
p = ggplot(df, aes(A, B)) + geom_point() +
geom_smooth(method = 'lm', formula = log(y) ~ x)
エラーを教えてください。また、満足のいく最適な線を実際にプロットできると仮定すると、 を使用predict
したときと同様の方法で使用するのに問題がありloess
ます。例として、最適なラインに満足しているとします。
p = ggplot(df, aes(A, B)) + geom_point() +
geom_smooth(method = 'lm', formula = y ~ x)
B
次に、11 (理論的には 2^11) に等しい場合にどのような値になるかを予測したい場合A
、次の方法は機能しません。
B.lm = lm(B ~ A)
predict(B.lm, newdata = 11)
どんな助けでも大歓迎です。乾杯。