def lm_fit(self, output_label, model_fun, x_column_or_label=None): if x_column_or_label is None: input_labels = [ lbl for lbl in self.labels if not lbl == output_label ] f_values = [ model_fun(*row) for row in self.select(input_labels).rows ] p = len(input_labels) else: f_values = model_fun(self._get_column(x_column_or_label)) p = 1 fit_tbl = Table(["Quantity", "Value"]) return fit_tbl.with_rows([ ("Residual standard error", self.RSE(output_label, f_values)), ("R^2", self.R2(output_label, f_values)), ("F-statistic", self.F_stat(output_label, f_values, p)) ])
def with_rows(self, *args, **kwargs): return self._fix_(Table.with_rows(*args, **kwargs))