Другим подходом, который может быть менее точным, чем преобразование Фишера, но я думаю, что он может быть более интуитивным (и может дать идеи о практической значимости в дополнение к статистической значимости), является визуальный тест:
Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne,
D.F and Wickham, H. (2009) Statistical Inference for exploratory
data analysis and model diagnostics Phil. Trans. R. Soc. A 2009
367, 4361-4383 doi: 10.1098/rsta.2009.0120
Существует реализация этого в vis.test
функции в TeachingDemos
пакете для R. Один из возможных способов запустить его для вашего примера:
vt.scattercor <- function(x,y,r,...,orig=TRUE)
{
require('MASS')
par(mar=c(2.5,2.5,1,1)+0.1)
if(orig) {
plot(x,y, xlab="", ylab="", ...)
} else {
mu <- c(mean(x), mean(y))
var <- var( cbind(x,y) )
var[ rbind( 1:2, 2:1 ) ] <- r * sqrt(var[1,1]*var[2,2])
tmp <- mvrnorm( length(x), mu, var )
plot( tmp[,1], tmp[,2], xlab="", ylab="", ...)
}
}
test1 <- mvrnorm(100, c(0,0), rbind( c(1,.75), c(.75,1) ) )
test2 <- mvrnorm(100, c(0,0), rbind( c(1,.5), c(.5,1) ) )
vis.test( test1[,1], test1[,2], r=0.75, FUN=vt.scattercor )
vis.test( test2[,1], test2[,2], r=0.75, FUN=vt.scattercor )
Конечно, если ваши реальные данные не нормальны или отношения не линейны, то это будет легко подобрать с помощью приведенного выше кода. Если вы хотите провести одновременное тестирование для них, то вышеприведенный код сделает это, или приведенный выше код может быть адаптирован для лучшего представления характера данных.