Ejemplo n.º 1
0
 def single_loci_linear_model(self, geno_ix, pheno_ix=0):
     import sklearn.metrics as sklm
     geno_pheno = self.get_geno_meths_df(geno_ix)
     X = np.array([geno_pheno.dropna().iloc[:, 0]]).T
     m = np.array([geno_pheno.dropna().iloc[:, pheno_ix + 1]]).T
     lm = LinearRegression().fit(X, m)
     lm.X = X
     lm.y_pred = lm.predict(lm.X)
     lm.mse = sklm.mean_squared_error(m, lm.y_pred)
     #lm.vscore = lm.score(lm.X, m)
     lm.vscore = sklm.explained_variance_score(m, lm.y_pred)
     sse = np.sum((lm.predict(lm.X) - m)**2,
                  axis=0) / float(lm.X.shape[0] - lm.X.shape[1])
     se = np.array(
         [np.sqrt(np.diagonal(sse * np.linalg.inv(np.dot(lm.X.T, lm.X))))])
     lmt = lm.coef_ / se
     lm.p = 2 * (1 - st.t.cdf(np.abs(lmt), m.shape[0] - lm.X.shape[1]))
     return (lm)