Regression: Fix bug where missing values in the dependent variable were not getting... 20120312030502/pspp 20120313030502/pspp
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 11 Mar 2012 18:00:18 +0000 (19:00 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 11 Mar 2012 18:00:18 +0000 (19:00 +0100)
Fixes bug #35758

src/language/stats/regression.q
tests/language/stats/regression.at

index 4ef12c98479ec2aac3b0711aaedef9a7410899c5..ca1f67da0e00849f11898d7c95c0fe1b84724f67 100644 (file)
@@ -963,8 +963,10 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
                                 dict_get_weight (dict), MV_ANY);
 
   reader = casereader_clone (input);
-  reader = casereader_create_filter_missing (reader, v_variables, n_variables,
+  reader = casereader_create_filter_missing (reader, all_vars, n_all_vars,
                                             MV_ANY, NULL, NULL);
+
+
   for (; (c = casereader_read (reader)) != NULL; case_unref (c))
     {
       covariance_accumulate (cov, c);
index 81bbce436a998bc737dea03b8e5d6017ab84500f..ee1414332b6c77eed5d4fe98e3158b555ed1bd2e 100644 (file)
@@ -1614,3 +1614,62 @@ regression /variables=x y /dependent=y.
 AT_CHECK([pspp -o pspp.csv regcrash.sps], [1], [ignore], [ignore])
 
 AT_CLEANUP
+
+
+
+AT_SETUP([REGRESSION missing dependent variable])
+
+dnl Test for a bug where missing values in the dependent variable were not being
+dnl ignored like they should have been.
+AT_DATA([reg-mdv-ref.sps], [dnl
+data list notable list / v0 to v2.
+begin data
+ 0.65377128  7.735648 -23.97588
+-0.13087553  6.142625 -19.63854
+ 0.34880368  7.651430 -25.26557
+ 0.69249021  6.125125 -16.57090
+-0.07368178  8.245789 -25.80001
+-0.34404919  6.031540 -17.56743
+ 0.75981559  9.832291 -28.35977
+-0.46958313  5.343832 -16.79548
+-0.06108490  8.838262 -29.25689
+ 0.56154863  6.200189 -18.58219
+end data
+regression /variables=v0 v1
+            /statistics defaults
+            /dependent=v2
+            /method=enter.
+])
+
+AT_CHECK([pspp -o pspp-ref.csv reg-mdv-ref.sps])
+
+AT_DATA([reg-mdv.sps], [dnl
+data list notable list / v0 to v2.
+begin data
+ 0.65377128  7.735648 -23.97588
+-0.13087553  6.142625 -19.63854
+ 0.34880368  7.651430 -25.26557
+ 0.69249021  6.125125 -16.57090
+-0.07368178  8.245789 -25.80001
+-0.34404919  6.031540 -17.56743
+ 0.75981559  9.832291 -28.35977
+-0.46958313  5.343832 -16.79548
+-0.06108490  8.838262 -29.25689
+ 0.56154863  6.200189 -18.58219
+ 0.5         8         9
+end data
+
+missing values v2 (9).
+
+regression /variables=v0 v1
+            /statistics defaults
+            /dependent=v2
+            /method=enter.
+])
+
+AT_CHECK([pspp -o pspp.csv reg-mdv.sps])
+
+AT_CHECK([diff pspp.csv pspp-ref.csv])
+
+
+AT_CLEANUP