-2

私は 2 つのデータセットを持っています。最適な関数の種類を見つけたいと思います。

x <- c(10, 40, 70, 100, 130, 160, 190, 220)
y1 <- c(41.8, 45.2, 50.8, 62.5, 73.2, 86.9, 95.4, 107.9)
y2 <- c(1.9, 34.3, 269.2, 1119.4, 2627.1, 5801.2, 11794.8, 24139.9)

par(mfrow = c(1,2))
plot(x, y1); plot(x, y2)

ここに画像の説明を入力

y1 と y2 の傾向について一言言いたいと思います。たとえば、y1 は直線的な傾向に従っているように見え、y2 は指数関数的に見えます。最初に、特に「rgp」パッケージを使用してシンボリック リグレッションを試みましたが、そのドキュメントは非常に貧弱であり、いくつかの問題もあります (アーカイブ モードで動作しないなど)。残念ながら、他のシンボリック回帰パッケージはありません。

あなたは何を提案しますか、私は何をすべきですか?「y1はxの関数の線形傾向に従う」などの結論をどのように言う/証明できますか?

4

1 に答える 1

1

線形モデルを使用:

summary.lm(lm(y1~x))
...
     Multiple R-squared:  0.9802,   Adjusted R-squared:  0.9768  F-statistic:
     296.4 on 1 and 6 DF,  p-value: 2.46e-06

y1_r = 0.33044 * x + 32.46230

したがって、97% の AR が適用され、p 値が小さいのは悲しいことですが、線形傾向があります。y2 については、同じ方法で非線形回帰を使用できます。

r <-  lm(y1 ~ x)
nr <- nls(y1 ~ exp(a + b * x), start = list(a = 0, b = 0))
plot( x,y1)
lines(x,predict(nr))
lines(x, predict(r), col = 'red')

残差の単純 SD を比較して、どちらのモデルが優れているかを判断できます

Residual standard error: 3.732 
Residual standard error: 2.515
于 2016-10-20T09:34:40.197 に答える