X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fstats%2Fregression.q;h=3706760a38ed9689b64b4d0afaedd7a05908fb0a;hb=92f198d13c9214c0d75b936f0ea0dc2684ea914b;hp=7bb324295beaec3d1e0a3032d50a8e03026c1d94;hpb=945fd370f9fb880b310fb88f868ad47c2ae84533;p=pspp diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q index 7bb324295b..3706760a38 100644 --- a/src/language/stats/regression.q +++ b/src/language/stats/regression.q @@ -57,27 +57,27 @@ /* (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) */ @@ -908,7 +908,7 @@ subcommand_export (int export, pspp_linreg_cache * c) } } 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 ('(')) @@ -932,7 +932,7 @@ regression_custom_export (struct cmd_regression *cmd UNUSED) int cmd_regression (void) { - if (!parse_regression (&cmd)) + if (!parse_regression (&cmd, NULL)) return CMD_FAILURE; models = xnmalloc (cmd.n_dependent, sizeof *models); @@ -996,7 +996,8 @@ mark_missing_cases (const struct casefile *cf, struct variable *v, /* 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 ('='); @@ -1077,7 +1078,14 @@ prepare_data (int n_data, int is_missing_case[], 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) @@ -1212,8 +1220,8 @@ run_regression (const struct ccase *first, 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. */