update GWR output to also provide filtered (corrected) tvals

This commit is contained in:
Taylor Oshan
2016-12-21 15:00:45 -07:00
parent f511afbbf0
commit b06b783c67
2 changed files with 7 additions and 4 deletions

View File

@@ -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

View File

@@ -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,