#spss #spss-modeler
#spss #spss-modeler
Вопрос:
не могли бы вы посоветовать, как реструктурировать данные, чтобы получить структуру данных, которую можно использовать для моделирования временных рядов в SPSS Modeler?
Например (в настоящее время имеет приведенную ниже структуру)
ID Period Value
ABC 1 100
ABC 2 110
DEF 1 50
DEF 2 50
DEF 3 60
GHJ 5 200
(необходимая структура)
Period ABC DEF GHJ
1 100 50
2 110 50
3 60
5 200
Я думал использовать Transpose node, но для такого случая это не работает, поэтому я использовал узел SetToFlag, а затем транспонировал его, но затем нужно как-то заменить значения T / F значениями для соответствующего периода / идентификатора.
Я очень признателен за любую помощь / совет. Заранее большое спасибо.
Ответ №1:
Я предлагаю следующую процедуру с помощью restructure aggregate:
- В ТИПЕ node установите «ID» в качестве номинального и «Прочитанные значения»
- Используйте узел РЕСТРУКТУРИЗАЦИИ с «ID», переместите его категории в «Создать реструктурированные поля», установите переключатель в положение «использовать значения из других полей» и выберите переменную «Значение»
- Используйте AGGREGATE, установите ключ как «Период» и выберите нужные поля для агрегирования, например «ABC», «DEF», «GHJ». Совокупные значения (или max, min, это не имеет значения)
- Переименуйте новые переменные с помощью узла ФИЛЬТРА, чтобы избавиться от суффиксов. (Это может раздражать множество переменных, это можно преодолеть с помощью скрипта или хитрого использования RESTRUCTURE , MERGE, value_at(), @FIELDS_BETWEEN(), но это гораздо сложнее объяснить и, вероятно, сейчас не нужно.)
Примечание: 3-я строка вашего примера должна быть:
GHJ 1 50
или это не соответствует желаемой структуре.
Комментарии:
1. Большое спасибо за вашу помощь. Он работает, просто в узле реструктуризации нет опции для «ID» в списке доступных полей (не могли бы вы сообщить, почему он не отображается?) просто «Точка», так что в итоге я использовал узел транспонирования и получил необходимую структуру. В случае, если после обновления данных в узел реструктуризации необходимо добавить больше полей, есть ли способ сделать это автоматически, без каких-либо ручных настроек, чтобы избежать открытия узла и обновления списка созданных реструктурированных полей?