1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
		*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.
		*   Inference for Proportions.
		*~~~~~~~~~~~~~~~~~~~~~.
		*         20th March 2001         .
		*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.

*see Moore and McCabe (2001) Intro to the Practice of Statistics, chapter 8.


*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Large-Sample Significance Test for a Single Population Proportion.
* (see Moore and McCabe (2001) Intro to the Practice of Statistics, p. 588-591).
*-------------------------------------------------------------------------------.

MATRIX.
COMPUTE n = {4040}. /* Enter the sample size here (i.e. change the number in curly brackets)*/
COMPUTE x = {1992}. /* Enter the number of "successes" here (change the number in curly brackets)*/
COMPUTE p0 = {0.5}. /* Enter the hypothesised value for p (change the number in curly brackets)/*
*The remainder of the syntax calculates the z score and signficance levels given the values 
	for n, x and p0 which you have entered.
*NB you don't need to alter anything from here on.
COMPUTE p = x/n.
COMPUTE SE_p0 = SQRT((p0*(1-p0))/n).
COMPUTE z = (p - p0) /SE_p0.
COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(Z))).
COMPUTE SIGz_LTL = CDFNORM(Z).
COMPUTE SIGz_UTL = 1 - CDFNORM(Z).
COMPUTE ANSWER = {n, p, SE_p0, z, SIGz_2TL, SIGz_LTL, SIGz_UTL}.
PRINT ANSWER / FORMAT "F10.3" / CLABELS = n, p, SE, z, SIGz_2TL, SIGz_LTL, SIGz_UTL.
END MATRIX.

*NB if you want to obtain values to a greater (lesser) number of decimal places, change the 
	format specified in the last but one line of the syntax.
*e.g. if you want only 3 decimal places, change the format to "F10.3".
*-------------------------------------------------------------------------------.



*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Large-Sample Confidence Interval for a Single Population Proportion.
* (see Moore and McCabe (2001) Intro to the Practice of Statistics, p. 586-588).
*-------------------------------------------------------------------------------.
*For the inverse normal computation, I use the approximation used by 
	http://www.hpmuseum.org/software/67pacs/67ndist.htm adapted from Abramowitz and 
	Stegun, Handbook of Mathematical Functions, National Bureau of Standards 1970. 

MATRIX.
COMPUTE n = {4040}.       /* Enter the sample size here (change the number in curly brackets)*/
COMPUTE x = {2048}.       /* Enter the number of "successes"(change the number in curly brackets)*/
COMPUTE CONFID = {0.99}.  /* Enter the desired confidence level here */
*The remainder of the syntax calculates the Confidence Interval given the values for n and x 
	which you have entered above.
*NB you don't need to alter anything from here on.
COMPUTE Q = 0.5 * (1-CONFID).
COMPUTE A = ln(1/(Q**2)).
COMPUTE T_ = SQRT(A).
COMPUTE zstar = T_ - ((2.515517 + (0.802853*T_)  + (0.010328*T_**2))/
(1 + (1.432788*T_) + (0.189269*T_**2) + (0.001308*T_**3))).
COMPUTE phat = x/n.
COMPUTE SE_phat = SQRT((phat*(1-phat))/n).
COMPUTE m = zstar * SE_phat.
COMPUTE LOWER = phat - m.
COMPUTE UPPER = phat + m.
COMPUTE ANSWER = {n, phat, zstar, SE_phat, Lower, Upper}.
PRINT ANSWER / FORMAT "F10.5" 
	/Title = "Confidence Interval for a Single Population Proportion" 
	/ CLABELS = n, phat, zstar, SE, Lower, Upper.
END MATRIX.

*NB if you want to obtain values to a greater (lesser) number of decimal places, 
	change the format specified in the last but one line of the syntax.
*e.g. if you want only 3 decimal places, change the format to "F10.3".
*------------------------------------------------------------------------------.
*------------------------------------------------------------------------------.


*##############################################################################.


*------------------------------------------------------------------------------.
*------------------------------------------------------------------------------.

* Large-sample significance test for two population proportions.

