I have some data of houses that have been renovated.

In my data there is one column (among others) that captures this information.

It is either "-1" if there has not been yet any renovation, or the information is the year of renovation like "1995" or "2008".

I would like to apply logistic regression.

However, I do not know how to treat this value.

IMHO it looks like a missing value although it is not a missing information.

So, does anybody have an idea how to put these (unordered) values into relation to the ordered years?

On alternative I could think of is binning the information. Like 1990-1995, 1996-2000,...2016-2019.

Any suggestions are highly appreciated.

  • $\begingroup$ If you change value of "year of renovation" to be same "year of construction" for houses that have not been renovated; does it makes sense for this problem ? $\endgroup$ – Shamit Verma Mar 19 at 7:05
  • $\begingroup$ Yeah, this is a of course a good idea and it also makes sense. In my case this is however, not applicable. Thanks for mentioning $\endgroup$ – toom Mar 19 at 8:58

First use a binary 0 (no renovation) and 1 (renovation) which works perfect with logistic regression.

Using the exact date is a bad practice. It guides the model in the direction of over-fitting on specific dates. For example, a pattern from 2006 would be specific to that year and would not help the future years. As an alternative, binning on larger spans like 5 years, 10 years (depends on the context) seems as an improvement. For example:

bins = [1990, 2000], [2000, 2010], [2010, 2020]
[1990, 2000] $\rightarrow$ (1, 0, 0)
[2000, 2010] $\rightarrow$ (0, 1, 0)
[2010, 2020] $\rightarrow$ (0, 0, 1)

This approach also has a tendency to over-fit but over a larger time span. Also note that, this way, your model always has an expiration date, since if we pass the last bin in 2021, there is no bin to cover the year. And if we include [2020, 2030] now, there is no data to learn about this bin. And using [2020, forever] is equally useless for future.

I suggest using the age of construction and renovation which are generalizable. A 5 years old house in 2000 could help us infer about a 5 years old house in 2010, 2020, or 2030. For houses with no renovation, age could be set to -1, which works fine with logistic regression (experiment with 0 too). So as a final example:

renovation     (has renovation, renovation age)
-1             (0, -1)
2010 in 2019   (1, 9)

Note that repetitive time features are OK. For example, "Spring", "Monday", or "8:00PM", etc.

  • $\begingroup$ Great advice. Thanks for this help. Makes sense :) $\endgroup$ – toom Mar 19 at 9:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.