Переменная пространственной задержки веса в писале NAN
Я использовал 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)