Добавить переменные с границами доверительного интервала для среднего
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 | *(Вопрос) Мне требуется добавить в файл данных 2 новые переменные. Одну, содержащую нижнюю границу доверительного интервала для среднего значения переменной из файла данных и другую, содержащую верхнюю границу того же интервала. *(Ответ) Автор: Raynald Levesque, размещён в SPSSX-L 03.06.2003. *//////////////. DEFINE !AddCInt (vname=!TOKENS(1) /conf=!TOKENS(1) /fname=!TOKENS(1)) SET MPRINT=yes. GET FILE=!fname. /* следующая команда просто для проверки результата работы макроса (посмотреть на доверит. интервал) */ SELECT IF NOT MISSING(!vname). EXAMINE VARIABLES=!vname /COMPARE GROUP /PLOT=NONE /STATISTICS DESCRIPTIVES /CINTERVAL !conf /MISSING LISTWISE /NOTOTAL. COMPUTE nobreak=1. AGGREGATE OUTFILE=* /BREAK=nobreak /N=n /sd_var=SD(!vname) /mean_var=MEAN(!vname). COMPUTE se_mean=sd_var/SQRT(n). COMPUTE lowCI=mean_var - se_mean * IDF.T(1-(100-!conf)/200,n-1). COMPUTE upCI =mean_var + se_mean * IDF.T(1-(100-!conf)/200,n-1). VARIABLE LABELS lowCI !QUOTE(!CONCAT("НГ ",!conf,"% ДИ для среднего значения ",!vname)). VARIABLE LABELS upCI !QUOTE(!CONCAT("ВГ ",!conf,"% ДИ для среднего значения ",!vname)). SAVE OUTFILE='c:\\temp\\temp.sav' /KEEP=nobreak lowCI upCI. GET FILE=!fname. COMPUTE nobreak=1. MATCH FILES FILE=* /TABLE='c:\\temp\\temp.sav' /BY=nobreak. EXECUTE. SET MPRINT=no. !ENDDEFINE. *//////////////. ** Пример 1 (95% ДИ для большой выборки). !addCInt vname=salary conf=95 fname='c:\\Program Files\\SPSS\\Employee data.sav'. ** Пример 2 (90% ДИ для малой выборки). GET FILE='c:\\Program Files\\SPSS\\Employee data.sav'. N OF CASES 15. SAVE OUTFILE='c:\\temp\\eee data.sav'. !addCInt vname=salbegin conf=90 fname='c:\\temp\\eee data.sav'. ** Пример 3 (95% ДИ при наличии пропущенных значений). GET FILE='c:\\Program Files\\SPSS\\Employee data.sav'. * "Сделаем" несколько пропусков. IF UNIFORM(1)<.2 salbegin=$SYSMIS. SAVE OUTFILE='c:\\temp\\eee data2.sav'. !addCInt vname=salbegin conf=95 fname='c:\\temp\\eee data2.sav'. |
Related pages
...