projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed a bug which crept into the npplot function
[pspp]
/
src
/
examine.q
diff --git
a/src/examine.q
b/src/examine.q
index f8d8ad36ea8821c281e8cf9d6e38a1117309d3d6..4444f9652a8ca874b06e08a76809659c2f1af7bb 100644
(file)
--- a/
src/examine.q
+++ b/
src/examine.q
@@
-41,6
+41,8
@@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "hash.h"
#include "casefile.h"
#include "factor_stats.h"
#include "hash.h"
#include "casefile.h"
#include "factor_stats.h"
+#include "moments.h"
+
/* (headers) */
#include "chart.h"
/* (headers) */
#include "chart.h"
@@
-120,8
+122,6
@@
print_factors(void)
*/
*/
- printf("Sum is %g; ",(*fs)->m[0].sum);
- printf("N is %g; ",(*fs)->m[0].n);
printf("Mean is %g\n",(*fs)->m[0].mean);
fs++ ;
printf("Mean is %g\n",(*fs)->m[0].mean);
fs++ ;
@@
-1289,7
+1289,7
@@
populate_descriptives(struct tab_table *tbl, int col, int row,
tab_float (tbl, col + 3,
row,
TAB_CENTER,
tab_float (tbl, col + 3,
row,
TAB_CENTER,
- m->s
tderr
,
+ m->s
e_mean
,
8,3);
8,3);
@@
-1307,7
+1307,7
@@
populate_descriptives(struct tab_table *tbl, int col, int row,
tab_float (tbl, col + 2,
row + 1,
TAB_CENTER,
tab_float (tbl, col + 2,
row + 1,
TAB_CENTER,
- m->mean - t * m->s
tderr
,
+ m->mean - t * m->s
e_mean
,
8,3);
tab_text (tbl, col + 1,
8,3);
tab_text (tbl, col + 1,
@@
-1319,7
+1319,7
@@
populate_descriptives(struct tab_table *tbl, int col, int row,
tab_float (tbl, col + 2,
row + 2,
TAB_CENTER,
tab_float (tbl, col + 2,
row + 2,
TAB_CENTER,
- m->mean + t * m->s
tderr
,
+ m->mean + t * m->s
e_mean
,
8,3);
tab_text (tbl, col,
8,3);
tab_text (tbl, col,
@@
-1408,10
+1408,41
@@
populate_descriptives(struct tab_table *tbl, int col, int row,
TAB_LEFT | TAT_TITLE,
_("Skewness"));
TAB_LEFT | TAT_TITLE,
_("Skewness"));
+
+ tab_float (tbl, col + 2,
+ row + 11,
+ TAB_CENTER,
+ m->skewness,
+ 8,3);
+
+ /* stderr of skewness */
+ tab_float (tbl, col + 3,
+ row + 11,
+ TAB_CENTER,
+ calc_seskew(m->n),
+ 8,3);
+
+
tab_text (tbl, col,
row + 12,
TAB_LEFT | TAT_TITLE,
_("Kurtosis"));
tab_text (tbl, col,
row + 12,
TAB_LEFT | TAT_TITLE,
_("Kurtosis"));
+
+
+ tab_float (tbl, col + 2,
+ row + 12,
+ TAB_CENTER,
+ m->kurtosis,
+ 8,3);
+
+ /* stderr of kurtosis */
+ tab_float (tbl, col + 3,
+ row + 12,
+ TAB_CENTER,
+ calc_sekurt(m->n),
+ 8,3);
+
+
}
}
@@
-1432,9
+1463,6
@@
np_plot(const struct metrics *m, const char *factorname)
/* Detrended Normal Plot */
struct chart dnp_chart;
/* Detrended Normal Plot */
struct chart dnp_chart;
- const struct weighted_value *wv = *(m->wvp);
-
-
/* The slope and intercept of the ideal normal probability line */
const double slope = 1.0 / m->stddev;
const double intercept = - m->mean / m->stddev;
/* The slope and intercept of the ideal normal probability line */
const double slope = 1.0 / m->stddev;
const double intercept = - m->mean / m->stddev;
@@
-1454,8
+1482,8
@@
np_plot(const struct metrics *m, const char *factorname)
chart_write_xlabel(&dnp_chart, _("Observed Value"));
chart_write_ylabel(&dnp_chart, _("Dev from Normal"));
chart_write_xlabel(&dnp_chart, _("Observed Value"));
chart_write_ylabel(&dnp_chart, _("Dev from Normal"));
- yfirst = gsl_cdf_ugaussian_Pinv (
wv[0].
rank / ( m->n + 1));
- ylast = gsl_cdf_ugaussian_Pinv (
wv[m->n_data-1].
rank / ( m->n + 1));
+ yfirst = gsl_cdf_ugaussian_Pinv (
m->wvp[0]->
rank / ( m->n + 1));
+ ylast = gsl_cdf_ugaussian_Pinv (
m->wvp[m->n_data-1]->
rank / ( m->n + 1));
{
/* Need to make sure that both the scatter plot and the ideal fit into the
{
/* Need to make sure that both the scatter plot and the ideal fit into the
@@
-1485,11
+1513,11
@@
np_plot(const struct metrics *m, const char *factorname)
double d_min = DBL_MAX;
for ( i = 0 ; i < m->n_data; ++i )
{
double d_min = DBL_MAX;
for ( i = 0 ; i < m->n_data; ++i )
{
- const double ns = gsl_cdf_ugaussian_Pinv (
wv[i].
rank / ( m->n + 1));
+ const double ns = gsl_cdf_ugaussian_Pinv (
m->wvp[i]->
rank / ( m->n + 1));
- chart_datum(&np_chart, 0,
wv[i].
v.f, ns);
+ chart_datum(&np_chart, 0,
m->wvp[i]->
v.f, ns);
- d_data[i] = (
wv[i].
v.f - m->mean) / m->stddev - ns;
+ d_data[i] = (
m->wvp[i]->
v.f - m->mean) / m->stddev - ns;
if ( d_data[i] < d_min ) d_min = d_data[i];
if ( d_data[i] > d_max ) d_max = d_data[i];
if ( d_data[i] < d_min ) d_min = d_data[i];
if ( d_data[i] > d_max ) d_max = d_data[i];
@@
-1499,7
+1527,7
@@
np_plot(const struct metrics *m, const char *factorname)
chart_rounded_tick((d_max - d_min) / 5.0));
for ( i = 0 ; i < m->n_data; ++i )
chart_rounded_tick((d_max - d_min) / 5.0));
for ( i = 0 ; i < m->n_data; ++i )
- chart_datum(&dnp_chart, 0,
wv[i].
v.f, d_data[i]);
+ chart_datum(&dnp_chart, 0,
m->wvp[i]->
v.f, d_data[i]);
free(d_data);
}
free(d_data);
}