Example #1
0
 def _sample_variance_components(self):
     ## Sample sigma2_u
     first = self.p
     for i in range(0, self.c):
         prior = self.priors_sigma2u[i]
         qi = self.qi[i]  # size of random vector ui
         df = prior["df"] + qi
         # print 'num_fixed: '+str(self.num_fixed)+' num_locations: '+ str(self.num_locations)
         # print 'theta:'+str(np.shape(self.theta))
         ui = self.theta[first : first + qi, 0]
         first += qi
         # print np.shape(u)
         # print np.shape(self.invG)
         try:
             scale1 = (ui.T * self.Ginvs[i] * ui)[0, 0]
             # print 'u.T * invG * u = ' + str(scale0)
             scale = (scale1 + prior["df"] * prior["scale"]) / df
             # print 'scale = ' + str(scale) + ' scalebig = ' + str(scalebig)
             self.sigma2_u[i, 0] = gt.rchisquare_inv_scaled(df, scale)
             # print 'sigma_b: '+str(x)+ ' df='+str(df)+' scale='+str(scale)
         except Exception, e:
             print "Error while sampling sigma2_u"
             print "df=" + str(df) + " scale=" + str(scale)
             print e
             raise e
Example #2
0
 def _sample_variance_components(self):
     ## Sample sigma2_b
     df = self.prior_b['df'] + self.num_random
     #print 'num_fixed: '+str(self.num_fixed)+' num_locations: '+ str(self.num_locations)
     #print 'theta:'+str(np.shape(self.theta))
     u = self.theta[self.num_fixed:self.num_locations,0]
     #print np.shape(u)
     #print np.shape(self.invG)
     try:
         scale1 = (u.T * self.invG * u)[0,0]
         #print 'u.T * invG * u = ' + str(scale0)
         scale = (scale1 + self.prior_b['df']*self.prior_b['scale']) / df
         #print 'scale = ' + str(scale) + ' scalebig = ' + str(scalebig)
         self.utinvu = scale1
         self.u_df = df
         self.u_scale = scale
         self.theta[self.sigma2_b_idx,0] = gt.rchisquare_inv_scaled(df,scale)
         #print 'sigma_b: '+str(x)+ ' df='+str(df)+' scale='+str(scale)
     except Exception, e:
         print "Error while sampling sigma2_b"
         print "df="+str(df)+" scale="+str(scale)
         print e
         raise e
Example #3
0
            print "Error while sampling sigma2_b"
            print "df="+str(df)+" scale="+str(scale)
            print e
            raise e
        ## Sample sigma2_e
        #print 'sigma_e  index: '+ str(self.sigma2_e_idx)
        try:
            df = self.prior_e['df'] + self.num_y
            e = self.X*self.theta[0:self.num_fixed,0] + self.Z*self.theta[self.num_fixed:self.num_locations]
            e = self.y - e
            scale = ((e.T * e)[0,0] + self.prior_e['df']*self.prior_e['scale']) / df
            self.eeT = (e.T * e)[0,0]
            self.e_df = df
            self.e_scale = scale
            #print 'df '+ str(df) + ' scale ' + str(scale)
            self.theta[self.sigma2_e_idx] = gt.rchisquare_inv_scaled(df,scale)
            #print 'sigma_e: '+str(x)+ ' sample_e'+str(self.sample)
        except Exception, e:
            print "Error while sampling sigma2_e"
            print "df="+str(df)+" scale="+scale
            print e
            raise e

    # Mixed Model Equations
    def _compute_mm_equations(self):
        # C beta_hat = r
        # C dimension = (self.num_fixed+self.num_random)^2
        # we trust in C
        p = self.num_fixed
        pq = self.num_locations
        self.mmeq_C = np.asmatrix(np.zeros(pq*pq).reshape(pq,pq))
Example #4
0
                # print 'sigma_b: '+str(x)+ ' df='+str(df)+' scale='+str(scale)
            except Exception, e:
                print "Error while sampling sigma2_u"
                print "df=" + str(df) + " scale=" + str(scale)
                print e
                raise e
        ## Sample sigma2_e
        # print 'sigma_e  index: '+ str(self.sigma2_e_idx)
        prior = self.priors_sigma2e[0]
        try:
            df = prior["df"] + self.n
            e = self.X * self.theta[0 : self.p, 0] + self.Z * self.theta[self.p :]
            e = self.y - e
            scale = ((e.T * e)[0, 0] + prior["df"] * prior["scale"]) / df
            # print 'df '+ str(df) + ' scale ' + str(scale)
            self.sigma2_e[0, 0] = gt.rchisquare_inv_scaled(df, scale)
            # print 'sigma_e: '+str(x)+ ' sample_e'+str(self.sample)
        except Exception, e:
            print "Error while sampling sigma2_e"
            print "df=" + str(df) + " scale=" + str(scale)
            print e
            raise e

    def plot(self):
        # n = len(params)
        num_samples = self.num_samples
        plt.figure(1)
        # print "NUM SAMPLES="+str(num_samples)

        x = range(0, num_samples)