Say I have a data set with the following measures
- Number of vacation days (NumDays)
- Accommodation costs (Accom)
- Total Drinks costs (Drinks)
- Total Meals costs (Meals)
- Total Travel costs (Travel)
- Total cost (TotalCost) = Accom + Drinks + Meals + Travel
I also have a number of categorical variables including
- Nationality of visitor (Country) - US, SP, JP, GM...
- Age band of visitor (AgeBand) "20 to 29", "30 to 39"...
- Payment method (Payment) Cash, Cheque, CreditCard, Bitcoin...
- Booking method (Booking) Phone, DirectInternet, BookingPortal...
- Year of vacation (Year) 2011, 2012, 2013...
The objective of the exercise is to fit a model (or models) that explains why Total cost has been increasing across the population from one year to the next. The answers I am expecting to generate would be in the form "We had more visitors from China" and "People are taking shorter holidays" or "Accommodation prices have increased for visitors using booking portals".
One approach would be to construct separate models using GLMs
- NumDays ~ Country + AgeBand + Payment + Booking + Year [Identity link, Poisson]
- TotalCost ~ Country + AgeBand + Payment + Booking + Year [Log link, gamma]
- Accom ~ Country + AgeBand + Payment + Booking + Year [Log link, gamma]
and so on.
Now it is important to note that:
- All of the measures are correlated with one another, but particularly with NumDays (the correlation between NumDays and Accom is 0.7, for example)
- This is a problem since the models described above implicitly assume that these measures are statistically independent
- NumDays is a count variable and the rest are continuous
So my questions are:
- What can go wrong with fitting separate models as above?
- Is there a better model?
- I had a look at multivariate GLM packages for R but most of them don't seem to deal with a mix of discrete and continuous response variables
- Another option could be something like what is described here
- I would like to be able to produce fitted values
- Is the model structure even appropriate?
- For example would it make more sense to model Accom / NumDays as a response variable?