Heteroscedastic factor analysis