그림과의 공분산을 설명하려는 또 다른 시도가 있습니다. 아래 그림의 모든 패널에는 행 및 열 레이블에 표시된대로 x & y 0.8과 분산 간의 상관 관계를 갖는 이변 량 분포에서 시뮬레이션 된 50 개의 점이 포함되어 있습니다. 공분산은 각 패널의 오른쪽 하단에 표시됩니다.
이 개선에 관심이있는 사람은 ... R 코드는 다음과 같습니다.
library(mvtnorm)
rowvars <- colvars <- c(10,20,30,40,50)
all <- NULL
for(i in 1:length(colvars)){
colvar <- colvars[i]
for(j in 1:length(rowvars)){
set.seed(303) # Put seed here to show same data in each panel
rowvar <- rowvars[j]
# Simulate 50 points, corr=0.8
sig <- matrix(c(rowvar, .8*sqrt(rowvar)*sqrt(colvar), .8*sqrt(rowvar)*sqrt(colvar), colvar), nrow=2)
yy <- rmvnorm(50, mean=c(0,0), sig)
dati <- data.frame(i=i, j=j, colvar=colvar, rowvar=rowvar, covar=.8*sqrt(rowvar)*sqrt(colvar), yy)
all <- rbind(all, dati)
}
}
names(all) <- c('i','j','colvar','rowvar','covar','x','y')
all <- transform(all, colvar=factor(colvar), rowvar=factor(rowvar))
library(latticeExtra)
useOuterStrips(xyplot(y~x|colvar*rowvar, all, cov=all$covar,
panel=function(x,y,subscripts, cov,...){
panel.xyplot(x,y,...)
print(cor(x,y))
ltext(14,-12, round(cov[subscripts][1],0))
}))