diff --git a/src/pg/sql/21_gwr.sql b/src/pg/sql/21_gwr.sql index af0c96e..0596d3f 100644 --- a/src/pg/sql/21_gwr.sql +++ b/src/pg/sql/21_gwr.sql @@ -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 diff --git a/src/py/crankshaft/crankshaft/regression/gwr_cs.py b/src/py/crankshaft/crankshaft/regression/gwr_cs.py index a1fe9c5..7ea7f16 100644 --- a/src/py/crankshaft/crankshaft/regression/gwr_cs.py +++ b/src/py/crankshaft/crankshaft/regression/gwr_cs.py @@ -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,