2

特定の時間枠での製品の浸透率に関するデータ ポイントがいくつかあり、その時間枠の「前後」を、%penetration=zero 付近で開始し、%penetration= 付近で終了する S 字型関数を使用して推定したいと考えています。 1、累積分布関数のように効果的です。

データは次のとおりです。

period<-seq(13,73,1)
value<-c(0.267, 0.292, 0.317, 0.342, 0.367, 0.394, 0.422, 0.450, 0.477, 0.492, 0.507, 0.522, 0.537, 0.562, 0.587, 0.612, 0.637, 0.645, 0.652, 0.660, 0.667, 0.675, 0.682, 0.690, 0.697, 0.704, 0.711, 0.718, 0.724, 0.729, 0.734, 0.739, 0.743, 0.748, 0.753, 0.757, 0.762, 0.766, 0.770, 0.774, 0.778, 0.782, 0.786, 0.790, 0.794, 0.797, 0.800, 0.803, 0.806, 0.809, 0.812, 0.814, 0.817, 0.820, 0.822, 0.824, 0.827, 0.829, 0.831, 0.834, 0.836)

したがって、時間枠は period=13 から period=73 になり、期間 1 から 12 (値 = ゼロに近い値で開始) と期間 74 から 140 (値 = 1 で終了) の値を推定したいと考えています。どうすればこれを行うことができますか...?前もって感謝します、クリス

4

2 に答える 2

2

以下に 4 つのバリエーションを示し、それらをプロットして適合を視覚的に評価できるようにします。

1) LL.4 drc パッケージの LL.4 モデルを試すことができます。

> library(drc)
> value.m1 <- drm(value ~ period, fct = LL.4())
>
> before <- predict(value.m1, data.frame(period = 1:12)); before
 [1] -0.021014377 -0.014620515 -0.003811402  0.011217655  0.030115032
 [6]  0.052416255  0.077583272  0.105041527  0.134213115  0.164544170
[11]  0.195525422  0.226705738
> after <- predict(value.m1, data.frame(period = 74:140)); after
 [1] 0.8295972 0.8309413 0.8322356 0.8334824 0.8346839 0.8358422 0.8369594
 [8] 0.8380374 0.8390778 0.8400824 0.8410528 0.8419904 0.8428968 0.8437731
[15] 0.8446209 0.8454411 0.8462350 0.8470037 0.8477483 0.8484696 0.8491687
[22] 0.8498463 0.8505035 0.8511409 0.8517594 0.8523597 0.8529424 0.8535083
[29] 0.8540579 0.8545920 0.8551109 0.8556154 0.8561059 0.8565830 0.8570470
[36] 0.8574986 0.8579380 0.8583658 0.8587823 0.8591880 0.8595831 0.8599681
[43] 0.8603433 0.8607090 0.8610656 0.8614132 0.8617523 0.8620831 0.8624058
[50] 0.8627207 0.8630281 0.8633282 0.8636213 0.8639074 0.8641869 0.8644600
[57] 0.8647268 0.8649875 0.8652424 0.8654915 0.8657351 0.8659733 0.8662063
[64] 0.8664342 0.8666572 0.8668754 0.8670889
> plot(value.m1, xlim = c(1, 140), ylim = 0:1, pch = 20)

今後の外挿は、体系的に低すぎる可能性があり、before値がゼロを下回るように見えますが、おそらくそれで十分です。

(画像の後に続く)

スクリーンショット LL.4

2) MM.3視覚的には、MM.3モデルは上端でよりよく適合しますが、下端で少し悪くなります。

value.m2 <- drm(value ~ period, fct = MM.3())
plot(value.m2, xlim = c(1, 140), ylim = 0:1, pch = 20)

(画像の後に続く)

スクリーンショット MM.3

3) 組み合わせたものは、以下を使用して両方の長所を拾うことができます (最後のプロットからの続き):

value.pred1 <- predict(value.m1, data.frame(period = 1:140))
value.pred2 <- predict(value.m2, data.frame(period = 1:140))
value.pred12 <- c( head(value.pred1, 19), tail(value.pred2, -19) )
lines(1:140, value.pred12, col = "red")

与える:

スクリーンショットの組み合わせ

4) 累積尺度 累積尺度 に当てはめると、LL.4 は視覚的に楽しいプロットを提供します。

DF <- data.frame(value.cum = cumsum(value), period)
fm <- drm(value.cum ~ period, data = DF, fct = LL.4())
plot(fm, xlim = c(1, 140), ylim = c(0, 100), pch = 20)

累積適合のスクリーンショット

追加 MM.3モデル、複合モデル、累積モデル。

于 2014-01-14T14:00:58.310 に答える
0

私はあなたのデータセットをプロットしましたが、率直に言って「S」曲線はお勧めしません。私は線形フィットをperiod < 30 行い、別のべき乗フィットy = k*sqrt(x)を行いperiod > 30ます。

データセットへの当てはめに使用した関数 (線形など) にデータが基づいていることを強く信じていない限り、データセット外の外挿は常に危険な動きであることに注意してください。

于 2014-01-14T12:22:03.787 に答える