# Modeling the Price Movement- What analysis should be used

I am trying to model the price of a hotel as the check-in date arrives. I have a data set which looks like-

For e.g- if I am looking at the booking date of Dec 31st, I would want to analyze the movement of price for the hotels from 31st October onwards and model this movement with given variables-City, Star_rating, Accomodation_type, Chain_hotel, and Time before check-in.

I started with checking which of the variable(Feature) was more important in deciding the price of the hotel on a given day and applied multiway ANOVA. However, I am still not confident on my analysis and I am really confused that what could be the best way to model such a problem.

The question is if you really want to treat this as a time series problem. I say this because there may be no obvious/persistent autocorrelation (meaning that $$y$$ is contingent on $$y_{t-1}$$).

My take (not knowing the data) would be that each hotel has an own unobserved "identity" (like location, reputation etc) apart from star rating. Bookings (and thus prices) may also be highly contingent on time. So you could give a fixed-effects model a try. The idea is that you model this in a way like:

$$y=\alpha + \beta X+\gamma Z + \theta t + u.$$

Where $$X$$ are observed hotel characteristics, $$Z$$ are hotel fixed-effects (i.e. one indicator/dummy per hotel), $$t$$ is time (day of year or so), and $$u$$ is the error term.

In terms of model interpretation, $$X$$ are important (standard confounders), where $$Z$$ are not so relevant (and often omitted in FE regression) since $$Z$$ is only "one intercept per hotel". If you are interested in modeling the time aspect, clever encoding of $$t$$ is key. It is hard to tell how this could work out without knowing the data. There are two general options, a) dummy encoding (one dummy/indicator per time step) or continuous treatment (calender day?), maybe with a lagged component (price yesterday). In the latter case, you go in the direction of dynamic panel, which can be a little challanging.

You can try OLS first since it is very efficient in terms of computation. In order to get a better fit you may also try boosting, e.g. based on LightGBM. Here is a minimal example for boosting regression (but no fixed-effect model, just a normal one).

• Hi Peter, this is really helpful, I am a little new to this domain and I have two concerns: 1. Since, all the features available to me are categorical(star rating, lead time, accommodation type, chain hotel) and my y variable is sales, a continuous variable, I am a little confused about can we use only these categorical variables to fit the continuous variable 2. At what level shall I be running the model, for e.g- at transaction level(each row is one data point) or shall I run at hotel level(I doubt this would be possible as each hotel has multiple bookings for multiple checkin dates) Thanks! – Shubham Malviya Aug 17 '19 at 10:25
• You can estimate $y$ (continuous) and $X$ and $t$ (all categorical), the question is how well it works (but with all methods, I guess). Run a regression on the transaction level and include one category (indicator/dummy) per hotel to model FEs (the $Z$) above. – Peter Aug 17 '19 at 11:00
• 1/2 - Thanks for the response. I tried running two models. Model-A= I ran the model at the transaction level and created dummy variables for each of 141 hotels(Now data has the same number of observation but 141 dummy cols for hotels+n dummy cols for star rating, accommodation type...) and I ran a simple regression. But now since I am running the model at trans level- 1. I think I am not able to capture the time component of the data. 2. Now since I have 141 dummy cols, does beta corresponding to each of this cols represent the effectiveness of individual heterogeneity? – Shubham Malviya Aug 17 '19 at 22:59
• 2/2 I also ran another Model B= I ran this model at (hotel, Lead time) and (check-in date), converting three-dimensional panel data into two by merging hotel_id and Lead time and ran Fixed Effect Estimator, however, this model does not fit at all. I am really confused here, is there anything I am missing? Thanks for your help and support. – Shubham Malviya Aug 17 '19 at 23:16
• I added some more details to my answer. However, without knowing the data I cannot do more in the moment. Regarding 2) if your model does not fit, you did something wrong, likely because of multicollinearity. – Peter Aug 18 '19 at 11:56