Profile plots for SPSS

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Profile plots for SPSS

Art Kendall
I am also sending this to [hidden email]

I have long asked for profile plots in SPSS.  They would be very useful. ViAnn was very helpful in getting me something very close to a publishable graph.  There were still some appearance  problems
like spacing of the graph from the frame.

if you would find these helpful please let [hidden email] know that.

Profile plots are special parallel coordinate plots used used when all of the variables in the set are measured on the same scale, e.g., dollars, percents, percentiles, z-scores, T-scores, IQs, extent scales, Likert scales etc.
They are used to visualize  standardized test scores, cluster profiles, repeated measures (including time series),  points along the electromagnetic spectrum, EKGs, EEGs ,  ipsative scores, etc.

They are very much like  parallel coordinate plots. They have a set of parallel axes, but all of the scales are anchored at a common  central reference line perpendicular to the set of parallel axes.   E.g. 100 for IQs, 50 for  percentiles, zero for standardized variables, neither disagree or agree for Likert scales, etc.  They may have additional reference lines at other points also, e.g, 0 and 100 for percents or percentiles, -3 -2 -1 1 2 3 for standardized scores, 55 70 85 115 130 145 for IQ's, etc.

The set of parallel axes make it easier to follow the direction of the profile from parallel axis axis to parallel axis.
-- 
Art Kendall
Social Research Consultants
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|

Re: Profile plots for SPSS

Art Kendall
!! Nabble hid the email address fro suggest@us.ibm.com
Art Kendall
Social Research Consultants
On 12/12/2012 12:23 PM, Art Kendall wrote:
I am also sending this to [hidden email]

I have long asked for profile plots in SPSS.  They would be very useful. ViAnn was very helpful in getting me something very close to a publishable graph.  There were still some appearance  problems
like spacing of the graph from the frame.

if you would find these helpful please let [hidden email] know that.

Profile plots are special parallel coordinate plots used used when all of the variables in the set are measured on the same scale, e.g., dollars, percents, percentiles, z-scores, T-scores, IQs, extent scales, Likert scales etc.
They are used to visualize  standardized test scores, cluster profiles, repeated measures (including time series),  points along the electromagnetic spectrum, EKGs, EEGs ,  ipsative scores, etc.

They are very much like  parallel coordinate plots. They have a set of parallel axes, but all of the scales are anchored at a common  central reference line perpendicular to the set of parallel axes.   E.g. 100 for IQs, 50 for  percentiles, zero for standardized variables, neither disagree or agree for Likert scales, etc.  They may have additional reference lines at other points also, e.g, 0 and 100 for percents or percentiles, -3 -2 -1 1 2 3 for standardized scores, 55 70 85 115 130 145 for IQ's, etc.

The set of parallel axes make it easier to follow the direction of the profile from parallel axis axis to parallel axis.
--
Art Kendall
Social Research Consultants


View this message in context: Profile plots for SPSS
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|

Re: Profile plots for SPSS

Andy W
In reply to this post by Art Kendall

Please post an ideal example and what you have so far. Googling "profile plot" brings up a pretty wide variety of potential plots.

I suspect your problems with spacing in parallel coordinates plots could be solved with specifically setting the min and max of all the dimensions to be the same - but that is just my guess given your limited description. Example below (note - the parallel coordinate plot does not work on my version 15 at the desk I am sitting at now with any more than 2 dimensions - pretty sure it will work though with a newer version and will update later if it does not - also form.line guides are apparently not available in V15 either).


set seed = 10.
input program.
loop #i = 0 to 15.
compute case = #i.
end case.
end loop.
end file.
end input program.
dataset name sim.
execute.

vector score(5,F1.0).
do repeat score = score1 to score5.
    compute score = RV.NORMAL(100,10).
end repeat.
exe.

*Using Parallel coordinates coordinate system.
GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score1 score2 score3 score4 score5 case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score1=col(source(s), name("score1"))
 DATA: score2=col(source(s), name("score2"))
 DATA: score3=col(source(s), name("score3"))
 DATA: score4=col(source(s), name("score4"))
 DATA: score5=col(source(s), name("score5"))
 DATA: case=col(source(s), name("case"), unit.category())
 COORD: parallel(dim(1,2,3,4,5))
 SCALE: linear(dim(1), min(30), max(150))
 SCALE: linear(dim(2), min(30), max(150))
 SCALE: linear(dim(3), min(30), max(150))
 SCALE: linear(dim(4), min(30), max(150))
 SCALE: linear(dim(5), min(30), max(150))
 GUIDE: form.line(position(*, 100))
 ELEMENT: line(position(score1*score2*score3*score4*score5), split(case))
END GPL.

