Разработка экономико-математической модели для обоснования стратегии инвестиций в недвижимость Лос-Анджелеса

Планирование инвестиций как неотъемлемый процесс, который способствует эффективному распределению денежных ресурсов инвестора. Недвижимость - стабильный источник получения пассивного дохода. Исследование основных составляющих инвестиционной стратегии.

Рубрика Экономико-математическое моделирование
Вид дипломная работа
Язык русский
Дата добавления 05.08.2018
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рисунок 31

Приложение 27

Sun Valley region sale price prediction

Рисунок 32

Приложение 28

Sunland region sale price prediction

Рисунок 33

Приложение 29

Tujunga region sale price prediction

Рисунок 34

Приложение 30

Valley Glen region sale price prediction

Рисунок 35

Приложение 31

Venice region sale price prediction

Рисунок 36

Приложение 32

Westchester region sale price prediction

Рисунок 37

Приложение 33

Winnetka region sale price prediction

Рисунок 38

Приложение 34

Hollywood Hills region rent price prediction

Рисунок 39

Приложение 35

Northridge region rent price prediction

Рисунок 40

Приложение 36

Porter Ranch region sale price prediction

Рисунок 41

Приложение 37

Модель прогнозирования, реализованная на Python

%pylab inline

import pandas as pd

from scipy import stats

import statsmodels.api as sm

import matplotlib.pyplot as plt

from itertools import product

neighbourhood_rent_price_list = ['Hollywood Hills',

'Northridge',

'Porter Ranch']

neighbourhood_sale_price_list = ['Arleta',

'Eagle Rock',

'El Sereno',

'Granada Hills',

'Hollywood Hills',

'North Hills',

'North Hollywood',

'Northridge',

'Porter Ranch',

'Sunland',

'Sun Valley',

'Tujunga',

'Valley Glen',

'Venice',

'Westchester',

'Winnetka'

]

results_table = pd.DataFrame(columns=['MAPE'], index=neighbourhood_sale_price_list)

for neighbourhood in neighbourhood_sale_price_list:

print(neighbourhood + '\n')

data = pd.read_excel('Sale Price Data.xlsx', sheet_name=neighbourhood)

data.Month = pd.to_datetime(data['date'])

data = data.set_index('date')

print("Критерий Дики-Фуллера до дифференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price'])[1])

data['price_diff'] = data['price'] - data['price'].shift(12)

print("Критерий Дики-Фуллера после годового дифференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price_diff'][12:])[1])

data['price_diff2'] = data['price_diff'] - data['price_diff'].shift(1)

print("Критерий Дики-Фуллера после месячного диференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price_diff2'][13:])[1])

print()

d, D = 1, 1

Q = range(0, 2)

q = range(0, 2)

P = range(0, 4)

p = range(0, 4)

parameters = product(p, q, P, Q)

parameters_list = list(parameters)

results = []

best_aic = float("inf")

warnings.filterwarnings('ignore')

print('Building model...')

for param in parameters_list:

try:

model=sm.tsa.statespace.SARIMAX(data['price'], order=(param[0], d, param[1]),

seasonal_order=(param[2], D, param[3], 12)).fit(disp=-1)

except ValueError:

print('wrong parameters:', param)

continue

aic = model.aic

if aic < best_aic:

best_model = model

best_aic = aic

best_param = param

results.append([param, model.aic])

warnings.filterwarnings('default')

print('Best model:')

print(best_model.summary())

data['model'] = best_model.fittedvalues

data['price'].plot()

data.model[13:].plot(color='r')

plt.ylabel('Sales Price')

plt.xlabel('Date')

pylab.show()

mape = np.round(np.mean((np.abs(data['price'] - data['model']) / data['price'])*100), 2)

results_table['MAPE'][neighbourhood] = mape

print("MAPE for %s region is %.2f"%(neighbourhood, mape) + '%')

data2 = data[['price']]

date_list = [datetime.datetime.strptime("2018-03-01", "%Y-%m-%d") + relativedelta(months=x) for x in range(0, 120)]

future = pd.DataFrame(index=date_list, columns=data2.columns)

data2 = pd.concat([data, future])

data2['forecast'] = best_model.predict(start=len(data), end=len(data)+120)

plt.figure(figsize=(15, 10))

data2['price'].plot(color='b')

data2['forecast'].plot(color='r')

plt.ylabel('price')

plt.xlabel('date')

plt.title('%s 10 years forecast'%neighbourhood)

plt.savefig('%s 10 years sale price forecast'%neighbourhood)

plt.show()

data2 = data2[['price', 'forecast']]

data2.to_excel('%s 10 years sale price forecast.xlsx'%neighbourhood)

print()

results_table.to_excel('sale price forecasting quality by neighbourhood.xlsx')

results_table = pd.DataFrame(columns=['MAPE'], index=neighbourhood_rent_price_list)

for neighbourhood in neighbourhood_rent_price_list:

print(neighbourhood + '\n')

data = pd.read_excel('Rent Price Data.xlsx', sheet_name=neighbourhood)

data.Month = pd.to_datetime(data['date'])

data = data.set_index('date')

print("Критерий Дики-Фуллера до дифференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price'])[1])

data['price_diff'] = data['price'] - data['price'].shift(12)

print("Критерий Дики-Фуллера после годового дифференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price_diff'][12:])[1])

data['price_diff2'] = data['price_diff'] - data['price_diff'].shift(1)

print("Критерий Дики-Фуллера после месячного диференцирования: p=%f" % sm.tsa.stattools.adfuller(data['price_diff2'][13:])[1])

print()

d, D = 1, 1

Q = range(0, 2)

q = range(0, 2)

P = range(0, 4)

p = range(0, 4)

parameters = product(p, q, P, Q)

parameters_list = list(parameters)

results = []

best_aic = float("inf")

warnings.filterwarnings('ignore')

print('Building model...')

for param in parameters_list:

try:

model=sm.tsa.statespace.SARIMAX(data['price'], order=(param[0], d, param[1]),

seasonal_order=(param[2], D, param[3], 12)).fit(disp=-1)

except ValueError:

print('wrong parameters:', param)

continue

aic = model.aic

if aic < best_aic:

best_model = model

best_aic = aic

best_param = param

results.append([param, model.aic])

warnings.filterwarnings('default')

print('Best model:')

print(best_model.summary())

data['model'] = best_model.fittedvalues

data['price'].plot()

data.model[13:].plot(color='r')

plt.ylabel('Rent Price')

plt.xlabel('Date')

pylab.show()

mape = np.round(np.mean((np.abs(data['price'] - data['model']) / data['price'])*100), 2)

results_table['MAPE'][neighbourhood] = mape

print("MAPE for %s region is %.2f"%(neighbourhood, mape) + '%')

data2 = data[['price']]

date_list = [datetime.datetime.strptime("2018-03-01", "%Y-%m-%d") + relativedelta(months=x) for x in range(0, 120)]

future = pd.DataFrame(index=date_list, columns=data2.columns)

data2 = pd.concat([data, future])

data2['forecast'] = best_model.predict(start=len(data), end=len(data)+120)

plt.figure(figsize=(15, 10))

data2['price'].plot(color='b')

data2['forecast'].plot(color='r')

plt.ylabel('price')

plt.xlabel('date')

plt.title('%s 10 years rent price forecast'%neighbourhood)

plt.savefig('%s 10 years rent price forecast'%neighbourhood)

plt.show()

data2 = data2[['price', 'forecast']]

data2.to_excel('%s 10 years rent price forecast.xlsx'%neighbourhood)

print()

results_table.to_excel('rent price forecasting quality by neighbourhood.xlsx')

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.