***Этот синтаксис по анализу тестов написан по мотивам информационной публикации корпорации SPSS http://www.spsstools.net/Syntax/ItemAnalysis/UsingSPSSforItemAnalysis.pdf. * Синтаксис адаптирован 27.03.2003, Raynald Levesque. * (Разумеется, синтаксис может быть модифицирован так, чтобы он работал без дополнительного вмешательства с любым количеством вопросов теста). ***Сначала синтаксис оценивает правильность заполнения каждого теста, подразумевая, * что в последней строке содержится ключ с правильными ответами. Результат оценки - матрица * из 0 и 1. PRESERVE. GET FILE='c:\\temp\\ItemAnalysisExercise.sav'. SET TVARS=LABELS /TNUMBERS=LABELS. COMPUTE ID=$CASENUM. SORT CASES BY ID (D). DO REPEAT key=#1 TO #10/ q=q1 TO q10. + DO IF $CASENUM=1. + COMPUTE key=q. + ELSE. + COMPUTE q=(q=key). + END IF. END REPEAT. XSAVE OUTFILE "c:\\temp\\SCORED.sav"/DROP=id. EXECUTE . GET FILE="c:\\temp\\SCORED.sav.". ***Удаляем запись с ключом к тесту. SORT CASES BY name (A). SELECT IF(name NE 'key'). ***Считаем % правильных ответов для каждого заполненного теста. COMPUTE score=MEAN(q1 to q10)*100. ***Ранжируем по результатам тестов. RANK VARIABLES=score (D) /NTILES (3) /PRINT=NO /TIES=MEAN . ***Приводим данные в порядок. RENAME VARIABLES (nscore=group). FORMATS score (f8.0). VALUE LABELS group 1 'хорошо' 2 'средне' 3 'плохо'. SAVE OUTFILE 'c:\\temp\\scored.sav'. ***обобщаем успешность ответов по каждому вопросу, строим таблицы для рис. 3-4 публикации. AGGREGATE OUTFILE=* /BREAK=group /q1 'percentage right q1'=MEAN(q1) /q2 'percentage right q2'=MEAN(q2) /q3 'percentage right q3'=MEAN(q3) /q4 'percentage right q4'=MEAN(q4) /q5 'percentage right q5'=MEAN(q5) /q6 'percentage right q6'=MEAN(q6) /q7 'percentage right q7'=MEAN(q7) /q8 'percentage right q8'=MEAN(q8) /q9 'percentage right q9'=MEAN(q9) /q10 'percentage right q10'=MEAN(q10). FLIP VARIABLES=q1 TO q10 /NEWNAMES=group. *Внимание: в поздних версиях SPSS вместо v1, v2, v3 команда FLIP создаст переменные * k_1, k_2, k_3. Соответственно придётся переписать следующую строку. RENAME VARIABLES (case_lbl=qnum) (v1=хорошо) (v2=средне) (v3=плохо). COMPUTE index=хорошо - плохо. FORMATS хорошо TO плохо (F4.2). SUMMARIZE /TABLES=qnum хорошо средне плохо index /FORMAT=VALIDLIST NOCASENUM TOTAL /TITLE='Индекс дискриминации (index of discrimination)' /MISSING=VARIABLE /CELLS=NONE. ***Считаем, среди прочих вещей, исправленную точечно-бисериальную корреляцию. GET FILE 'c:\\temp\\scored.sav'. RELIABILITY /VARIABLES=q1 TO q10 /FORMAT=NOLABELS /SCALE(ALPHA)=ALL/MODEL=ALPHA /STATISTICS=DESCRIPTIVE CORR /SUMMARY=TOTAL MEANS. *** Строим таблицы из рис. 5. ***Подготовим данные к оценке эффективности неправильных вариантов. GET FILE='c:\\temp\\ItemAnalysisExercise.sav'. SELECT IF name="key". FORMATS q1 TO q10(F1). *//////////. DEFINE !keys(nbq=!TOKENS(1)) /* Макрос добавляет * после номера правильного варианта */ WRITE OUTFILE='c:\\temp\\define labels.sps' !DO !cnt=1 !TO !nbq /!QUOTE(!CONCAT('ADD VALUE LABEL q',!cnt," "))!CONCAT(q,!cnt)'"'!CONCAT(q,!cnt)'*".' !DOEND. EXECUTE. !ENDDEFINE. *//////////. SET MPRINT=yes. !keys nbq=10. GET FILE='c:\\temp\\ItemAnalysisExercise.sav'. SELECT IF (name ne 'key'). MATCH FILES/FILE=* /FILE='C:\\TEMP\\scored.sav' /RENAME (name q1 TO q10= d0 TO d10) /DROP=d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10. VARIABLE LABELS group '% выбравших вариант'. VALUE LABELS group 1 'high 1/3' 2 'middle 1/3' 3 'low 1/3'. INCLUDE 'c:\\temp\\define labels.sps'. CROSSTABS /TABLES=group BY q1 TO q10 /FORMAT=AVALUE TABLES /CELLS=ROW. RESTORE.