2

X と y2 の 2 つのベクトルがあり、指数曲線をデータに当てはめたいと考えています。

スタック オーバーフローのトピックで説明されている多くのアプローチを試しましたが、それらのすべてで直線が得られました。たとえば、私はこれを試しました:

model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
abline(model.three)

私のデータ:

X <- seq(1:50)
Y <- rnorm(50,mean=0,sd=1)
y2 <- exp(X)
y2 <- Y+y2
4

2 に答える 2

1

これはあなたが探しているものですか?

model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))

## Instead of abline(), use this:

lines(model.three$fitted.values)
于 2016-05-23T19:54:42.697 に答える
1

あなたのデータは、Y と X の間の指数関数的な関係を表しています。これはY = exp(X) + epsノイズepsです。したがって、 と の間にモデルを当てはめてlog(Y)X2 つの間の線形関係を捉えることをお勧めします。

model.three <- lm(log(y2) ~ X) summary(model.three)

要約は、キャプチャされた関係が期待どおりであることを確認します (つまり、X の係数は 1 に非常に近い)。

データを線形スケールでプロットしても役に立たないので、近似直線を でプロットするとよいと思いますabline

注: 正確には、y2 と exp(X) の関係を捉える方が正確ですが、データを使用すると、適合は本質的に完璧です。

于 2016-05-23T20:14:58.227 に答える