この種のグラフに名前があるとは思わないが、あなたがしていることは合理的であり、あなたの解釈は妥当だと思う。あなたがしていることは、ハンペルのインフルエンス関数に関連していると思います。https://en.wikipedia.org/wiki/Robust_statistics#Empirical_influence_function、 特に経験的インフルエンス関数に関するセクションを参照してください。データが完全に対称である場合、プロットはフラットになるため、プロットは確かにデータの歪度の何らかの尺度に関連している可能性があります。あなたはそれを調査する必要があります!
EDIT
このプロットの1つの拡張は、左右で異なるトリミングを使用した効果も示すことです。これは、Rのmean
引数trim
を持つ通常の関数では実装されていないため、独自のトリム平均関数を作成しました。より滑らかなプロットを得るために、トリミング部分が非整数のポイントの削除を意味する場合、線形補間を使用します。これは次の機能を提供します。
my.trmean <- function(x, trim) {
x <- sort(x)
if (length(trim)==1) {
tr1 <- tr2 <- trim } else {
tr1 <- trim[1]
tr2 <- trim[2] }
stopifnot((0 <= tr1)&& (tr1 <= 0.5)); stopifnot((0 <= tr2)&&(tr2 <= 0.5))
n <- length(x)
if ((tr1>=0.5-1/n)&&(tr2>=0.5-1/n)) return( median(x) )
k1 <- floor(n*tr1) ; k2 <- floor(n*tr2)
a1 <- n*tr1-k1 ; a2 <- n*tr2-k2
crange <- if ( (k1+2) <= (n-k2-1) ) ((k1+2):(n-k2-1)) else NULL
trmean <- sum(c((1-a1)*x[k1+1], x[crange], (1-a2)*x[n-k2]))/(length(crange)+2-(a1+a2) )
trmean
}
次に、いくつかのデータをシミュレートし、結果を等高線図として表示します。
tr1 <- seq(0, 0.5, length.out=25)
tr2 <- seq(0, 0.5, length.out=25)
x <- rgamma(10000, 1.5)
vals <- outer(tr1, tr2, FUN=Vectorize(function(t1, t2) my.trmean(x, c(t1, t2))))
image(tr1, tr2, vals, xlab="left trimming", ylab="right trimming", main="Effect of trimming")
contour(tr1, tr2, vals, nlevels=20, add=TRUE)
この結果を与える: