In [1]:
import numpy as np
import pandas as pd

In [2]:
from rcm import rcm_model

モデルの説明:$y_i=x_ib_i+\epsilon_i$
地域ごとに異なる(物件iごとに異なる)係数を推定する.
従来のモデルだと$y_i=x_ib+\epsilon_i$
具体的には $$y_i=x_ib_i+\epsilon_i$$ $$b_i = b_1 + 緯度_i*b_2 + 経度_i*b_3 + \nu_i $$


In [3]:
datas = pd.read_csv("data2.csv")

In [4]:
y, X, reg, params = rcm_model(datas)

In [6]:
params.head()


Out[6]:
A CMD FAR IDD Intercept L R RW S SOUTH TS TT WOOD
0 -0.000519 -0.273986 0.007777 -0.087640 7.942832 0.003362 -0.015468 0.016275 0.003514 0.011923 -0.000014 0.000862 -0.153266
1 -0.000294 -0.245483 -0.004570 -0.133631 9.063760 0.002832 -0.030942 0.038498 0.003180 -0.002408 -0.009685 -0.006136 -0.173825
2 -0.000886 -0.101418 0.002478 0.024245 7.929167 0.003532 0.016389 0.000861 0.003190 0.015911 -0.002410 -0.002931 0.007647
3 -0.000857 0.067495 -0.003238 0.034157 8.200572 0.003138 0.017271 -0.001814 0.004237 0.019935 -0.003932 -0.003859 0.022396
4 -0.000885 -0.128365 0.001501 -0.104254 7.900296 0.003134 -0.005047 0.013597 0.004687 0.022148 -0.001202 -0.003638 -0.085039
$$y_i=x_ib_i+\epsilon_i$$$$b_i = b_1 + 緯度_i*b_2 + 経度_i*b_3 + \nu_i $$

は、 $$y_i=x_i(b_1 + 緯度_i*b_2 + 経度_i*b_3 + \nu_i) +\epsilon_i$$ となるので、xを用いてyを予測したいときは、内挿と外挿に関わらず、以下のように行う.


In [12]:
np.exp((reg.params*X).T.sum().head())


Out[12]:
0    11149.396090
1     7960.605046
2     5503.421478
3     5104.033986
4     4251.498726
dtype: float64

In [ ]: