/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2007, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2007, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <config.h>
+#include <float.h>
#include <gsl/gsl_cdf.h>
#include <gsl/gsl_matrix.h>
#include <math.h>
for (v = 0; v < cmd->n_vars; ++v)
{
+ const gsl_matrix *ucm;
gsl_matrix *cm;
struct per_var_ws *pvw = &ws.vws[v];
const struct categoricals *cats = covariance_get_categoricals (pvw->cov);
continue;
}
- cm = covariance_calculate_unnormalized (pvw->cov);
+ ucm = covariance_calculate_unnormalized (pvw->cov);
+
+ cm = gsl_matrix_alloc (ucm->size1, ucm->size2);
+ gsl_matrix_memcpy (cm, ucm);
moments1_calculate (ws.dd_total[v]->mom, &pvw->n, NULL, NULL, NULL, NULL);
reg_sweep (cm, 0);
pvw->sse = gsl_matrix_get (cm, 0, 0);
+ gsl_matrix_free (cm);
pvw->ssa = pvw->sst - pvw->sse;
pvw->n_groups = categoricals_n_total (cats);
pvw->mse = (pvw->sst - pvw->ssa) / (pvw->n - pvw->n_groups);
-
- gsl_matrix_free (cm);
}
for (v = 0; v < cmd->n_vars; ++v)
tab_text (t, 3, 0, TAB_CENTER | TAT_TITLE, _("df"));
tab_text (t, 4, 0, TAB_CENTER | TAT_TITLE, _("Mean Square"));
tab_text (t, 5, 0, TAB_CENTER | TAT_TITLE, _("F"));
- tab_text (t, 6, 0, TAB_CENTER | TAT_TITLE, _("Significance"));
+ tab_text (t, 6, 0, TAB_CENTER | TAT_TITLE, _("Sig."));
for (i = 0; i < cmd->n_vars; ++i)
tab_text (t, 1, 0, TAB_CENTER | TAT_TITLE, _("Levene Statistic"));
tab_text (t, 2, 0, TAB_CENTER | TAT_TITLE, _("df1"));
tab_text (t, 3, 0, TAB_CENTER | TAT_TITLE, _("df2"));
- tab_text (t, 4, 0, TAB_CENTER | TAT_TITLE, _("Significance"));
+ tab_text (t, 4, 0, TAB_CENTER | TAT_TITLE, _("Sig."));
tab_title (t, _("Test of Homogeneity of Variances"));
ds_destroy (&vstr);
- tab_text_format (t, count + 2, c_num + 2, TAB_RIGHT, "%g", coeffn->coeff);
+ tab_text_format (t, count + 2, c_num + 2, TAB_RIGHT, "%.*g",
+ DBL_DIG + 1, coeffn->coeff);
}
++c_num;
}
TAB_RIGHT, df,
NULL);
- /* The Significance */
- tab_double (t, 7, (v * lines_per_variable) + i + 1 + n_contrasts,
- TAB_RIGHT, 2 * gsl_cdf_tdist_Q (T,df),
- NULL);
+ {
+ double p = gsl_cdf_tdist_P (T, df);
+ double q = gsl_cdf_tdist_Q (T, df);
+
+ /* The Significance */
+ tab_double (t, 7, (v * lines_per_variable) + i + 1 + n_contrasts,
+ TAB_RIGHT, 2 * ((T > 0) ? q : p),
+ NULL);
+ }
}
if ( v > 0 )