1

テストで非線形パラメータから多くの外れ値を検出する必要があります。外れ値パッケージのようないくつかの方法を使用しましたが、多くの場合、従来の方法はテストの仮定を満たしていません。

これは、大量のデータの小さな例です。

2 つのベクトル "x" と "y":

x <- c(50.012, 2.0255, 1.4552, 1.4186, 1.1831, 0.9782, -0.4291, -7.0972, -37.1922, -41.3537, -41.817, -45.3403, -53.7224, -74.8426, -184.1533, -208.8941, -248.6897, -344.1792, -347.6185, -354.0921, -523.5459, -573.9206, -694.4206, -694.6722, -1039.5303, -1303.6301, -1640.6454, -1645.6708)
y <- c(0.0000, 0.0002, 0.0000, 0.0004, 0.0019, 0.0002, 0.0043, 0.0448, 0.0513, 0.1482, 0.0112, 0.0451, 0.0000, 0.1492, 0.1583, 0.3885, 0.3000, 0.2033, 0.3656, 0.2368, 0.4934, 0.2180, 0.5161, 0.4920, 0.5229, 0.5394, 1.3575, 1.4175)

「x」と「y」をプロットすると:

plot(x, y)

2 つの異常値が存在することは明らかです。

x[27:28]
y[27:28]

このようなデータがたくさんあり、次のような非線形回帰による適切な nls 推定が必要です。

sigmoid <- function(x, x0, a, b) {
  a*exp(-exp(-(x-x0)/b))
}

nlsfit <-nls2(y ~ sigmoid(x, x0, a, b), start = data.frame(x0 = c(0, -5), a = c(0, 1), b= c(-0.01, -5)))

テストを通じて、「x」と「y」の長さに関係なく、多くの異常値を検出して削除するにはどうすればよいですか?

4

0 に答える 0