/* (specification)
"REGRESSION" (regression_):
*variables=custom;
- statistics[st_]=r,
- coeff,
- anova,
- outs,
- zpp,
- label,
- sha,
- ci,
- bcov,
- ses,
- xtx,
- collin,
- tol,
- selection,
- f,
- defaults,
- all;
+ +statistics[st_]=r,
+ coeff,
+ anova,
+ outs,
+ zpp,
+ label,
+ sha,
+ ci,
+ bcov,
+ ses,
+ xtx,
+ collin,
+ tol,
+ selection,
+ f,
+ defaults,
+ all;
export=custom;
^dependent=varlist;
- save[sv_]=resid,pred;
- method=enter.
+ +save[sv_]=resid,pred;
+ +method=enter.
*/
/* (declarations) */
/* (functions) */
}
}
static int
-regression_custom_export (struct cmd_regression *cmd UNUSED)
+regression_custom_export (struct cmd_regression *cmd UNUSED, void *aux UNUSED)
{
/* 0 on failure, 1 on success, 2 on failure that should result in syntax error */
if (!lex_force_match ('('))
int
cmd_regression (void)
{
- if (!parse_regression (&cmd))
+ if (!parse_regression (&cmd, NULL))
return CMD_FAILURE;
models = xnmalloc (cmd.n_dependent, sizeof *models);
/* Parser for the variables sub command */
static int
-regression_custom_variables (struct cmd_regression *cmd UNUSED)
+regression_custom_variables (struct cmd_regression *cmd UNUSED,
+ void *aux UNUSED)
{
lex_match ('=');
return n_data;
}
-
+static void
+coeff_init (pspp_linreg_cache *c, struct design_matrix *dm)
+{
+ c->coeff = xnmalloc (dm->m->size2 + 1, sizeof (*c->coeff));
+ c->coeff[0] = xmalloc (sizeof (*(c->coeff[0]))); /* The first coefficient is the intercept. */
+ c->coeff[0]->v_info = NULL; /* Intercept has no associated variable. */
+ pspp_coeff_init (c->coeff + 1, dm);
+}
static bool
run_regression (const struct ccase *first,
const struct casefile *cf, void *cmd_ UNUSED)
and store pointers to the variables that correspond to the
coefficients.
*/
- pspp_coeff_init (models[k], X);
-
+ coeff_init (models[k], X);
+
/*
Find the least-squares estimates and other statistics.
*/