1
$\begingroup$

for the past few months I've been working on a project that tries to predict a price for metaverse real estates (Virtual Houses). The game is called sandbox and it is sold in cryptocurrencies, which causes it's prices to vary a lot. The data contains every transaction that's occurred during the 3 years: which land was sold, when was the land sold and for how much did it sell. Here you can see the DataFrame:

2

The lands are located on a 2D map and each land has x and y coordinates. Not every land has transaction history (some lands have been gifted etc) and map also has 'holes' in it, so there's quite a few missing data. Here you can see the graph for average daily price over time: 4

So here's the problem: I want to be able to predict price for a land given it's coordinates. In order to do that, I've tried looking for an invariant in data that would help avoid dealing with a time series problem, e.g. calculating land price / average daily price for each land and hoping that it would be relatively constant over time, however that doesn't seem to be the case.

Here's the lag plot for average daily price:

5

And here's the lag plot for average daily price accounting only last year's transactions:

enter image description here

So here are my questions:

  1. Given that the price for lands varies a lot over time, how would I approach predicting the price?
  2. I've looked into time series analysis and let's say, I was able to predict average daily price (or lands sold count) using time series modeling, how would this help me predict the price for a particular land?
  3. Is it possible for a regression model (let's say XGBoost) to learn to predict prices with this kind of data 'on it's own'? Because If not, how could I incorporate my time series model with other features (land's history / other preprocessed features) in a regression model where input is (x, y) and output is price?

Any and all help will be appreciated, I'm relatively new to this field, so please do correct me If what I'm saying is wrong / does not make sense, and feel free to ask me for any additional information. Thanks in advance!

$\endgroup$

1 Answer 1

2
$\begingroup$

If you want to transform your prediction from a time series problem to a cross-sectional one, you could simply create a unique indicator for each land (or house) based on the location coordinates $ x $ and $ y $ and then only retain the most recent land or house transaction (based on the latest date). This ensures that all land / houses are equally weighted, once you fit a regression model. Such an approach using the cross-section of houses to make price prediction based on individual features of the houses is known as hedonic regression in the economics literature (see, e.g., https://en.wikipedia.org/wiki/Hedonic_regression). While hedonic regression may work well for classical real estate price prediction, it might be problematic in your case since your land / house transaction prices probably vary much more over time. Hence, you‘d have to retrain your model on a regular basis to be able to make reasonable predictions. In addition, if the variables you have shown above are all variables included in your data set, I would not recommend to go with the hedonic regression approach, since you have not many variables to base your cross-sectional prediction on.

Personally, I would probably either try to make predictions with a vector autoregressive (VAR) model or a dynamic panel regression model. This ensures that you use the time series as well as cross-sectional information in your data. A panel data structure also keeps track of how many times a particular house / land has been sold. The downside probably is that these models are slightly harder to implement. There exist also regression models tailored to spatial prediction problems, such as the spatial autoregressive model (SAR) or spatial error (SEM) model. However, these are essentially variants of (V)AR approaches, at least to my knowledge. So, one of these models might be worth a try.

Hope this helps.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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