PSPPire on Windows: Increase the number of decimal places of regression analysis
(too old to reply)
Daniel Silverton
2017-05-14 19:23:30 UTC
Pspp-users mailing list
John Darrington
2017-05-15 12:30:55 UTC
On Sun, May 14, 2017 at 09:23:30PM +0200, Daniel Silverton wrote:
html><head></head><body<div style="font-family: Verdana;font-size: 12.0px;"><div>Hello,</div> <div>&nbsp</div> <div>I have a question about changing the number of decimal points in the output of a PSPP multiple linear regression analysis. It looks like my default is 3 decimal places. I&#39;m trying to change this to 6 decimal points, as a lot of my sig levels (p-values) are at 0.000 and I need exact p-values for publication.</div> <div>&nbsp;</div> <div>Having read previous threads, I attempted to run a syntax change in the PSSPIRE Syntax editor ( File-&gt;New-&gt;Syntax, 1. SET FORMAT=F12.6 2. Execute, Run-&gt;All). All outputs update to 6 decimal points, including R, R-squared, beta, t, and F, except the p-values which stay at three decimal points. What am I doing wrong?</div>




The short answer is you're doing nothing wrong at all. You are correct, that
normally SET FORMAT=F12.6 causes values to be reported to 6 decimal places.
However there are a few exceptions and one of those exceptions is p values
(another is degrees of freedom).

This was a decision made a while ago because most people don't want to see p-values
to a large number of decimal places.

I think it's important to realise what precision is required in any analysis.
In fact, I remember when I was an undergraduate - I got marked down on one of
my assignments because I had reported some value (I forget what it was now)
to an absurdly large number of decimal places (I had naively copied the display
on my pocket calculator). Whilst the number was not incorrect, the tutor
marked my answer down, not because it was wrong, but because I had given
information which was useless - and thus demonstrated that I didn't understand
the general purpose of the exercise.

A P value is a probability. If PSPP reports a p-value of 0.000 then it means
that the probability of the reported results being acheived through mere coincidence
is less than 0.0005 - I wonder why the editors of the journal for which you are
publishing really care if it's 0.0004 or 0.0003 ?

If you really do want higher precision here, then I'm afraid your only choice at
the moment is to change this struct in src/output/tab.c and recompile:

struct fmt_spec ugly[n_RC] = {
{FMT_F, 8, 0}, /* INTEGER */
{FMT_F, 8, 3}, /* WEIGHT (ignored) */
{FMT_F, 8, 3}, /* PVALUE */
{FMT_F, 8, 3} /* OTHER (ignored) */

However if you choose to do that, then you should be aware that figures in the
5th or 6th decimal place might well be different when run on different computers,
due to differences in floating point algorithms in their hardware and any
libraries used. Anyone who decides to check your results might well get slightly
different answers.


(PS: Please don't send mail in HTML!!! - as you can see -it makes things
rather difficult to read!)
Avoid eavesdropping. Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.