Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pysal/numpy incompatibility? No loop matching the specified signature and casting was found for ufunc add #72

Open
jooglyp opened this issue Jun 11, 2021 · 1 comment

Comments

@jooglyp
Copy link

jooglyp commented Jun 11, 2021

Quoting: https://stackoverflow.com/questions/64727148/pysal-in-python-error-no-loop-matching-the-specified-signature-and-casting-was

I am using the pysal package to do some spatial regressions. I am adopting the example here where the dataset is here:

This is what I am doing:

abb_link = '/Users/emassaro/Downloads/listings.csv.gz'
lst = pd.read_csv(abb_link)
x = ['host_listings_count', 'bathrooms', 'bedrooms', 'beds', 'guests_included']
def has_pool(a):
    if 'Pool' in a:
        return 1
    else:
        return 0

lst['pool'] = lst['amenities'].apply(has_pool)
yxs = lst.loc[:, x + ['pool', 'price']].dropna()
y = np.log( yxs['price'].apply(lambda x: float(x.strip('$').replace(',', '')))+ 0.000001)
w = ps.knnW_from_array(lst.loc[yxs.index, ['longitude', 'latitude']].values)
w.transform = 'R'

m1 = ps.spreg.OLS(y.values[:, None], yxs.drop('price', axis=1).values, \
                  w=w, spat_diag=True, \
                  name_x=yxs.drop('price', axis=1).columns.tolist(), name_y='ln(price)')

However if I want to use another model, such as GM_Lag

m2 = ps.spreg.GM_Lag(y.values[:, None], yxs.drop('price', axis=1), w=w, spat_diag=True)

I get the following error

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-2a848adc0fbe> in <module>
----> 1 m2 = ps.spreg.GM_Lag(yy, y2, w=w, spat_diag=True)

/usr/local/lib/python3.8/site-packages/pysal/spreg/twosls_sp.py in __init__(self, y, x, yend, q, w, w_lags, lag_q, robust, gwk, sig2n_k, spat_diag, vm, name_y, name_x, name_yend, name_q, name_w, name_gwk, name_ds)
    495         self.name_w = USER.set_name_w(name_w, w)
    496         self.name_gwk = USER.set_name_w(name_gwk, gwk)
--> 497         SUMMARY.GM_Lag(reg=self, w=w, vm=vm, spat_diag=spat_diag)
    498 
    499 

/usr/local/lib/python3.8/site-packages/pysal/spreg/summary_output.py in GM_Lag(reg, vm, w, spat_diag, regimes)
    152     reg.__summary = {}
    153     # compute diagnostics and organize summary output
--> 154     beta_diag_lag(reg, reg.robust, error=False)
    155     if spat_diag:
    156         # compute diagnostics and organize summary output

/usr/local/lib/python3.8/site-packages/pysal/spreg/summary_output.py in beta_diag_lag(reg, robust, error)
    719     reg.std_err = diagnostics.se_betas(reg)
    720     reg.z_stat = diagnostics.t_stat(reg, z_stat=True)
--> 721     reg.pr2 = diagnostics_tsls.pr2_aspatial(reg)
    722     # organize summary output
    723     reg.__summary['summary_std_err'] = robust

/usr/local/lib/python3.8/site-packages/pysal/spreg/diagnostics_tsls.py in pr2_aspatial(tslsreg)
    213     y = tslsreg.y
    214     predy = tslsreg.predy
--> 215     pr = pearsonr(y, predy)[0]
    216     pr2_result = float(pr ** 2)
    217     return pr2_result

/usr/local/lib/python3.8/site-packages/scipy/stats/stats.py in pearsonr(x, y)
   3854         return dtype(np.sign(x[1] - x[0])*np.sign(y[1] - y[0])), 1.0
   3855 
-> 3856     xmean = x.mean(dtype=dtype)
   3857     ymean = y.mean(dtype=dtype)
   3858 

/usr/local/lib/python3.8/site-packages/numpy/core/_methods.py in _mean(a, axis, dtype, out, keepdims)
    158             is_float16_result = True
    159 
--> 160     ret = umr_sum(arr, axis, dtype, out, keepdims)
    161     if isinstance(ret, mu.ndarray):
    162         ret = um.true_divide(

TypeError: No loop matching the specified signature and casting was found for ufunc add
@jooglyp jooglyp changed the title Pysal/numpy incompatability? No loop matching the specified signature and casting was found for ufunc add Pysal/numpy incompatibility? No loop matching the specified signature and casting was found for ufunc add Jun 11, 2021
@jGaboardi
Copy link
Member

@jooglyp This happening in specifically in the spreg module so I'm going to transfer it over there.

@jGaboardi jGaboardi transferred this issue from pysal/pysal Jun 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants