*========================================. *Macros for THE ADAM SMITH LABS, . *(c) G. Pryce. * Version: 29th Sept 2005. *========================================. *========================================. * Copyright (c) 2005 Gwilym Pryce. *========================================. DEFINE pz_lt_zi (!POSITIONAL !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. compute Zi_Var = !1 . COMPUTE PROB = CDFNORM(Zi_Var). execute. MATRIX. GET PROB_VAR /VARIABLES = PROB. GET Zi_Var /VARIABLES = Zi_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE zi = Zi_Var(1). COMPUTE ANSWER = {zi, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Prob(z < zi) for a given zi " / CLABELS = zi, Prob. END MATRIX. !ENDDEFINE. DEFINE pz_gt_zi (!POSITIONAL !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. compute Zi_Var = !1 . COMPUTE PROB = 1 - CDFNORM(Zi_Var). execute. MATRIX. GET PROB_VAR /VARIABLES = PROB. GET Zi_Var /VARIABLES = Zi_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE zi = Zi_Var(1). COMPUTE ANSWER = {zi, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Prob(z > zi) for a given zi " / CLABELS = zi, Prob. END MATRIX. !ENDDEFINE. DEFINE pz_lg_zi (zil = !ENCLOSE('(',')') / ziu = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. compute ZiL_Var = !zil . compute ZiU_Var = !ziu . execute. COMPUTE PROBL = CDFNORM(ZiL_Var). COMPUTE PROBU = 1 - CDFNORM(ZiU_Var). COMPUTE PROBLG = PROBL + PROBU. execute. MATRIX. GET PROB_VAR /VARIABLES = PROBLG. GET ZiL_Var /VARIABLES = ZiL_Var. GET ZiU_Var /VARIABLES = ZiU_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE ziL = ZiL_Var(1). COMPUTE ziU = ZiU_Var(1). COMPUTE ANSWER = {ziL, ziU, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Prob((z < ziL) OR (z > ziU)) for a given zi " / CLABELS = ziL, ziU, Prob. END MATRIX. !ENDDEFINE. DEFINE pz_gl_zi (zil = !ENCLOSE ('(',')') / ziu = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. compute ZiL_Var = !zil . compute ZiU_Var = !ziu . execute. COMPUTE PROBL = CDFNORM(ZiL_Var). COMPUTE PROBU = 1 - CDFNORM(ZiU_Var). COMPUTE PROBLG = 1 - (PROBL + PROBU). execute. MATRIX. GET PROB_VAR /VARIABLES = PROBLG. GET ZiL_Var /VARIABLES = ZiL_Var. GET ZiU_Var /VARIABLES = ZiU_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE ziL = ZiL_Var(1). COMPUTE ziU = ZiU_Var(1). COMPUTE ANSWER = {ziL, ziU, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Prob(ziL < z < ziU) for a given zi " / CLABELS = ziL, ziU, Prob. END MATRIX. !ENDDEFINE. DEFINE zi_lt_zp (p = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE Zi = PROBIT(!p). EXECUTE. MATRIX. GET Zi_VAR /VARIABLES = Zi. COMPUTE Zi = Zi_VAR(1). COMPUTE PROB= {!p}. /*Enter the given probability into the curly brackets*/ COMPUTE ANSWER = {Zi, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Value of zi such that Prob(z < zi) = PROB when PROB is given" / CLABELS = zi, PROB. END MATRIX. !END DEFINE. DEFINE zi_gt_zp (p = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE Zi = PROBIT(1-!p). EXECUTE. MATRIX. GET Zi_VAR /VARIABLES = Zi. COMPUTE Zi = Zi_VAR(1). COMPUTE PROB= {!p}. /*Enter the given probability into the curly brackets*/ COMPUTE ANSWER = {Zi, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Value of zi such that Prob(z > zi) = PROB when PROB is given" / CLABELS = zi, PROB. END MATRIX. !END DEFINE. DEFINE zi_gl_zp (p = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE PROB = !p. COMPUTE PROBLG = 1 - !p. COMPUTE PROBL = PROBLG / 2. COMPUTE ZiL_Var = PROBIT(PROBL). COMPUTE ZiU_Var = -1 * ZiL_Var . execute. MATRIX. GET PROB_VAR /VARIABLES = PROB. GET ZiL_Var /VARIABLES = ZiL_Var. GET ZiU_Var /VARIABLES = ZiU_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE ziL = ZiL_Var(1). COMPUTE ziU = ZiU_Var(1). COMPUTE ANSWER = {ziL, ziU, PROB}. PRINT ANSWER / FORMAT "F10.5" /Title = " Value of zi such that Prob(-zi < z < zi) = PROB, when PROB is given " / CLABELS = ziL, ziU, Prob. END MATRIX. !ENDDEFINE. DEFINE CI_L1M (n = !ENCLOSE('(',')') /x_bar = !ENCLOSE('(',')') /s = !ENCLOSE('(',')') /c = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE PROB = !c. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE ZiL = PROBIT(PROBL). COMPUTE ZiU = -1 * ZiL . execute. MATRIX. COMPUTE n = {!n}. /* Enter the sample size here (i.e. change the number in curly brackets)*/ COMPUTE x_bar = {!x_bar}. /* Enter the sample mean here*/ COMPUTE s = {!s}. /* Enter the sample standard deviation here*/ COMPUTE SE = s/SQRT(n). GET ZiL /VARIABLES = ZiL. COMPUTE ERR = -ZiL * SE. COMPUTE LOWER = x_bar - err. COMPUTE UPPER = x_bar + err. COMPUTE ANSWER = {n, x_bar, ZiL, SE, err, Lower, Upper}. PRINT ANSWER / FORMAT "F10.5" /Title = "Large sample confidence interval for the population mean" / CLABELS = n, x_bar, ZiL, SE, err, Lower, Upper. END MATRIX. !END DEFINE. DEFINE CI_S1M (n = !ENCLOSE('(',')') /x_bar = !ENCLOSE('(',')') /s = !ENCLOSE('(',')') /c = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE df = !n - 1. COMPUTE PROB = !c. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE TiL = IDF.T(PROBL, df). COMPUTE TiU = -1 * TiL . execute. MATRIX. COMPUTE n = {!n}. /* Enter the sample size here (i.e. change the number in curly brackets)*/ COMPUTE x_bar = {!x_bar}. /* Enter the sample mean here*/ COMPUTE s = {!s}. /* Enter the sample standard deviation here*/ COMPUTE SE = s/SQRT(n). GET TiL /VARIABLES = TiL. GET df /VARIABLES = df. COMPUTE ERR = -TiL * SE. COMPUTE LOWER = x_bar - err. COMPUTE UPPER = x_bar + err. COMPUTE ANSWER = {n, x_bar, TiL, SE, err, Lower, Upper}. PRINT ANSWER / FORMAT "F10.5" /Title = "Small sample confidence interval for the population mean" / CLABELS = n, x_bar, TiL, SE, err, Lower, Upper. END MATRIX. !END DEFINE. DEFINE CI_S2Mp (n1 = !ENCLOSE('(',')') /n2 = !ENCLOSE('(',')') /x_bar1 = !ENCLOSE('(',')') /x_bar2 = !ENCLOSE('(',')') /s1 = !ENCLOSE('(',')') /s2 = !ENCLOSE('(',')') /c = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE df = !n1 + !n2 - 2. COMPUTE PROB = !c. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE TiL = IDF.T(PROBL, df). COMPUTE TiU = -1 * TiL . execute. MATRIX. GET df / variables = df. /* Enter the df here (i.e. change the number in curly brackets)*/ COMPUTE x_bar1 = {!x_bar1}. /* Enter the sample mean here*/ COMPUTE x_bar2 = {!x_bar2}. /* Enter the sample mean here*/ COMPUTE sp = SQRT(( (!n1 - 1)* !s1**2 + (!n2 - 1) * !s2**2 ) / (!n1 + !n2 - 2) ). COMPUTE SE = sp*(SQRT((1/!n1) + (1/!n2))). GET TiL /VARIABLES = TiL. GET df /VARIABLES = df. COMPUTE ERR = -TiL * SE. COMPUTE SAMPDIFF = x_bar1 - x_bar2. COMPUTE LOWER = SAMPDIFF - err. COMPUTE UPPER = SAMPDIFF + err. COMPUTE ANSWER = {SAMPDIFF, SP, TiL, SE, err, Lower, Upper}. PRINT ANSWER / FORMAT "F10.5" /Title = "CI for the difference between 2 population means (pooled variance)" / CLABELS = SAMPDIFF, SP, TiL, SE, err, Lower, Upper. END MATRIX. !END DEFINE. DEFINE CI_S2Md (n1 = !ENCLOSE('(',')') /n2 = !ENCLOSE('(',')') /x_bar1 = !ENCLOSE('(',')') /x_bar2 = !ENCLOSE('(',')') /s1 = !ENCLOSE('(',')') /s2 = !ENCLOSE ('(',')') /c = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE df = min((!n1 -1), (!n2 - 1)). COMPUTE PROB = !c. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE TiL = IDF.T(PROBL, df). COMPUTE TiU = -1 * TiL . execute. MATRIX. GET df / variables = df. /* Enter the df here (i.e. change the number in curly brackets)*/ COMPUTE x_bar1 = {!x_bar1}. /* Enter the sample mean here*/ COMPUTE x_bar2 = {!x_bar2}. /* Enter the sample mean here*/ COMPUTE SE = SQRT((!s1**2/!n1) + (!s2**2/!n2)). GET TiL /VARIABLES = TiL. GET df /VARIABLES = df. COMPUTE ERR = -TiL * SE. COMPUTE SAMPDIFF = x_bar1 - x_bar2. COMPUTE LOWER = SAMPDIFF - err. COMPUTE UPPER = SAMPDIFF + err. COMPUTE ANSWER = {SAMPDIFF, TiL, SE, err, Lower, Upper}. PRINT ANSWER / FORMAT "F10.5" /Title = "CI for the difference between 2 population means (different variances)" / CLABELS = SAMPDIFF, TiL, SE, err, Lower, Upper. END MATRIX. !END DEFINE. DEFINE CI_L1P (n = !ENCLOSE ('(',')') /x = !ENCLOSE('(',')') /c = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE PROB = !c. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE ZiL = PROBIT(PROBL). COMPUTE ZiU = -1 * ZiL . execute. MATRIX. COMPUTE n = !n. /* Enter the sample size here */ COMPUTE x = !x. /* Enter the number of "successes" or particular outcomes here */ COMPUTE CONFID = !c. /* Enter the desired confidence level here */ COMPUTE pTrad = x/n. /* the traditional estimate of the pop. proportion used in CI estimation */ COMPUTE pWlsn = (x+2)/(n + 4). /* the Wilson estimate */ GET zstar /VARIABLES = ZiL. COMPUTE SE_Trad = SQRT((pTrad*(1-pTrad))/n). COMPUTE SE_Wlsn = SQRT((pWlsn*(1-pWlsn))/(n+4)). COMPUTE eTrad = -zstar * SE_Trad. COMPUTE eWlsn = -zstar * SE_Wlsn. COMPUTE LOW_Trad = pTrad - eTrad. COMPUTE LOW_Wlsn = pWlsn - eWlsn. COMPUTE UP_Trad = pTrad + eTrad. COMPUTE UP_Wlsn = pWlsn + eWlsn. COMPUTE ANSWER = {pTrad, zstar, se_trad, etrad, low_trad, up_trad}. PRINT ANSWER / FORMAT "F10.6" /Title = "Traditional Large sample CI for one proportion" / CLABELS = ptrad, zstar, se_trad, etrad, low_trad, up_trad. COMPUTE ANSWER = {pWlsn, zstar, se_wlsn, ewlsn, low_wlsn, up_wlsn}. PRINT ANSWER / FORMAT "F10.6" /Title = "Wilson Large sample CI for one proportion" / CLABELS = pwlsn, zstar, se_wlsn, ewlsn, low_wlsn, up_wlsn. END MATRIX. !ENDDEFINE. DEFINE N_L1M (e = !ENCLOSE('(',')') /c = !ENCLOSE('(',')') /s = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE PROB = !c. COMPUTE E = !E. COMPUTE PROBLG = 1 - !c. COMPUTE PROBL = PROBLG / 2. COMPUTE ZiL_Var = PROBIT(PROBL). COMPUTE ZiU_Var = -1 * ZiL_Var . COMPUTE N = (ZiL_Var**2) * (!s**2) / (!e**2). execute. MATRIX. GET PROB_VAR /VARIABLES = PROB. GET N / VARIABLES = N. GET E / VARIABLES = E. GET ZiL_Var /VARIABLES = ZiL_Var. GET ZiU_Var /VARIABLES = ZiU_Var. COMPUTE Prob = PROB_VAR(1). COMPUTE ziL = ZiL_Var(1). COMPUTE ziU = ZiU_Var(1). COMPUTE ANSWER = {e, PROB, ziL, ziU, N}. PRINT ANSWER / FORMAT "F10.5" /Title = "n_hat = estimated sample size needed to achieve an error of size e given c" / CLABELS = e, c, ziL, ziU, n_hat. END MATRIX. !ENDDEFINE. DEFINE H_L1M (n = !ENCLOSE('(',')') / x_bar = !ENCLOSE('(',')') / m = !ENCLOSE('(',')') / s = !ENCLOSE('(',')') ). GET FILE='Q:\QUANTS\one.sav'. COMPUTE x_bar = !x_bar. COMPUTE m = !m. COMPUTE s = !s. COMPUTE n = !n. COMPUTE zi = (!x_bar - !m) / (!s /sqrt(!n)) . execute. * This calculates the Large-Sample Significance Test for a Single Population mean. MATRIX. GET ZI / VARIABLES = zi. GET X_BAR / VARIABLES = X_BAR. GET N / VARIABLES = N. GET S / VARIABLES = S. COMPUTE SE = S / (SQRT(N)). COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(Zi))). COMPUTE SIGz_LTL = CDFNORM(Zi). COMPUTE SIGz_UTL = 1 - CDFNORM(Zi). COMPUTE ANSWER = {n, x_bar, SE, zi, SIGz_2TL, SIGz_LTL, SIGz_UTL}. PRINT ANSWER / FORMAT "F10.5" /Title = "Large sample sig. test for one mean" / CLABELS = n, x_bar, SE, zi, SIGz_2TL, SIGz_LTL, SIGz_UTL. END MATRIX. !ENDDEFINE. DEFINE H_S1M (n = !ENCLOSE('(',')') / x_bar = !ENCLOSE('(',')') / m = !ENCLOSE('(',')') / s = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. COMPUTE x_bar = !x_bar. COMPUTE m = !m. COMPUTE s = !s. COMPUTE n = !n. COMPUTE ti = (!x_bar - !m) / (!s /sqrt(!n)) . execute. MATRIX. GET TI / VARIABLES = ti. GET X_BAR / VARIABLES = X_BAR. GET N / VARIABLES = N. GET S / VARIABLES = S. COMPUTE SE = S / (SQRT(N)). COMPUTE SIGt_2TL = 2 * (1 - TCDF(ABS(ti), n-1)). COMPUTE SIGt_LTL = TCDF(ti, n-1). COMPUTE SIGt_UTL = 1 - TCDF(ti, n-1). COMPUTE ANSWER = {n, x_bar, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL}. PRINT ANSWER / FORMAT "F10.5" / /Title = "Small sample sig. test for one mean" / CLABELS = n, x_bar, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL. END MATRIX. !ENDDEFINE. DEFINE H_S2Mp (n1 = !ENCLOSE('(',')') / n2 = !ENCLOSE('(',')') / x_bar1 = !ENCLOSE('(',')') / x_bar2 = !ENCLOSE('(',')') / s1 = !ENCLOSE('(',')') / s2 = !ENCLOSE('(',')') ). GET FILE='Q:\QUANTS\one.sav'. MATRIX. COMPUTE n1 = {!n1}. /* Enter the first sample size here */ COMPUTE n2 = {!n2}. /* Enter the second sample size here */ COMPUTE x_bar1 = {!x_bar1}. /* Enter the mean of sample 1 here */ COMPUTE x_bar2 = {!x_bar2}. /* Enter the mean of sample 2 here */ COMPUTE s1 = {!s1}. /* Enter the first standard deviation here*/ COMPUTE s2 = {!s2}. /* Enter the second standard deviation here*/ COMPUTE sp = SQRT(((n1-1)*s1**2+(n2-1)*s2**2)/(n1 + n2 -2)). COMPUTE x1b_x2b = x_bar1 - x_bar2. COMPUTE SE = sp * SQRT((1/n1)+(1/n2)). COMPUTE ti = (x_bar1 - x_bar2) /SE. COMPUTE df = n1 + n2 -2. COMPUTE SIGt_2TL = 2 * (1 - TCDF(ABS(ti), df)). COMPUTE SIGt_LTL = TCDF(ti, df). COMPUTE SIGt_UTL = 1 - TCDF(ti, df). COMPUTE ANSWER = {df, x1b_x2b, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL}. PRINT ANSWER / FORMAT "F10.5" /Title = "Equal vars Indep samples t-test for equal means (H0 pop1ave = pop2ave)" / CLABELS = df, x1b_x2b, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL. END MATRIX. !ENDDEFINE. DEFINE H_S2Md (n1 = !ENCLOSE('(',')') / n2 = !ENCLOSE('(',')') / x_bar1 = !ENCLOSE('(',')') / x_bar2 = !ENCLOSE('(',')') / s1 = !ENCLOSE('(',')') / s2 = !ENCLOSE('(',')') ). GET FILE='Q:\QUANTS\one.sav'. COMPUTE n1 = !n1. COMPUTE n2 = !n2. COMPUTE x_bar1 = !x_bar1. COMPUTE x_bar2 = !x_bar2. COMPUTE s1 = !s1. COMPUTE s2 = !s2. COMPUTE SE = SQRT((s1**2/n1)+(s2**2/n2)). COMPUTE x1b_x2b = x_bar1 - x_bar2. COMPUTE ti = (x_bar1 - x_bar2) /SE. COMPUTE df1 = n1 -1. COMPUTE df2 = n2 - 2. COMPUTE df = MIN(df1, df2). COMPUTE SIGt_2TL = 2 * (1 - CDF.T(ABS(ti), df)). COMPUTE SIGt_LTL = CDF.T(ti, df). COMPUTE SIGt_UTL = 1 - CDF.T(ti, df). execute. MATRIX. GET TI / VARIABLES = ti. GET x1b_x2b / VARIABLES = x1b_x2b . GET df / VARIABLES = df. GET SE / VARIABLES = SE. GET SIGt_2TL / VARIABLES = SIGt_2TL. GET SIGt_LTL / VARIABLES = SIGt_LTL. GET SIGt_UTL / VARIABLES = SIGt_UTL. COMPUTE ANSWER = {df, x1b_x2b, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL}. PRINT ANSWER / FORMAT "F10.6" /Title = "Uneq vars Indep samples t-test for equality of means (H0 pop1ave = pop2ave)" / CLABELS = df, x1b_x2b, SE, ti, SIGt_2TL, SIGt_LTL, SIGt_UTL. END MATRIX. !ENDDEFINE. DEFINE H_S2VF (n1 = !ENCLOSE('(',')') / n2 = !ENCLOSE('(',')') / s1 = !ENCLOSE('(',')') / s2 = !ENCLOSE('(',')') ). GET FILE='Q:\QUANTS\one.sav'. COMPUTE n1 = !n1. COMPUTE n2 = !n2. COMPUTE s1 = !s1. COMPUTE s2 = !s2. EXECUTE. DO IF (s1 GE s2) . COMPUTE V_nmrtor = s1 * s1. COMPUTE V_dnmtor = s2 * s2. COMPUTE n_nmrtor = n1 - 1. COMPUTE n_dnmtor = n2 - 1. ELSE IF (s1 LT s2) . COMPUTE V_nmrtor = s2 * s2. COMPUTE V_dnmtor = s1* s1. COMPUTE n_nmrtor = n2 -1. COMPUTE n_dnmtor = n1 - 1. END IF. COMPUTE Fc = V_nmrtor / V_dnmtor. COMPUTE SIGF_UTL = 1 - CDF.F(Fc, n_nmrtor, n_dnmtor). EXECUTE. MATRIX. GET V_nmrtor / VARIABLES = V_nmrtor . GET V_dnmtor / VARIABLES = V_dnmtor . GET n_nmrtor / VARIABLES = n_nmrtor . GET n_dnmtor / VARIABLES = n_dnmtor . GET Fc / VARIABLES = Fc . GET SIGF_UTL / VARIABLES = SIGF_UTL . COMPUTE ANSWER = {V_nmrtor, V_dnmtor, n_nmrtor, n_dnmtor, Fc, SIGF_UTL}. PRINT ANSWER / FORMAT "F10.5" /Title = "F-Test for equality of variance (H0 V_nmrtor = V_dnmtor)" / CLABELS = V_nmrtor, V_dnmtor, df_nmrtor, df_dnmtor, Fc, SIGF_UTL. END MATRIX. !ENDDEFINE. DEFINE H_L1P (n = !ENCLOSE('(',')') / x = !ENCLOSE('(',')') / pi = !ENCLOSE('(',')') ). GET FILE='Q:\QUANTS\one.sav'. MATRIX. COMPUTE n = {!n}. /* Enter the sample size here */ COMPUTE x = {!x}. /* Enter the number of "successes" or particular outcomes here */ COMPUTE pi = {!pi}. /* Enter the hypothesised value for the population proportion /* COMPUTE p = x/n. COMPUTE s2 = pi*(1-pi). COMPUTE SE_pi = SQRT(s2/n). COMPUTE z = (p - pi) /SE_pi. COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(Z))). COMPUTE SIGz_LTL = CDFNORM(Z). COMPUTE SIGz_UTL = 1 - CDFNORM(Z). COMPUTE ANSWER = {n, p, SE_pi, z, SIGz_2TL, SIGz_LTL, SIGz_UTL}. PRINT ANSWER / FORMAT "F10.5" /Title = "Large sample sig. test for one proportion" / CLABELS = n, p, SE_pi, z, SIGz_2TL, SIGz_LTL, SIGz_UTL. END MATRIX. !ENDDEFINE. DEFINE H_L2P (n1 = !ENCLOSE('(',')') / n2 = !ENCLOSE('(',')') / x1 = !ENCLOSE('(',')') / x2 = !ENCLOSE('(',')')). GET FILE='Q:\QUANTS\one.sav'. MATRIX. COMPUTE n1 = {!n1}. /* Enter the first sample size here */ COMPUTE n2 = {!n2}. /* Enter the second sample size here */ COMPUTE x1 = {!x1}. /* Enter the number of "successes" or particular outcomes for sample 1 here */ COMPUTE x2 = {!x2}. /* Enter the number of "successes" or particular outcomes for sample 2 here */ 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" /Title = "Large sample sig. test for two proportions" / CLABELS = p1, p2, SE, z, SIGz_2TL, SIGz_LTL, SIGz_UTL. END MATRIX. !ENDDEFINE. DEFINE CLT (variable = !ENCLOSE('(',')') /nsample = !ENCLOSE('(',')') /Npop = !ENCLOSE('(',')') /reps = !ENCLOSE('(',')') ). !DO !L = 1 !TO !reps. - TITLE !reps Repeated Samples of size !nsample . - temporary. - sample !nsample from !Npop. - MATRIX. - GET VARIABLE / VARIABLES = !variable. - COMPUTE N = NROW(VARIABLE). - COMPUTE I = MAKE(n,1,1). - COMPUTE X_BAR = (1/N)*(TRANSPOS(I) * VARIABLE). - SAVE {X_BAR} / OUTFILE =!CONCAT('"H:\CLT__', !variable, '_sample', !L, '.sav"') /VARIABLES = X_BAR. - END MATRIX. !DOEND. GET FILE= !CONCAT('"H:\CLT__', !variable, '_sample', '1.sav"'). !DO !J = 2 !TO !reps. - ADD FILES /FILE=* /FILE=!CONCAT('"H:\CLT__', !variable, '_sample', !J, '.sav"'). - EXECUTE. !DOEND. SAVE / OUTFILE =!CONCAT('"H:\CLT__n', !nsample, !variable, '_sample', 'ALL', !reps, '.sav"') . TITLE !reps Repeated Samples of size !nsample . GRAPH /HISTOGRAM=X_BAR /TITLE= 'Histogram of Sample Means from Repeated Samples'. TITLE !reps Repeated Samples of size !nsample . DESCRIPTIVES VARIABLES=X_BAR /STATISTICS=MEAN STDDEV MIN MAX . !ENDDEFINE. *========================================. * Copyright (c) 2005 Gwilym Pryce. *========================================.