MATRIX.
COMPUTE n1 = {7180}.  /* Enter the first sample size here (change the number in curly brackets)*/
COMPUTE n2 = {9916}.  /* Enter the second sample size here (change the number in curly brackets)*/
COMPUTE x1 = {1630}.  /* Enter the number of "successes" for sample 1 here (change the nb in curly brackets)*/
COMPUTE x2 = {1684}. /* Enter the number of "successes" for sample 2 here (change the nb in curly brackets)*/
*The remainder of the syntax calculates the z score and signficance levels given the values for n1, 
	n2, x1 and x2 which you have entered.
*NB you don't need to alter anything from here on.
COMPUTE p1 = x1/n1.
COMPUTE p2 = x2/n2.
COMPUTE phat = (x1 + x2) / (n1 + n2).
COMPUTE SE_phat = SQRT(phat * (1 - phat) * ((1/n1) + (1/n2))).
COMPUTE z = (p1 - p2) /SE_phat.
COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(z))).
COMPUTE SIGz_LTL = CDFNORM(Z).
COMPUTE SIGz_UTL = 1 - CDFNORM(Z).
COMPUTE ANSWER = {p1, p2, SE_phat, z, SIGz_2TL, SIGz_LTL, SIGz_UTL}.
PRINT ANSWER / FORMAT "F10.5" / CLABELS = p1, p2, SE, z, SIGz_2TL, SIGz_LTL, SIGz_UTL.
END MATRIX.
*-------------------------------------------------------------------------------.



*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Large-sample Confidence Intervals for Comparing for two population proportions.
* (see Moore and McCabe (2001) Intro to the Practice of Statistics, p. 602-604).
*-------------------------------------------------------------------------------.
*For the inverse normal computation, I use the approximation used by 
	http://www.hpmuseum.org/software/67pacs/67ndist.htm adapted from Abramowitz and Stegun, 
	Handbook of Mathematical Functions, National Bureau of Standards 1970. 

MATRIX.
COMPUTE n1 = {84}.  /* Enter the first sample size here (change the number in curly brackets)*/
COMPUTE n2 = {106}.  /* Enter the second sample size here (change the number in curly brackets)*/
COMPUTE x1 = {15}.  /* Enter the number of "successes" for sample 1 here (change the nb in curly brackets)*/
COMPUTE x2 = {21}. /* Enter the number of "successes" for sample 2 here (change the nb in curly brackets)*/
COMPUTE CONFID = {0.90}.  /* Enter the desired confidence level here */
*The remainder of the syntax calculates the Confidence Interval given the values for n and 
	x which you have entered above.
*NB you don't need to alter anything from here on.
COMPUTE Q = 0.5 * (1-CONFID).
COMPUTE A = ln(1/(Q**2)).
COMPUTE T_ = SQRT(A).
COMPUTE zstar = T_ - ((2.515517 + (0.802853*T_)  + (0.010328*T_**2))/
 (1 + (1.432788*T_) + (0.189269*T_**2) + (0.001308*T_**3))).
COMPUTE p1hat = x1/n1.
COMPUTE p2hat = x2/n2.
COMPUTE SE_phat = SQRT(((p1hat*(1-p1hat))/n1) + (p2hat*(1-p2hat))/n2)).
COMPUTE m = zstar * SE_phat.
COMPUTE LOWER = (p1hat - p2hat) - m.
COMPUTE UPPER = (p1hat - p2hat) + m.
COMPUTE diffp1p2 = p1hat - p2hat.
COMPUTE ANSWER = {n1, n2, diffp1p2, zstar, SE_phat, Lower, Upper}.
PRINT ANSWER / FORMAT "F10.5" 
	/Title = "Confidence Interval for Comparing 2 Proportions" 
	/ CLABELS = n1, n2, diffp1p2, zstar, SE, Lower, Upper.
END MATRIX.

*NB if you want to obtain values to a greater (lesser) number of decimal places, 
	change the format specified in the last but one line of the syntax.
*e.g. if you want only 3 decimal places, change the format to "F10.3".


*(c) Gwilym Pryce 2002.