*Using blend with edge element - also example of inserting arbitrary guide statement.
GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score1 score2 score3 score4 score5 case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score1=col(source(s), name("score1"))
 DATA: score2=col(source(s), name("score2"))
 DATA: score3=col(source(s), name("score3"))
 DATA: score4=col(source(s), name("score4"))
 DATA: score5=col(source(s), name("score5"))
 DATA: case=col(source(s), name("case"), unit.category())
 TRANS: x1 = eval(1)
 TRANS: x2 = eval(2)
 TRANS: x3 = eval(3)
 TRANS: x4 = eval(4)
 TRANS: x5 = eval(5)
 GUIDE: form.line(position(*, 100))
 ELEMENT: edge(position(link.join(x1*score1 + x2*score2 + x3*score3)), split(case))
END GPL.

*Reshaping wide to long and you can utilize usual coordinate system with categorical X axis.
varstocases
/make score from score1 to score5
/index score_type.

GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score score_type case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score=col(source(s), name("score"))
 DATA: score_type=col(source(s), name("score_type"), unit.category())
 DATA: case=col(source(s), name("case"), unit.category())
 SCALE: linear(dim(2), min(30), max(150))
 GUIDE: form.line(position(*, 100))
 ELEMENT: line(position(score_type*score), split(case))
END GPL.

Andy W
apwheele@gmail.com
http://andrewpwheeler.wordpress.com/
Reply | Threaded
Open this post in threaded view
|

Re: Profile plots for SPSS

Jarrod Teo-2
Hi,
 
Had anyone tried decision tree models yet? I often use it for profiling.
 
It takes care of prediction + profiling + interaction + knowing which factors are important. You may look up C5, CHAID, QUEST and C&RT. SPSS Statisticis have CHAID but if you want to try out C5, it will be on SPSS Modeler.
 
Warmest Regards
Dorraj Oet
 

Date: Wed, 12 Dec 2012 12:21:41 -0800
From: [hidden email]
Subject: Re: Profile plots for SPSS
To: [hidden email]

Please post an ideal example and what you have so far. Googling "profile plot" brings up a pretty wide variety of potential plots.
I suspect your problems with spacing in parallel coordinates plots could be solved with specifically setting the min and max of all the dimensions to be the same - but that is just my guess given your limited description. Example below (note - the parallel coordinate plot does not work on my version 15 at the desk I am sitting at now with any more than 2 dimensions - pretty sure it will work though with a newer version and will update later if it does not - also form.line guides are apparently not available in V15 either).

set seed = 10.
input program.
loop #i = 0 to 15.
compute case = #i.
end case.
end loop.
end file.
end input program.
dataset name sim.
execute.

vector score(5,F1.0).
do repeat score = score1 to score5.
    compute score = RV.NORMAL(100,10).
end repeat.
exe.

*Using Parallel coordinates coordinate system.
GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score1 score2 score3 score4 score5 case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score1=col(source(s), name("score1"))
 DATA: score2=col(source(s), name("score2"))
 DATA: score3=col(source(s), name("score3"))
 DATA: score4=col(source(s), name("score4"))
 DATA: score5=col(source(s), name("score5"))
 DATA: case=col(source(s), name("case"), unit.category())
 COORD: parallel(dim(1,2,3,4,5))
 SCALE: linear(dim(1), min(30), max(150))
 SCALE: linear(dim(2), min(30), max(150))
 SCALE: linear(dim(3), min(30), max(150))
 SCALE: linear(dim(4), min(30), max(150))
 SCALE: linear(dim(5), min(30), max(150))
 GUIDE: form.line(position(*, 100))
 ELEMENT: line(position(score1*score2*score3*score4*score5), split(case))
END GPL.

*Using blend with edge element - also example of inserting arbitrary guide statement.
GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score1 score2 score3 score4 score5 case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score1=col(source(s), name("score1"))
 DATA: score2=col(source(s), name("score2"))
 DATA: score3=col(source(s), name("score3"))
 DATA: score4=col(source(s), name("score4"))
 DATA: score5=col(source(s), name("score5"))
 DATA: case=col(source(s), name("case"), unit.category())
 TRANS: x1 = eval(1)
 TRANS: x2 = eval(2)
 TRANS: x3 = eval(3)
 TRANS: x4 = eval(4)
 TRANS: x5 = eval(5)
 GUIDE: form.line(position(*, 100))
 ELEMENT: edge(position(link.join(x1*score1 + x2*score2 + x3*score3)), split(case))
END GPL.

*Reshaping wide to long and you can utilize usual coordinate system with categorical X axis.
varstocases
/make score from score1 to score5
/index score_type.

GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=score score_type case
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
 SOURCE: s=userSource(id("graphdataset"))
 DATA: score=col(source(s), name("score"))
 DATA: score_type=col(source(s), name("score_type"), unit.category())
 DATA: case=col(source(s), name("case"), unit.category())
 SCALE: linear(dim(2), min(30), max(150))
 GUIDE: form.line(position(*, 100))
 ELEMENT: line(position(score_type*score), split(case))
END GPL.



View this message in context: Re: Profile plots for SPSS
Sent from the SPSSX Discussion mailing list archive at Nabble.com.