пятница, 7 августа 2015 г.

Грамматика графики в SPSS

Графические возможности статистических программ крайне важны. (с) Капитан Очевидность
Систематизированный подход к визуализации данных нашел воплощение в виде так называемой грамматики графики. В R эта концепция реализована в пакете ggplot2. Но первая реализация "грамматики графики" была создана для SPSS! Под катом - немного подробностей.

Скачать пример данных можно здесь.

Простейший пример - диаграмма рассеяния:
GGRAPH /GRAPHDATASET NAME="graphdataset" VARIABLES=read write /GRAPHSPEC SOURCE=INLINE.BEGIN GPLSOURCE: s=userSource(id("graphdataset"))DATA: read=col(source(s), name("read"))DATA: write=col(source(s), name("write"))ELEMENT: point(position(read*write))END GPL.
Можно добавить "шум" (jitter):
GGRAPH /GRAPHDATASET NAME="graphdataset" VARIABLES=read write /GRAPHSPEC SOURCE=INLINE.BEGIN GPLSOURCE: s=userSource(id("graphdataset"))DATA: read=col(source(s), name("read"))DATA: write=col(source(s), name("write"))ELEMENT: point.jitter(position(read*write))END GPL.
Наложение регрессионной прямой и добавление подписей к осям:
GGRAPH /GRAPHDATASET NAME="graphdataset" VARIABLES=read write /GRAPHSPEC SOURCE=INLINE.BEGIN GPLSOURCE: s=userSource(id("graphdataset"))DATA: read=col(source(s), name("read"))DATA: write=col(source(s), name("write"))GUIDE: axis(dim(1), label("reading score"))GUIDE: axis(dim(2), label("writing score"))ELEMENT: line( position( smooth.linear(read*write ) ) )ELEMENT: point(position(read*write))END GPL.

Раскрасим группы разными цветами и выделим разными символами:
GGRAPH /GRAPHDATASET NAME="graphdataset" VARIABLES=read write female /GRAPHSPEC SOURCE=INLINE.BEGIN GPLSOURCE: s=userSource(id("graphdataset"))DATA: read=col(source(s), name("read"))DATA: write=col(source(s), name("write"))DATA: female=col(source(s), name("female"), unit.category())GUIDE: axis(dim(1), label("reading score"))GUIDE: axis(dim(2), label("writing score"))ELEMENT: point(position(read*write), color(female), shape(female))END GPL.

Матрица диаграмм рассеяния:
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=read write math /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: read=col(source(s), name("read"))
DATA: write=col(source(s), name("write"))
DATA: math=col(source(s), name("math"))
ELEMENT: point(position((read/"reading score"+write/"writing score"+math/"math score")*(read/"reading score"+write/"writing score"+math/"math score")))
END GPL.

Больше примеров можно найти здесь, а также в GPL Reference Guide for IBM SPSS Statistics.
В целом имеем достаточно удобный на фоне остального архаичного синтаксиса способ создания графиков.

Комментариев нет:

Отправить комментарий