Пример #1
0
	def __init__(self, z1, z2, x, w, N1, N2, M, intercept_hsq1=None, intercept_hsq2=None,
				 intercept_gencov=None, n_blocks=200, slow=False, twostep=None):
		self.intercept_gencov = intercept_gencov
		self._negative_hsq = None
		n_snp, n_annot = x.shape
		hsq1 = Hsq(np.square(z1), x, w, N1, M, n_blocks=n_blocks, intercept=intercept_hsq1,
				   slow=slow, twostep=twostep)
		hsq2 = Hsq(np.square(z2), x, w, N2, M, n_blocks=n_blocks, intercept=intercept_hsq2,
				   slow=slow, twostep=twostep)
		gencov = Gencov(z1, z2, x, w, N1, N2, M, hsq1.tot, hsq2.tot, hsq1.intercept,
						hsq2.intercept, n_blocks, intercept_gencov=intercept_gencov, slow=slow,
						twostep=twostep)
		gencov.N1 = None  # save memory
		gencov.N2 = None
		self.hsq1, self.hsq2, self.gencov = hsq1, hsq2, gencov
		if (hsq1.tot <= 0 or hsq2.tot <= 0):
			self._negative_hsq = True
			self.rg_ratio = self.rg = self.rg_se = 'NA'
			self.p = self.z = 'NA'
		else:
			rg_ratio = np.array(
				gencov.tot / np.sqrt(hsq1.tot * hsq2.tot)).reshape((1, 1))
			denom_delete_values = np.sqrt(
				np.multiply(hsq1.tot_delete_values, hsq2.tot_delete_values))
			rg = jk.RatioJackknife(
				rg_ratio, gencov.tot_delete_values, denom_delete_values)
			self.rg_jknife = float(rg.jknife_est)
			self.rg_se = float(rg.jknife_se)
			self.rg_ratio = float(rg_ratio)
			self.p, self.z = p_z_norm(self.rg_ratio, self.rg_se)
Пример #2
0
 def setUp(self):
     self.numer_delete_vals = np.matrix(np.arange(1, 11)).T
     self.denom_delete_vals = -np.matrix(np.arange(1, 11)).T
     self.denom_delete_vals[9, 0] += 1
     self.est = np.matrix(-1)
     self.num_blocks = self.numer_delete_vals.shape[0]
     self.jknife = jk.RatioJackknife(self.est, self.numer_delete_vals,
                                     self.denom_delete_vals)
Пример #3
0
 def setUp(self):
     self.numer_delete_vals = np.matrix(
         np.vstack((np.arange(1, 11), 2 * np.arange(1, 11)))).T
     x = -np.arange(1, 11)
     x[9] += 1
     self.denom_delete_vals = np.vstack((x, 4 * x)).T
     self.est = np.matrix((-1, -0.5))
     self.num_blocks = self.numer_delete_vals.shape[0]
     self.jknife = jk.RatioJackknife(self.est, self.numer_delete_vals,
                                     self.denom_delete_vals)
Пример #4
0
	def _prop(self, jknife, M, Nbar, cat, tot):
		'''Convert total h2 and per-category h2 to per-category proportion h2 or gencov.'''
		n_annot = self.n_annot
		n_blocks = jknife.delete_values.shape[0]
		numer_delete_vals = np.multiply(
			M, jknife.delete_values[:, 0:n_annot]) / Nbar  # (n_blocks, n_annot)
		denom_delete_vals = np.sum(
			numer_delete_vals, axis=1).reshape((n_blocks, 1))
		denom_delete_vals = np.dot(denom_delete_vals, np.ones((1, n_annot)))
		prop = jk.RatioJackknife(
			cat / tot, numer_delete_vals, denom_delete_vals)
		return prop.est, prop.jknife_cov, prop.jknife_se
Пример #5
0
 def test_1d(self):
     self.numer_delete_values = np.matrix(np.arange(1, 11)).T
     self.denom_delete_values = -np.matrix(np.arange(1, 11)).T
     self.denom_delete_values[9, 0] += 1
     self.est = np.matrix(-1)
     self.n_blocks = self.numer_delete_values.shape[0]
     self.jknife = jk.RatioJackknife(self.est, self.numer_delete_values,
                                     self.denom_delete_values)
     self.assertEqual(self.jknife.est, self.est)
     assert_array_almost_equal(self.jknife.pseudovalues[0:9, :], -1)
     self.assertEqual(self.jknife.pseudovalues[9, :], 0)
     assert_array_almost_equal(self.jknife.jknife_est[0, 0], -0.9)
     assert_array_almost_equal(self.jknife.jknife_se, 0.1)
     assert_array_almost_equal(self.jknife.jknife_var, 0.01)
     assert_array_almost_equal(self.jknife.jknife_cov, 0.01)
Пример #6
0
 def test_2d(self):
     self.numer_delete_values = np.matrix(
         np.vstack((np.arange(1, 11), 2 * np.arange(1, 11)))).T
     x = -np.arange(1, 11)
     x[9] += 1
     self.denom_delete_values = np.vstack((x, 4 * x)).T
     self.est = np.matrix((-1, -0.5))
     self.n_blocks = self.numer_delete_values.shape[0]
     self.jknife = jk.RatioJackknife(self.est, self.numer_delete_values,
                                     self.denom_delete_values)
     assert_array_almost_equal(self.jknife.est, self.est)
     self.assertEqual(self.jknife.est.shape, (1, 2))
     assert_array_almost_equal(self.jknife.pseudovalues[0:9, 0], -1)
     self.assertEqual(self.jknife.pseudovalues[9, 0], 0)
     assert_array_almost_equal(self.jknife.pseudovalues[0:9, 1], -0.5)
     self.assertEqual(self.jknife.pseudovalues[9, 1], 0)
     assert_array_almost_equal(self.jknife.jknife_est, [[-0.9, -0.45]])
     assert_array_almost_equal(self.jknife.jknife_se, [[0.1, 0.05]])
     assert_array_almost_equal(self.jknife.jknife_var, [[0.01, 0.0025]])
     assert_array_almost_equal(self.jknife.jknife_cov,
                               np.matrix(((0.01, 0.005), (0.005, 0.0025))))