*(Вопрос) Получен по электронной почте 09.05.2002.
У меня есть база по временам реакции в тестах на визуальные сравнения. Разумеется,
данные сильно отрицательно скошены, так как испытуемые в течение 2 часов отвечали на вопросы,
требующие в среднем 2-3 секунды на ответ. Похоже, что в некоторых случаях они утомлялись или
отвлекались, или усаживались поудобнее в креслах, в результате чего ответ занимал более 20 секунд.
В некоторых случаях реакция, наоборот, составляла менее 100 миллисекунд
(дети в школе, конечно, шустрые, но не настолько).
В любом случае, как мне заменить такие "выборосы" на среднее время реакции, НО основанное не на
среднем времени реакции всех испытуемых, а на среднем времени реакции этого испытуемого при похожих условиях.
Я поясню это на небольшом примере. Вот пример данных....
ID sides change RT
1 4 7 750
1 4 10 1000
1 5 7 850
1 4 10 22000
2 4 7 14750
2 4 10 1000
2 5 7 50
2 4 10 900
...
ID = код испытуемого
sides = число сторон фигуры для визуального сравнения
change = процент изменения фигуры
RT = задержка (время реакции)
выбросы = RT > 600 & RT < 10000
Т.е. надо определить выброс, определить респондента, определить, какого типа этот вопрос (по
значениям переменных sides и change). Определить при этих условиях среднее время реакции и заменить
им выброс.
*(Ответ) Автор: Ray, 09.05.2002.
DATA LIST LIST /ID sides change RT.
BEGIN DATA
1 4 7 750
1 4 10 1000
1 5 7 850
1 4 10 22000
2 4 7 14750
2 4 10 1000
2 5 7 50
2 4 10 900
END DATA.
LIST.
SORT CASES BY id sides change.
SAVE OUTFILE='c:\\temp\\original data.sav'.
SELECT IF RANGE(RT,600,10000).
AGGREGATE
/OUTFILE='C:\\temp\\aggr.sav'
/BREAK=id sides change
/mean_rt = MEAN(rt).
MATCH FILES /FILE='c:\\temp\\original data.sav'
/TABLE='C:\\temp\\aggr.sav'
/BY=id sides change.
COMPUTE newrt=rt.
IF ~RANGE(RT,600,10000) newrt=mean_rt.
EXECUTE.
* Обратите внимание, что в 2 случаях значения остались пустыми, т.к. нет таких же вопросов для
этих испытуемых, чтобы посчитать среднее. Вы можете оставить там старое значение, либо заменить их
на общее среднее. В общем, много способов есть.
* Возможно также (хотя это и более сложно) попробовать заменить выборосы значениями из тех наблюдений, которые
в некотором смысле 'похожи'. Например, см. синтаксис номер 12 на стр.
http://www.spsstools.net/SampleSyntax.htm#RandomSampling.