Ignore:
Timestamp:
01/09/12 15:03:31 (2 years ago)
Author:
lan <lan@…>
Branch:
default
Convert:
6c8b04ecd1ecf6a1cbf5ea3e91e70a1adf3621d6
Message:

Printing regression model updated: model c is now printed using
print c

Function print_linear_regression_model is deleted

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/regression/linear.py

    r9243 r9519  
    404404 
    405405 
    406 def print_linear_regression_model(lr): 
    407     """Pretty-prints linear regression model, 
    408     i.e. estimated regression coefficients with standard errors, t-scores 
    409     and significances. 
    410  
    411     :param lr: a linear regression model object. 
    412     :type lr: :class:`LinearRegression`     
    413  
    414     """ 
    415     from string import join 
    416     m = lr    
    417     labels = ('Variable', 'Coeff Est', 'Std Error', 't-value', 'p') 
    418     print join(['%10s' % l for l in labels], ' ') 
    419  
    420     fmt = "%10s " + join(["%10.3f"]*4, " ") + " %5s" 
    421     if not lr.p_vals: 
    422         raise ValueError("Model does not contain model statistics.") 
    423     def get_star(p): 
    424         if p < 0.001: return  "*"*3 
    425         elif p < 0.01: return "*"*2 
    426         elif p < 0.05: return "*" 
    427         elif p < 0.1: return  "." 
    428         else: return " " 
    429      
    430     if m.intercept == True: 
    431         stars =  get_star(m.p_vals[0]) 
    432         print fmt % ('Intercept', m.coefficients[0], \ 
    433                      m.std_error[0], m.t_scores[0], m.p_vals[0], stars) 
    434         for i in range(len(m.domain.attributes)): 
    435             stars = get_star(m.p_vals[i+1]) 
    436             print fmt % (m.domain.attributes[i].name,\ 
    437                          m.coefficients[i+1], m.std_error[i+1],\ 
    438                          m.t_scores[i+1], m.p_vals[i+1], stars) 
    439     else: 
    440         for i in range(len(m.domain.attributes)): 
    441             stars = get_star(m.p_vals[i]) 
    442             print fmt % (m.domain.attributes[i].name,\ 
    443                          m.coefficients[i], m.std_error[i],\ 
    444                          m.t_scores[i], m.p_vals[i], stars) 
    445     print "Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1 empty 1" 
     406    def to_string(self): 
     407        """Pretty-prints linear regression model, 
     408        i.e. estimated regression coefficients with standard errors, t-scores 
     409        and significances. 
     410 
     411        :param lr: a linear regression model object. 
     412        :type lr: :class:`LinearRegression`     
     413 
     414        """ 
     415        from string import join  
     416        labels = ('Variable', 'Coeff Est', 'Std Error', 't-value', 'p') 
     417        lines = [join(['%10s' % l for l in labels], ' ')] 
     418 
     419        fmt = "%10s " + join(["%10.3f"]*4, " ") + " %5s" 
     420        if not self.p_vals: 
     421            raise ValueError("Model does not contain model statistics.") 
     422        def get_star(p): 
     423            if p < 0.001: return  "*"*3 
     424            elif p < 0.01: return "*"*2 
     425            elif p < 0.05: return "*" 
     426            elif p < 0.1: return  "." 
     427            else: return " " 
     428         
     429        if self.intercept == True: 
     430            stars =  get_star(self.p_vals[0]) 
     431            lines.append(fmt % ('Intercept', self.coefficients[0],  
     432                         self.std_error[0], self.t_scores[0], self.p_vals[0], stars)) 
     433            for i in range(len(self.domain.attributes)): 
     434                stars = get_star(self.p_vals[i+1]) 
     435                lines.append(fmt % (self.domain.attributes[i].name, 
     436                             self.coefficients[i+1], self.std_error[i+1], 
     437                             self.t_scores[i+1], self.p_vals[i+1], stars)) 
     438        else: 
     439            for i in range(len(self.domain.attributes)): 
     440                stars = get_star(self.p_vals[i]) 
     441                lines.append(fmt % (self.domain.attributes[i].name, 
     442                             self.coefficients[i], self.std_error[i], 
     443                             self.t_scores[i], self.p_vals[i], stars)) 
     444        lines.append("Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1 empty 1") 
     445        return "\n".join(lines) 
     446 
     447    def __str__(self): 
     448        return self.to_string() 
     449         
    446450 
    447451 
     
    542546    table = Orange.data.Table("housing.tab") 
    543547    c = LinearRegressionLearner(table) 
    544     print_linear_regression_model(c) 
     548    print c 
Note: See TracChangeset for help on using the changeset viewer.