def _calc_betas(self, x, y): N = len(self._index) K = len(self._x.columns) betas = np.empty((N, K), dtype=float) betas[:] = np.NaN valid = self._time_has_obs enough = self._enough_obs window = self._window # Use transformed (demeaned) Y, X variables cum_xx = self._cum_xx(x) cum_xy = self._cum_xy(x, y) for i in range(N): if not valid[i] or not enough[i]: continue xx = cum_xx[i] xy = cum_xy[i] if self._is_rolling and i >= window: xx = xx - cum_xx[i - window] xy = xy - cum_xy[i - window] betas[i] = math.solve(xx, xy) mask = ~np.isnan(betas).any(axis=1) have_betas = np.arange(N)[mask] return betas, have_betas, mask
def _calc_betas(self, x, y): N = len(self._index) K = len(self._x.columns) betas = np.empty((N, K), dtype=float) betas[:] = np.NaN valid = self._time_has_obs enough = self._enough_obs window = self._window # Use transformed (demeaned) Y, X variables cum_xx = self._cum_xx(x) cum_xy = self._cum_xy(x, y) for i in xrange(N): if not valid[i] or not enough[i]: continue xx = cum_xx[i] xy = cum_xy[i] if self._is_rolling and i >= window: xx = xx - cum_xx[i - window] xy = xy - cum_xy[i - window] betas[i] = math.solve(xx, xy) mask = -np.isnan(betas).any(axis=1) have_betas = np.arange(N)[mask] return betas, have_betas, mask
def test_solve_rect(self): if not _have_statsmodels: raise nose.SkipTest("no statsmodels") b = Series(np.random.randn(N), self.frame.index) result = pmath.solve(self.frame, b) expected = ols(y=b, x=self.frame, intercept=False).beta self.assert_(np.allclose(result, expected))
def test_solve_rect(self): if not _have_statsmodels: raise nose.SkipTest b = Series(np.random.randn(N), self.frame.index) result = pmath.solve(self.frame, b) expected = ols(y=b, x=self.frame, intercept=False).beta self.assert_(np.allclose(result, expected))
def test_solve_rect(self): if not _have_statsmodels: raise nose.SkipTest("no statsmodels") b = Series(np.random.randn(N), self.frame.index) result = pmath.solve(self.frame, b) with tm.assert_produces_warning(FutureWarning, check_stacklevel=False): expected = ols(y=b, x=self.frame, intercept=False).beta self.assertTrue(np.allclose(result, expected))