Canonical correspondence analysis