update GWR output to also provide filtered (corrected) tvals
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
CREATE OR REPLACE FUNCTION
|
||||
CDB_GWR(subquery text, dep_var text, ind_vars text[],
|
||||
bw numeric default null, fixed boolean default False, kernel text default 'bisquare')
|
||||
RETURNS table(coeffs JSON, stand_errs JSON, t_vals JSON, predicted numeric, residuals numeric, r_squared numeric, rowid bigint, bandwidth numeric)
|
||||
RETURNS table(coeffs JSON, stand_errs JSON, t_vals JSON, filtered_t_vals JSON, predicted numeric, residuals numeric, r_squared numeric, rowid bigint, bandwidth numeric)
|
||||
AS $$
|
||||
|
||||
from crankshaft.regression import gwr_cs
|
||||
|
||||
@@ -73,6 +73,9 @@ def gwr(subquery, dep_var, ind_vars, bw=None,
|
||||
coefficients = []
|
||||
stand_errs = []
|
||||
t_vals = []
|
||||
filtered_t_vals = []
|
||||
c_alpha = model.adj_alpha
|
||||
filtered_t = model.filter_tvals(c_alpha[1])
|
||||
predicted = model.predy.flatten()
|
||||
residuals = model.resid_response
|
||||
r_squared = model.localR2.flatten()
|
||||
@@ -85,10 +88,10 @@ def gwr(subquery, dep_var, ind_vars, bw=None,
|
||||
for k, var in enumerate(ind_vars)}))
|
||||
t_vals.append(json.dumps({var: model.tvalues[idx, k]
|
||||
for k, var in enumerate(ind_vars)}))
|
||||
filtered_t_vals.append(json.dumps({var: filtered_t[idx, k]
|
||||
for k, var in enumerate(ind_vars)}))
|
||||
|
||||
plpy.notice(str(zip(coefficients, stand_errs, t_vals,
|
||||
predicted, residuals, r_squared, rowid, bw)))
|
||||
return zip(coefficients, stand_errs, t_vals,
|
||||
return zip(coefficients, stand_errs, t_vals, filtered_t_vals,
|
||||
predicted, residuals, r_squared, rowid, bw)
|
||||
|
||||
def gwr_predict(subquery, dep_var, ind_vars, bw=None,
|
||||
|
||||
Reference in New Issue
Block a user