переменная пространственной задержки веса в писале NAN - PullRequest
0 голосов
/ 12 ноября 2018

Я использовал pysal.weights для вычисления пространственной переменной лага ('цена') с весом гауссовского ядра, ему удалось найти все ближайшие kW.neighbors, но некоторые строки не получили kW.weights, таким образом, не все строки получили переменную лага (цена).

Ни одна из строк геометрии координат или столбцов цен не является наном или нулем. Поэтому я не уверен, что пошло не так.

ошибка выглядит следующим образом:

/Users/xxx/miniconda3/lib/python3.6/site-packages/libpysal/weights/distance.py:645: RuntimeWarning: invalid value encountered in true_divide
  zi = np.array([dict(list(zip(ni, di)))[nid] for nid in nids]) / bw[i]
/Users/xxx/miniconda3/lib/python3.6/site-packages/libpysal/weights/weights.py:171: UserWarning: The weights matrix is not fully connected. There are 796 components
  warnings.warn("The weights matrix is not fully connected. There are %d components" % self.n_components)
/Users/xxx/miniconda3/lib/python3.6/site-packages/libpysal/weights/weights.py:171: UserWarning: The weights matrix is not fully connected. There are 796 components
  warnings.warn("The weights matrix is not fully connected. There are %d components" % self.n_components)

Вот код:

lag_vars=['price']
kW = lp.weights.Kernel.from_dataframe(df.loc[:,lag_vars+['geometry']], fixed=False, function='gaussian', k=10)
kW = fill_diagonal(kW, 0)
kW.transform = 'r'
WX = lp.weights.lag_spatial(kW, df.loc[:,lag_vars])
WXtable = pd.DataFrame(WX, columns=['lag_{}'.format(name) for name in lag_vars])
fd_lag = pd.concat((df,WXtable),axis=1)
...