adrian-carro / spatial-housing-model Goto Github PK
View Code? Open in Web Editor NEWSpatial agent-based model of the UK housing market.
License: MIT License
Spatial agent-based model of the UK housing market.
License: MIT License
A new class InputArgumentsHandler should be created within utilities to store the current handleInputArguments method. Then outputFolder and configFileName can be obtained within the Model class through getters at the InputArgumentsHandler class.
The incorrect code:
public Household buyer; // Who wants to buy the house
This is not exact, as the so-called buyer could be either purchaser or renter
This class has been used in both sale and rental markets.
Currently, a cheap fix has been implemented to avoid over-accumulation of low quality houses by the construction sector. In the future, something more dynamic or with better thought rules should be implemented.
We should probably be keeping something like a Rental Price Index (RPI) to plot and compare with HPI.
Rethink if they can be joined in a single method!
Check if it is doing anything useful or if it can simply be removed.
Each month, current commuting cost (cost of commuting from job region to home region) should be subtracted from the household's bank balance.
These quantities are currently computed as "flow" variables, i.e., as averages over properties sold this month. Given that the number of properties sold a month can be quite small, wouldn't it make more sense to use instead "stock" variables, i.e., to average over all properties currently on offer in the market?
It should probably include housingStock and totalPopulation, with their corresponding getters and setters.
Any needed field should be passed as a parameter in the constructor of the regional class
Replace this parameter by a different way of initialising the average yield variables, such as real average rental prices (reference prices for rental market) (times 12 months) divided by the sale market reference prices.
Not really needed!
The capping should be removed and a different equation should be used in order to avoid having negative or too large desired prices!
Probably total would be more helpful, as then it can be divided by total number of households or by the number of those with a home...
In particular, the following commits should be applied from the non-spatial code:
General check, plotting main results (HPI, types of households), to make sure things are working as expected.
Need to remove the fudge multiplier introduced at Demographics so as to ensure that the model would reach the target number of households. This fudge parameter should be removed or its value re-defined so as to make it adaptable to different system sizes.
Currently, inheritance is always done at random and within the same region (which is the jobRegion of the households, not even the region where they live!). We should think of how to improve on this.
For this one would need to change, at least, decisionToBuyBuyToLet at HouseholdBehaviour and step method at Household.
Replace current longTermHousePriceAppreciation field (and getLongTermHPA method) within both regionalHousingMarketStats and housingMarketStats in order to implement an exponential moving average. Thus, the current parameter HPA_YEARS_TO_CHECK would also need to be replaced with the corresponding smoothing parameter of the exponential average.
Most methods should be moved to HouseholdBehaviour, probably only bidForAHome to be left at Household.
This method includes 2 unidentified fudge parameters, DECISION_TO_SELL_HPC and DECISION_TO_SELL_INTEREST, which are explicitly explained otherwise in the manuscript. The method explained in the manuscript should be implemented and tested.
Remember to replace also the data files and config properties to read them. Also make it such that data is automatically read at model initialisation.
Currently RentalMarketStats, RegionalRentalMarketStats call through their constructor the constructor at HousingMarketStats, RegionalHousingMarketStats, which initiates reference prices from data/HouseSaleMarket.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.