in svinfer/linear_model/linear_regression.py [0:0]
def simulate_distribution(self):
index = np.triu_indices(self.k)
t = np.concatenate((self.xtx[index], self.xty), axis=0)
d1, d2 = self.k * (self.k + 1) // 2, self.k
v_t = np.zeros((d1 + d2, d1 + d2))
for i1 in range(d1 + d2):
for i2 in range(i1 + 1):
if i1 < d1 and i2 < d1:
k, j = index[0][i1], index[1][i1]
l, m = index[0][i2], index[1][i2]
v_t[i1, i2] = self.estimate_vcov_xx_xx(k, l, j, m)
elif i2 < d1 <= i1:
k = i1 - d1
j, m = index[0][i2], index[1][i2]
v_t[i1, i2] = self.estimate_vcov_xy_xx(k, j, m)
else:
k = i1 - d1
j = i2 - d1
v_t[i1, i2] = self.estimate_vcov_xy_xy(k, j)
v_t[i2, i1] = v_t[i1, i2]
return t, v_t