Individual choice modelling with discrete commodities: theory and application