Obtaining p-values in SPSS
The SPSS syntax below gives p-values for four distributions. These can also be done using a spreadsheet.
[CUT AND PASTE INTO A SPSS SYNTAX WINDOW, SELECT ALL AND RUN; AMEND DATA INPUT AS REQUIRED]
* gives p-values for z, t, F and chi-square distributions
*
*
* example data set given below
*
* enter your own data in 4 columns as follows:
*
* distribution type: t=T distribution; z=Standard Normal; f=F distribution;
* c= chi-square distribution,
*
* critical value (cv),
*
* degrees of freedom (df, for the t,F and chi-square distributions),
*
* second degree of freedom (for F distribution only)
*
* non-applicable parameters should be denoted by a full stop (.)
*
set errors=none.
data list free
/ type (a1) cv (f10.5) df (f10.5) df2 (f10.5).
begin data
t -1.645 5 .
z 2.58 . .
f 5 10 34
c 3.84 1 .
end data.
define !pvalt ( !pos !charend('/')
/ !pos !tokens(1)).
compute pout=2*(1-cdf.t(abs(!1),!2))*(type='t').
compute cv=!1.
compute df=!2.
!enddefine.
define !pvalz ( !pos !charend('/')).
compute pout=pout+2*(1-cdfnorm(abs(!1)))*(type='z').
!enddefine.
define !pvalf ( !pos !charend('/')
/ !pos !tokens(1)
/ !pos !tokens(1) ).
compute pout=pout+(1-cdf.f(!1,!2,!3))*(type='f').
!enddefine.
define !pvalc ( !pos !charend('/')
/ !pos !tokens(1)).
compute pout=pout+(1-cdf.chisq(!1,!2))*(type='c').
!enddefine.
define !pval (!pos !tokens(1)
/ !pos !charend('/')
/ !pos !tokens(1)
/ !pos !tokens(1)).
!if (!1 !eq 't') !then.
use all.
!pvalt !2/ !3.
!ifend.
!if (!1 !eq 'z') !then.
use all.
!pvalz !2/ .
!ifend.
!if (!1 !eq 'f') !then.
use all.
!pvalf !2/ !3 !4.
!ifend.
!if (!1 !eq 'c') !then.
use all.
!pvalc !2/ !3.
!ifend.
!enddefine.
!pvalt cv/ df.
!pvalz cv/ .
!pvalf cv/ df df2.
!pvalc cv/ df .
formats type (a1) cv df df2 pout (f11.8).
variable labels type 'Distribution' /cv 'Critical Value' /df 'df' /df2 'df2 for F' / pout '2-sided p-value'.
report format=list automatic align(center)
/variables=type cv df df2 pout
/title "Two-sided P-values for z, t, F and chi-square critical values".