Paired samples T-TEST: fix bug calculating correlation coefficient.
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 27 Jun 2015 05:42:08 +0000 (07:42 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 27 Jun 2015 05:42:08 +0000 (07:42 +0200)
The value did not properly consider the weights of the data.
Thanks to Douglas Bonett <dgbonett@ucsc.edu> for reporting this.

NEWS
src/language/stats/t-test-paired.c
tests/language/stats/t-test.at

diff --git a/NEWS b/NEWS
index efa5a36c1f7a80f1e5b632492e096fc8caab20c7..6ff6af7ed7964edf9c3ca9931e2269f421bb3b2f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,10 @@ Changes since 0.8.5:
  * The graphical user interface uses Gtk+ version 3 instead of version 2.
    Accordingly, it has a somewhat different look and feel.
 
+ * A bug, where the correlation coefficient in the paired samples t-test
+   procedure was incorrectly calculated when presented with weighted data,
+   has been fixed.
+
 Changes from 0.8.4 to 0.8.5:
 
  * The FREQUENCIES and CROSSTABS commands can now generate barcharts.
index 933b0b35535dcdcc07517302dc9d0160e04337b0..5cf4a9f29ed8125716aea0406c99e684fe9d0b99 100644 (file)
@@ -132,7 +132,7 @@ paired_run (const struct tt *tt, size_t n_pairs, vp *pairs, struct casereader *r
          moments_pass_two (pp->mom0, val0->f, w);
          moments_pass_two (pp->mom1, val1->f, w);
          moments_pass_two (pp->mom_diff, val0->f - val1->f, w);
-         pp->sum_of_prod += val0->f * val1->f;
+         pp->sum_of_prod += val0->f * val1->f * w;
        }
     }
   casereader_destroy (r);
index 14251c1b01c688209ad31c0ae2c8beaf8a1b0adc..efd69e5da38f227d01fda6f58d74baacc652c376 100644 (file)
@@ -170,6 +170,49 @@ AT_CHECK([pspp -o missing.csv missing.sps])
 AT_CHECK([cat missing.csv], [0], [expout])
 AT_CLEANUP
 
+
+dnl Tests for a bug in the paired samples T test when weighted
+dnl Thanks to Douglas Bonett for reporting this.
+AT_SETUP([T-TEST weighted paired bug])
+AT_DATA([t-test.sps], [dnl
+DATA LIST notable LIST /x y w *.
+BEGIN DATA.
+1 1 255
+1 2 43
+1 3 216
+2 1 3
+2 2 1
+2 3 12
+END DATA.
+
+WEIGHT BY w.
+
+T-TEST
+        PAIRS =  y WITH  x (PAIRED)
+        /MISSING=ANALYSIS
+        /CRITERIA=CIN(0.95).
+])
+
+AT_CHECK([pspp -O format=csv t-test.sps], [0], [dnl
+Table: Paired Sample Statistics
+,,Mean,N,Std. Deviation,S.E. Mean
+Pair 1,y,1.94,530.00,.96,.04
+,x,1.03,530.00,.17,.01
+
+Table: Paired Samples Correlations
+,,N,Correlation,Sig.
+Pair 1,y & x,530.00,.11,.008
+
+Table: Paired Samples Test
+,,Paired Differences,,,,,,,
+,,,,,95% Confidence Interval of the Difference,,,,
+,,Mean,Std. Deviation,Std. Error Mean,Lower,Upper,t,df,Sig. (2-tailed)
+Pair 1,y - x,.91,.95,.04,.83,.99,22.07,529.00,.000
+])
+
+AT_CLEANUP
+
+
 dnl Tests for a bug in the paired samples T test.
 dnl Thanks to Mike Griffiths for reporting this problem.
 AT_SETUP([T-TEST /PAIRS bug])