library("mc2d") N <- 1000 x <- 4+0.2*rnorm(N) y <- exp(x + 0.1*rnorm(N)) plot(x,y,main="Original data") sr <- cor(x, y, method="spearman") cat("Pearson correlation between x and y:",cor(x,y),"\n") cat("Spearman rank correlation between x and y:",sr,"\n") # fit marginal dist of x x_mean <- mean(x) x_var <- var(x) # fit marginal dist of y y_mu <- mean(log(y)) y_sig2 <- var(log(y)) # independently generate random xhat and yhat xhat <- x_mean + (x_var)^0.5*rnorm(N) yhat <- exp(y_mu + (y_sig2)^0.5*rnorm(N)) cat("Spearman rank correlation between xhat and yhat:",cor(xhat, yhat, method="spearman"),"\n") # invoke iman-conover method output <- cornode(cbind(xhat,yhat),target=sr) xout <- output[,1] yout <- output[,2] cat("Spearman rank correlation between xout and yout:",srout <- cor(xout, yout, method="spearman"),"\n") plot(xout,yout,main="Simulated data")