all;
export=custom;
^dependent=varlist;
+ save=residuals;
method=enter.
*/
/* (declarations) */
tab_float (t, 2, 1, TAB_RIGHT, rsq, 10, 2);
tab_float (t, 3, 1, TAB_RIGHT, adjrsq, 10, 2);
tab_float (t, 4, 1, TAB_RIGHT, std_error, 10, 2);
- tab_title (t, 0, _("Model Summary"));
+ tab_title (t, _("Model Summary"));
tab_submit (t);
}
pval = 2 * gsl_cdf_tdist_Q (fabs (t_stat), 1.0);
tab_float (t, 6, j + 1, 0, pval, 10, 2);
}
- tab_title (t, 0, _("Coefficients"));
+ tab_title (t, _("Coefficients"));
tab_submit (t);
free (tmp);
}
tab_float (t, 6, 1, 0, pval, 8, 3);
- tab_title (t, 0, _("ANOVA"));
+ tab_title (t, _("ANOVA"));
tab_submit (t);
}
static void
gsl_matrix_get (c->cov, row, col), 8, 3);
}
}
- tab_title (t, 0, _("Coefficient Correlations"));
+ tab_title (t, _("Coefficient Correlations"));
tab_submit (t);
}
static void
statistics_keyword_output (reg_stats_tol, keywords[tol], c);
statistics_keyword_output (reg_stats_selection, keywords[selection], c);
}
+static void
+subcommand_save (int save, pspp_linreg_cache *lc, const struct casefile *cf, int *is_missing)
+{
+ int i;
+ int case_num;
+ double residual;
+ const union value **vals = NULL;
+ const union value *obs = NULL;
+ struct casereader *r;
+ struct ccase c;
+
+ assert (lc != NULL);
+ assert (lc->depvar != NULL);
+ assert (is_missing != NULL);
+
+ if (save)
+ {
+ vals = xnmalloc (n_variables, sizeof (*vals));
+ for (r = casefile_get_reader (cf); casereader_read (r, &c);
+ case_destroy (&c))
+ {
+ case_num = casereader_cnum (r) - 1;
+ if (!is_missing[case_num])
+ {
+ for (i = 0; i < n_variables; ++i)
+ {
+ vals[i] = case_data (&c, v_variables[i]->fv);
+ if (v_variables[i]->index == lc->depvar->index)
+ {
+ obs = vals[i];
+ }
+ }
+ residual = (*lc->residual) ((const struct variable **) v_variables,
+ (const union value **) vals, obs, lc, n_variables);
+ }
+ }
+ free (vals);
+ }
+}
static int
reg_inserted (const struct variable *v, struct variable **varlist, int n_vars)
{
"if (strncmp (v_name, model_depvars[i], PSPP_REG_MAXLEN) == 0)\n\t\t{\n\t\t\t");
fprintf (fp, "return i;\n\t\t}\n\t}\n}\n");
}
+static int
+reg_has_categorical (pspp_linreg_cache * c)
+{
+ int i;
+ const struct variable *v;
+
+ for (i = 1; i < c->n_coeffs; i++)
+ {
+ v = pspp_linreg_coeff_get_var (c->coeff + i, 0);
+ if (v->type == ALPHA)
+ {
+ return 1;
+ }
+ }
+ return 0;
+}
+
static void
subcommand_export (int export, pspp_linreg_cache * c)
{
{
assert (c != NULL);
assert (model_file != NULL);
- fp = fopen (fh_get_filename (model_file), "w");
+ fp = fopen (fh_get_file_name (model_file), "w");
assert (fp != NULL);
fprintf (fp, "%s", reg_preamble);
reg_print_getvar (fp, c);
- reg_print_categorical_encoding (fp, c);
+ if (reg_has_categorical (c))
+ {
+ reg_print_categorical_encoding (fp, c);
+ }
fprintf (fp, "%s", reg_export_t_quantiles_1);
increment = 0.5 / (double) increment;
for (i = 0; i < n_quantiles - 1; i++)
*/
pspp_linreg ((const gsl_vector *) Y, X->m, &lopts, lcache);
subcommand_statistics (cmd.a_statistics, lcache);
+ subcommand_save (cmd.sbc_save, lcache, cf, is_missing_case);
subcommand_export (cmd.sbc_export, lcache);
gsl_vector_free (Y);
design_matrix_destroy (X);