struct ccase *c;
struct casereader *r;
- struct pair_stats *ps = xcalloc (sizeof (*ps), tt->n_vars);
+ struct pair_stats *ps = xcalloc (tt->n_vars, sizeof *ps);
int v;
struct string vallab0 ;
struct string vallab1 ;
struct tab_table *t = tab_create (cols, rows);
-
+ tab_set_format (t, RC_WEIGHT, wfmt);
ds_init_empty (&vallab0);
ds_init_empty (&vallab1);
if (is->cut)
{
- /* ds_put_cstr (&vallab0, "≥"); */
- ds_put_cstr (&vallab0, ">=");
+ ds_put_cstr (&vallab0, "≥");
ds_put_cstr (&vallab1, "<");
var_append_value_name (is->gvar, is->gval0, &vallab0);
var_append_value_name (is->gvar, is->gval1, &vallab1);
}
+ tab_vline (t, TAL_1, 1, heading_rows, rows - 1);
+
for (v = 0; v < tt->n_vars; ++v)
{
int i;
double cc, mean, sigma;
moments_calculate (ps[v].mom[i], &cc, &mean, &sigma, NULL, NULL);
- tab_double (t, 2, v * 2 + i + heading_rows, TAB_RIGHT, cc, wfmt);
- tab_double (t, 3, v * 2 + i + heading_rows, TAB_RIGHT, mean, NULL);
- tab_double (t, 4, v * 2 + i + heading_rows, TAB_RIGHT, sqrt (sigma), NULL);
- tab_double (t, 5, v * 2 + i + heading_rows, TAB_RIGHT, sqrt (sigma / cc), NULL);
+ tab_double (t, 2, v * 2 + i + heading_rows, TAB_RIGHT, cc, NULL, RC_WEIGHT);
+ tab_double (t, 3, v * 2 + i + heading_rows, TAB_RIGHT, mean, NULL, RC_OTHER);
+ tab_double (t, 4, v * 2 + i + heading_rows, TAB_RIGHT, sqrt (sigma), NULL, RC_OTHER);
+ tab_double (t, 5, v * 2 + i + heading_rows, TAB_RIGHT, sqrt (sigma / cc), NULL, RC_OTHER);
}
}
_("%g%% Confidence Interval of the Difference"),
tt->confidence * 100.0);
+ tab_vline (t, TAL_1, 1, heading_rows, rows - 1);
+
for (v = 0; v < tt->n_vars; ++v)
{
double df, pooled_variance, mean_diff, tval;
tab_text (t, 1, v * 2 + heading_rows, TAB_LEFT, _("Equal variances assumed"));
df = cc0 + cc1 - 2.0;
- tab_double (t, 5, v * 2 + heading_rows, TAB_RIGHT, df, NULL);
+ tab_double (t, 5, v * 2 + heading_rows, TAB_RIGHT, df, NULL, RC_OTHER);
pooled_variance = ((cc0 - 1)* sigma0 + (cc1 - 1) * sigma1) / df ;
tval = (mean0 - mean1) / sqrt (pooled_variance);
tval /= sqrt ((cc0 + cc1) / (cc0 * cc1));
- tab_double (t, 4, v * 2 + heading_rows, TAB_RIGHT, tval, NULL);
+ tab_double (t, 4, v * 2 + heading_rows, TAB_RIGHT, tval, NULL, RC_OTHER);
p = gsl_cdf_tdist_P (tval, df);
q = gsl_cdf_tdist_Q (tval, df);
mean_diff = mean0 - mean1;
- tab_double (t, 6, v * 2 + heading_rows, TAB_RIGHT, 2.0 * (tval > 0 ? q : p), NULL);
- tab_double (t, 7, v * 2 + heading_rows, TAB_RIGHT, mean_diff, NULL);
+ tab_double (t, 6, v * 2 + heading_rows, TAB_RIGHT, 2.0 * (tval > 0 ? q : p), NULL, RC_PVALUE);
+ tab_double (t, 7, v * 2 + heading_rows, TAB_RIGHT, mean_diff, NULL, RC_OTHER);
- std_err_diff = sqrt ((sigma0 / cc0) + (sigma1 / cc1));
- tab_double (t, 8, v * 2 + heading_rows, TAB_RIGHT, std_err_diff, NULL);
+ std_err_diff = sqrt (pooled_variance * (1.0/cc0 + 1.0/cc1));
+ tab_double (t, 8, v * 2 + heading_rows, TAB_RIGHT, std_err_diff, NULL, RC_OTHER);
/* Now work out the confidence interval */
q = (1 - tt->confidence)/2.0; /* 2-tailed test */
tval = gsl_cdf_tdist_Qinv (q, df);
- tab_double (t, 9, v * 2 + heading_rows, TAB_RIGHT, mean_diff - tval * std_err_diff, NULL);
- tab_double (t, 10, v * 2 + heading_rows, TAB_RIGHT, mean_diff + tval * std_err_diff, NULL);
+ tab_double (t, 9, v * 2 + heading_rows, TAB_RIGHT, mean_diff - tval * std_err_diff, NULL, RC_OTHER);
+ tab_double (t, 10, v * 2 + heading_rows, TAB_RIGHT, mean_diff + tval * std_err_diff, NULL, RC_OTHER);
/* Equal variances not assumed */
tab_text (t, 1, v * 2 + heading_rows + 1, TAB_LEFT, _("Equal variances not assumed"));
+ std_err_diff = sqrt ((sigma0 / cc0) + (sigma1 / cc1));
se2 = sigma0 / cc0 + sigma1 / cc1;
tval = mean_diff / sqrt (se2);
- tab_double (t, 4, v * 2 + heading_rows + 1, TAB_RIGHT, tval, NULL);
+ tab_double (t, 4, v * 2 + heading_rows + 1, TAB_RIGHT, tval, NULL, RC_OTHER);
{
double p, q;
double df = pow2 (s0 + s1) ;
df /= pow2 (s0) / (cc0 - 1) + pow2 (s1) / (cc1 - 1);
- tab_double (t, 5, v * 2 + heading_rows + 1, TAB_RIGHT, df, NULL);
+ tab_double (t, 5, v * 2 + heading_rows + 1, TAB_RIGHT, df, NULL, RC_OTHER);
p = gsl_cdf_tdist_P (tval, df);
q = gsl_cdf_tdist_Q (tval, df);
- tab_double (t, 6, v * 2 + heading_rows + 1, TAB_RIGHT, 2.0 * (tval > 0 ? q : p), NULL);
+ tab_double (t, 6, v * 2 + heading_rows + 1, TAB_RIGHT, 2.0 * (tval > 0 ? q : p), NULL, RC_PVALUE);
/* Now work out the confidence interval */
q = (1 - tt->confidence) / 2.0; /* 2-tailed test */
tval = gsl_cdf_tdist_Qinv (q, df);
}
- tab_double (t, 7, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff, NULL);
- tab_double (t, 8, v * 2 + heading_rows + 1, TAB_RIGHT, std_err_diff, NULL);
- tab_double (t, 9, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff - tval * std_err_diff, NULL);
- tab_double (t, 10, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff + tval * std_err_diff, NULL);
+ tab_double (t, 7, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff, NULL, RC_OTHER);
+ tab_double (t, 8, v * 2 + heading_rows + 1, TAB_RIGHT, std_err_diff, NULL, RC_OTHER);
+ tab_double (t, 9, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff - tval * std_err_diff, NULL, RC_OTHER);
+ tab_double (t, 10, v * 2 + heading_rows + 1, TAB_RIGHT, mean_diff + tval * std_err_diff, NULL, RC_OTHER);
- tab_double (t, 2, v * 2 + heading_rows, TAB_CENTER, ps[v].lev, NULL);
+ tab_double (t, 2, v * 2 + heading_rows, TAB_CENTER, ps[v].lev, NULL, RC_OTHER);
{
double df1 = 1;
double df2 = cc0 + cc1 - 2;
double q = gsl_cdf_fdist_Q (ps[v].lev, df1, df2);
- tab_double (t, 3, v * 2 + heading_rows, TAB_CENTER, q, NULL);
+ tab_double (t, 3, v * 2 + heading_rows, TAB_CENTER, q, NULL, RC_PVALUE);
}
}