おそらく、探索的ツールの恩恵を受けるでしょう。データをx座標の十分位数に分割することは、その精神で実行されたようです。以下で説明する変更を加えると、これは完全に優れたアプローチです。
多くの二変量探索的方法が発明されました。John Tukey(EDA、Addison-Wesley 1977)によって提案された簡単なものは、彼の「さまよう概略図」です。x座標をビンにスライスし、各ビンの中央値に対応するyデータの垂直箱ひげ図を作成して、箱ひげ図の主要部分(中央値、ヒンジなど)を曲線に接続します(オプションでそれらを平滑化します)。これらの「さまようトレース」は、データの2変量分布の画像を提供し、相関、関係の線形性、外れ値、および限界分布の即時の視覚的評価、ならびに非線形回帰関数のロバストな推定および適合度評価を可能にします。
2− k1 − 2− kK = 1 、2 、3 、...
さまざまなビンの母集団を表示するには、各ボックスプロットの幅を、それが表すデータ量に比例させることができます。
その結果、さまよっている回路図プロットは次のようになります。データサマリーから作成されたデータは、背景に灰色の点として表示されます。この上に、さまようスケマティックプロットが描かれ、5つのトレースが色付きで、箱ひげ図(外れ値を含む)が白黒で表示されています。
x=−4x=4−0.074これらのデータの場合)はゼロに近いです。ただし、「ほとんど相関がない」または「有意ではあるが低い相関」として解釈することを主張すると、平均して気温は快適でした。状況を説明するために、単一の数値では十分ではない場合があります。
同様の目的を持つ代替探索ツールには、データのウィンドウ化された分位のロバストな平滑化と、ある範囲の分位点を使用した分位点回帰のフィットがあります。これらの計算を実行するためのソフトウェアが用意されているため、さまよっている回路図トレースよりも実行が容易になった可能性がありますが、同じような単純な構造、解釈の容易さ、および幅広い適用性はありません。
次のR
コードは図を作成し、ほとんどまたはまったく変更せずに元のデータに適用できます。((によってbplt
呼び出されたbxp
)によって生成された警告を無視します:描画する外れ値がない場合に警告します。)
#
# Data
#
set.seed(17)
n <- 1449
x <- sort(rnorm(n, 0, 4))
s <- spline(quantile(x, seq(0,1,1/10)), c(0,.03,-.6,.5,-.1,.6,1.2,.7,1.4,.1,.6),
xout=x, method="natural")
#plot(s, type="l")
e <- rnorm(length(x), sd=1)
y <- s$y + e # ($ interferes with MathJax processing on SE)
#
# Calculations
#
q <- 2^(-(2:floor(log(n/10, 2))))
q <- c(rev(q), 1/2, 1-q)
n.bins <- length(q)+1
bins <- cut(x, quantile(x, probs = c(0,q,1)))
x.binmed <- by(x, bins, median)
x.bincount <- by(x, bins, length)
x.bincount.max <- max(x.bincount)
x.delta <- diff(range(x))
cor(x,y)
#
# Plot
#
par(mfrow=c(1,1))
b <- boxplot(y ~ bins, varwidth=TRUE, plot=FALSE)
plot(x,y, pch=19, col="#00000010",
main="Wandering schematic plot", xlab="X", ylab="Y")
for (i in 1:n.bins) {
invisible(bxp(list(stats=b$stats[,i, drop=FALSE],
n=b$n[i],
conf=b$conf[,i, drop=FALSE],
out=b$out[b$group==i],
group=1,
names=b$names[i]), add=TRUE,
boxwex=2*x.delta*x.bincount[i]/x.bincount.max/n.bins,
at=x.binmed[i]))
}
colors <- hsv(seq(2/6, 1, 1/6), 3/4, 5/6)
temp <- sapply(1:5, function(i) lines(spline(x.binmed, b$stats[i,],
method="natural"), col=colors[i], lwd=2))