탐색 도구를 사용하면 도움이 될 것입니다. 데이터를 x 좌표의 십진수로 나누는 것이 그 정신으로 수행 된 것으로 보입니다. 아래 설명 된대로 수정하면 완벽하게 접근 할 수 있습니다.
많은 이변 량 탐색 방법이 발명되었습니다. John Tukey ( EDA , Addison-Wesley 1977)가 제안한 간단한 것은 그의 "방황 구조도"입니다. x 좌표를 빈으로 자르고 각 빈의 중앙값에 해당 y 데이터의 세로 상자 그림을 세우고 상자 그림의 주요 부분 (중앙값, 경첩 등)을 곡선에 연결합니다 (선택적으로 스무딩). 이러한 "방랑자 추적"은 데이터의 이변 량 분포를 보여주고 상관 관계, 선형성, 특이 치 및 한계 분포의 즉각적인 시각적 평가뿐만 아니라 모든 비선형 회귀 함수의 강력한 추정 및 적합도 평가를 가능하게합니다. .
이 아이디어에 Tukey는 boxplot 아이디어와 일치하여 데이터 분포를 조사하는 좋은 방법은 중간에서 시작하여 바깥쪽으로 작업하여 데이터 양을 절반으로 줄이는 것입니다. 즉, 빈 사용할 필요는 점에서 분위수를 반영해야 대신 등 간격 분위수하게 절단 할 수 있지만 및 에 대한 .2− k1 −2− kk = 1 , 2 , 3 , …
다양한 빈 모집단을 표시하기 위해 각 상자 그림의 너비를 나타내는 데이터 양에 비례하게 만들 수 있습니다.
결과 방황 회로도는 다음과 같습니다. 데이터 요약에서 개발 된 데이터는 배경에서 회색 점으로 표시됩니다. 이 위에 방황 회로도가 그려졌으며 5 개의 흔적이 색으로 표시되어 있고 상자 그림 (표시된 이상 값 포함)이 흑백으로 그려져 있습니다.
0에 가까운 상관 관계의 특성은 즉시 명확 해집니다. 데이터가 왜곡됩니다. 에서 범위의 중심 근처 에서 강한 양의 상관 관계가 있습니다. 극단적 인 값에서 이러한 데이터는 전체적으로 음의 경향이있는 곡선 관계를 나타냅니다. 순 상관 계수 ( 이 데이터의 경우 )는 0에 가깝습니다. 그러나 "거의 상관 관계가 거의 없음"또는 "중요하지만 상관 관계가 낮음"으로 해석하는 것은 평균적으로 온도가 편안했습니다. 때로는 하나의 숫자로 상황을 설명하지 않을 수도 있습니다.x = − 4x = 4− 0.074
비슷한 목적을 가진 대안적인 탐색 도구에는 다양한 범위의 데이터를 사용하여 데이터의 윈도우 화 된 Quantile의 강력한 스무딩과 Quantile 회귀의 적합이 포함됩니다. 이러한 계산을 수행 할 수있는 소프트웨어가 준비되어 있기 때문에 방황 회로도 추적보다 실행하기가 쉬워졌지만, 구성의 단순성, 해석의 용이성 및 광범위한 적용 가능성은 동일하지 않습니다.
다음 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))