How to get an index of profile agreement for 1090 by 23 matrix

classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

How to get an index of profile agreement for 1090 by 23 matrix

msherman
Dear listers: Looking for some advice on how to proceed with the following. Is there a macro or syntax file that I could manipulate to do what I need to have done.  Thanks.  Martin


Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:
 
Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
 
k = number of variables (which is 23 in this case)
M=the mean of two scores on the same scale
d = the difference between two scores on the same scale.
 
So, if we had only 5 scales and wanted to compare two profiles, here is an example.
Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores)
Profile 2: .6, .7, –1.1, –.3, and .7
 
Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35
Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
 

Martin F. Sherman, Ph.D.
Professor of Psychology
Director of Masters Education: Thesis Track
Loyola University Maryland
4501 North Charles Street
Baltimore, MD 21210

=====================
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Mike

The data example used below appears in the following publication:
Robert R. McCrae (2008) A Note on Some Measures of Profile Agreement,
Journal of Personality Assessment, 90:2, 105-109
http://dx.doi.org/10.1080/00223890701845104
In this article McCraie compares for measusres of profile agreemet:
the ordinary Pearson r, Cattell's (1949) r_sub_p, McCrae's (1993) r_sub_pa,
and an Intraclass Correlation coefficient-double entry ICC_sub_DE.
The IPA calculations you provide below are used to calculate the
McCrae r_sub_pa which uses the formula
 
rpa= Ipa/sqrt[(k-2) + Ipa2]
 
for the data used below r_sub_pa = 0.58.
 
A quick web search does not find a macro in any popular software
package (though meybe someone has done something in R) but
McCrae is an author of the NEO Personality Inventory-3 (see the
Wikipedia entry:
which is marketed by PAR both as Windows administration and scoring
system (one place that uses this is at York University; see::
and online administration and scoring (see the PAR website:
 
So, apparently someone has written software to do the calculation of Ipa
and the r_sub_pa and related statistics but is proprietary.   A look
at the manual might provide information on what language was used
for the software.  Creating an SPSS version of the scoring system
seems like it would be a significant undertaking but I hear that
Dave Marso is available for the right price. ;-)
 
-Mike Palij
New York University
 
 



----- Original Message -----
On Tuesday, May 23, 2017 11:20 AM, Martin F. Sherman wrote:


Dear listers: Looking for some advice on how to proceed with the
following. Is there a macro or syntax file that I could manipulate to
do what I need to have done.  Thanks.  Martin

Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:
 
Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
 
k = number of variables (which is 23 in this case)
M=the mean of two scores on the same scale
d = the difference between two scores on the same scale.
 
So, if we had only 5 scales and wanted to compare two profiles, here is an example.
Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores)
Profile 2: .6, .7, –1.1, –.3, and .7
 
Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35
Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
 
===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Maguin, Eugene
In reply to this post by msherman
I'm just curious. So, as I understand this, you are going to calculate an IPA for every combination of persons and then use that value in your cluster analysis. So, you'll have 522753 IPA values (1023*1022/2), functionally the upper or lower triangle of a 1023 by 1023 matrix.

I'm not familiar with the formula you give but I kind of don't think you've reproduced it accurately because using your example data
Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible

I agree it that it is most directly a matrix problem and best done there. But, in theory but not practically, couldn't this be done if the data matrix were flipped?

Gene Maguin




-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Martin F. Sherman
Sent: Tuesday, May 23, 2017 11:21 AM
To: [hidden email]
Subject: How to get an index of profile agreement for 1090 by 23 matrix

Dear listers: Looking for some advice on how to proceed with the following. Is there a macro or syntax file that I could manipulate to do what I need to have done.  Thanks.  Martin


Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:
 
Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
 
k = number of variables (which is 23 in this case) M=the mean of two scores on the same scale d = the difference between two scores on the same scale.
 
So, if we had only 5 scales and wanted to compare two profiles, here is an example.
Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile 2: .6, .7, –1.1, –.3, and .7
 
Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
 

Martin F. Sherman, Ph.D.
Professor of Psychology
Director of Masters Education: Thesis Track Loyola University Maryland
4501 North Charles Street
Baltimore, MD 21210

=====================
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

=====================
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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Art Kendall
Maybe you do not need a roll your own coefficient.
Take a look at the many kinds of coefficients in PROXIMITIES. The documentation discusses the attributes of the different coefficients. See if one of the already available coefficients in ALGORITHMS is what you want.
I suggest you take a few (say 4) cases with say 5 variables, generate the matrix by hand and by PROXIMITIES for different coefficients and see if they are the same. [you could also explore  the coefficients from one of the PROXIMITIES specifications correlated or scatter plotted against your coefficient.]

In my experience, I have always used a few different similarity/distance coefficients and a few agglomeration methods. Since these are heuristic methods, I put more credibility in a consensus. I don't believe the Census Bureau still gives out my mid-70s paper on "core clusters", but if you search the archives of this list for "core clusters" you will get some ideas.

One thing I have never tried but might be interesting to look at, is to save the cluster membership variables from different clustering and then use the membership variables as input to TWOSTEP with the nominal level cluster memberships as the input.

I don't know whether CORRELATIONS will handle 1093 by 1093, but if the data were flipped that would yield Q correlations which when factored would be a late 60s form of clustering.
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Mike
In reply to this post by Maguin, Eugene

As I mentioned in my previous post, the data comes from McCrae (2008)
and the calculations check out.  My own calculations follow:
 

 

 

score 1

score2

score3

score4

score5

Profile1

1.2

0.3

-0.5

0.1

0.9

Profile2

0.6

0.7

-1.1

-0.3

0.7

Sum

1.8

1.0

-1.6

-0.2

1.6

Mean

0.9

0.5

-.8

-0.1

0.8

Mean^2

.81

         .25

.64

.01

.64

Diff(P1-P2)

0.6

0.4

-0.6

0.4

0.2

Diff(P1-P2)^2

0.36

0.16

0.36

0.16

0.04

 

Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)

Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)

Sum of Mean^2=  2.35

 

Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04

Sum of Diff(P1-P2)^2= 1.08

 

k=5

 

Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)

Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)

Ipa = [5  + 4.70 – 1.08]/sqrt(50) =

Ipa = 8.62/7.071 = 1.22

 

rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)

rpa= 1.22/2.1185 =0.575856 = 0.58

 

-Mike Palij

New York University

[hidden email]

 

 
 
 
----- Original Message -----
From: "Maguin, Eugene" <[hidden email]>
Sent: Tuesday, May 23, 2017 2:11 PM
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix

> I'm just curious. So, as I understand this, you are going to calculate an IPA for every combination of persons and then use that value in your cluster analysis. So, you'll have 522753 IPA values (1023*1022/2), functionally the upper or lower triangle of a 1023 by 1023 matrix.

>
> I'm not familiar with the formula you give but I kind of don't think you've reproduced it accurately because using your example data
> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>
> I agree it that it is most directly a matrix problem and best done there. But, in theory but not practically, couldn't this be done if the data matrix were flipped?
>
> Gene Maguin
>
>
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Martin F. Sherman
> Sent: Tuesday, May 23, 2017 11:21 AM
> To:
[hidden email]
> Subject: How to get an index of profile agreement for 1090 by 23 matrix

>
> Dear listers: Looking for some advice on how to proceed with the following. Is there a macro or syntax file that I could manipulate to do what I need to have done.  Thanks.  Martin
>
>
> Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:

> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).

> k = number of variables (which is 23 in this case) M=the mean of two scores on the same scale d = the difference between two scores on the same scale.

> So, if we had only 5 scales and wanted to compare two profiles, here is an example.
> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile 2: .6, .7, –1.1, –.3, and .7

> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08

>
> Martin F. Sherman, Ph.D.
> Professor of Psychology
> Director of Masters Education: Thesis Track Loyola University Maryland
> 4501 North Charles Street
> Baltimore, MD 21210
>
> =====================
> 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
>
> =====================
> 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
>
===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Maguin, Eugene

Mike, I apologize. I did not referenced the formula I was using. It was the formula Martin posted and that formula does have things omitted.

Gene Maguin

 

 

From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Mike Palij
Sent: Tuesday, May 23, 2017 3:04 PM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix

 

As I mentioned in my previous post, the data comes from McCrae (2008)

and the calculations check out.  My own calculations follow:

 

 

 

score 1

score2

score3

score4

score5

Profile1

1.2

0.3

-0.5

0.1

0.9

Profile2

0.6

0.7

-1.1

-0.3

0.7

Sum

1.8

1.0

-1.6

-0.2

1.6

Mean

0.9

0.5

-.8

-0.1

0.8

Mean^2

.81

         .25

.64

.01

.64

Diff(P1-P2)

0.6

0.4

-0.6

0.4

0.2

Diff(P1-P2)^2

0.36

0.16

0.36

0.16

0.04

 

Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)

Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)

Sum of Mean^2=  2.35

 

Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04

Sum of Diff(P1-P2)^2= 1.08

 

k=5

 

Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)

Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)

Ipa = [5  + 4.70 – 1.08]/sqrt(50) =

Ipa = 8.62/7.071 = 1.22

 

rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)

rpa= 1.22/2.1185 =0.575856 = 0.58

 

-Mike Palij

New York University

[hidden email]

 

 

 

 

----- Original Message -----

From: "Maguin, Eugene" <[hidden email]>

Sent: Tuesday, May 23, 2017 2:11 PM

Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix

 

> I'm just curious. So, as I understand this, you are going to calculate an IPA for every combination of persons and then use that value in your cluster analysis. So, you'll have 522753 IPA values (1023*1022/2), functionally the upper or lower triangle of a 1023 by 1023 matrix.
>
> I'm not familiar with the formula you give but I kind of don't think you've reproduced it accurately because using your example data
> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>
> I agree it that it is most directly a matrix problem and best done there. But, in theory but not practically, couldn't this be done if the data matrix were flipped?
>
> Gene Maguin
>
>
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [[hidden email]] On Behalf Of Martin F. Sherman
> Sent: Tuesday, May 23, 2017 11:21 AM
> To: [hidden email]
> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>
> Dear listers: Looking for some advice on how to proceed with the following. Is there a macro or syntax file that I could manipulate to do what I need to have done.  Thanks.  Martin
>
>
> Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:

> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).

> k = number of variables (which is 23 in this case) M=the mean of two scores on the same scale d = the difference between two scores on the same scale.

> So, if we had only 5 scales and wanted to compare two profiles, here is an example.
> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile 2: .6, .7, –1.1, –.3, and .7

> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08

>
> Martin F. Sherman, Ph.D.
> Professor of Psychology
> Director of Masters Education: Thesis Track Loyola University Maryland
> 4501 North Charles Street
> Baltimore, MD 21210
>
> =====================
> 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
>
> =====================
> 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
>

===================== 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

===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Art Kendall
If the 4 similarity coefficients in McCrae differ from all those in PROXIMITIES, they might be ones that could be added to SPSS.

If Doug Carroll were still with us he could tell at a glance if these coefficients go by another name in other dialects of statistics. At Classification Society Meetings  I was amazed at how often someone from one discipline would come up with a new-to-them similarity/distance coefficient and Doug would recognize it as having another name in another discipline.

It might save some time if the OP were to post a query on CLASS_L about those coefficients.

If syntax is developed it would be interesting to see the consensus among the cluster assignments using those coefficients and those in PROXIMITIES.

Of course it would also be interesting to see the relative distributions of the new coefficients and those from PROXIMITIES.

Profiles can differ in shape elevation and scatter. The new coefficients may handle one or more of those aspects.

Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

David Marso
Administrator
In reply to this post by Mike
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.


Mike wrote
As I mentioned in my previous post, the data comes from McCrae (2008)
and the calculations check out.  My own calculations follow:

 

       
     score 1
     score2
     score3
     score4
     score5
     
      Profile1
     1.2
     0.3
     -0.5
     0.1
     0.9
     
      Profile2
     0.6
     0.7
     -1.1
     -0.3
     0.7
     
      Sum
     1.8
     1.0
     -1.6
     -0.2
     1.6
     
      Mean
     0.9
     0.5
     -.8
     -0.1
     0.8
     
      Mean^2
     .81
              .25
     .64
     .01
     .64
     
      Diff(P1-P2)
     0.6
     0.4
     -0.6
     0.4
     0.2
     
      Diff(P1-P2)^2
     0.36
     0.16
     0.36
     0.16
     0.04
     

 

Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)

Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)

Sum of Mean^2=  2.35

 

Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04

Sum of Diff(P1-P2)^2= 1.08

 

k=5

 

Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)

Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)

Ipa = [5  + 4.70 – 1.08]/sqrt(50) =

Ipa = 8.62/7.071 = 1.22

 

rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)

rpa= 1.22/2.1185 =0.575856 = 0.58

 

-Mike Palij

New York University

[hidden email]






----- Original Message -----
From: "Maguin, Eugene" <[hidden email]>
To: <[hidden email]>
Sent: Tuesday, May 23, 2017 2:11 PM
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix


> I'm just curious. So, as I understand this, you are going to calculate an IPA for every combination of persons and then use that value in your cluster analysis. So, you'll have 522753 IPA values (1023*1022/2), functionally the upper or lower triangle of a 1023 by 1023 matrix.
>
> I'm not familiar with the formula you give but I kind of don't think you've reproduced it accurately because using your example data
> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>
> I agree it that it is most directly a matrix problem and best done there. But, in theory but not practically, couldn't this be done if the data matrix were flipped?
>
> Gene Maguin
>
>
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Martin F. Sherman
> Sent: Tuesday, May 23, 2017 11:21 AM
> To: [hidden email]
> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>
> Dear listers: Looking for some advice on how to proceed with the following. Is there a macro or syntax file that I could manipulate to do what I need to have done.  Thanks.  Martin
>
>
> Here is what we have. We have a 1090 by 23 matrix of data. The rows are subjects and the columns are variables. These variables are scale scores on a measure. We wish to do a cluster analysis of these variables to identify homogenous groups of profiles across the 23 scales. To do this, we want to use as data an index of profile agreement. To do this, we want to calculate the Ipa (index of profile agreement) for each person with every other person. We would like to do this using the matrix routine from SPSS or even to develop a specific macro to calculate these values. Here is the equation, as best as I can get it in email:
>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>
> k = number of variables (which is 23 in this case) M=the mean of two scores on the same scale d = the difference between two scores on the same scale.
>
> So, if we had only 5 scales and wanted to compare two profiles, here is an example.
> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile 2: .6, .7, –1.1, –.3, and .7
>
> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2 =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>
>
> Martin F. Sherman, Ph.D.
> Professor of Psychology
> Director of Masters Education: Thesis Track Loyola University Maryland
> 4501 North Charles Street
> Baltimore, MD 21210
>
> =====================
> 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
>
> =====================
> 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
>

=====================
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
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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
===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

David Marso
Administrator
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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

===================== 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
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

David Marso
Administrator
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
LOOP ##=#+1 TO  N .
COMPUTE Diff=data(#,:) - data(##,:).
COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
COMPUTE rpa(#,##)=ipa/SQRT((K - 2) + ipa**2).
COMPUTE rpa(##,#)=rpa(#,##).
END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.

RPA 
   .0000000000   .5755570386 
   .5755570386   .0000000000 
 
------ END MATRIX -----

On Wed, May 24, 2017 at 10:06 AM, David Marso <[hidden email]> wrote:
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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


===================== 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
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman

David: It runs now. I will see what happens when I run it on my data set. Thank you.   Much appreciated. martin


From: David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 10:08:38 AM
To: Martin Sherman
Cc: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
LOOP ##=#+1 TO  N .
COMPUTE Diff=data(#,:) - data(##,:).
COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
COMPUTE rpa(#,##)=ipa/SQRT((K - 2) + ipa**2).
COMPUTE rpa(##,#)=rpa(#,##).
END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.

RPA 
   .0000000000   .5755570386 
   .5755570386   .0000000000 
 
------ END MATRIX -----

On Wed, May 24, 2017 at 10:06 AM, David Marso <[hidden email]> wrote:
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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


===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Art Kendall
In reply to this post by David Marso
Since these are a variety of similarity coefficients the main diagonal should be 1.00. The idea is that any case (individual profile) is perfectly identical to itself.
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman
In reply to this post by David Marso

David: Assuming the matrix output is correct (I will need to double check the values) how do I go about getting each participant's RPA index into a spss data file. martin


From: David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 10:08:38 AM
To: Martin Sherman
Cc: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
LOOP ##=#+1 TO  N .
COMPUTE Diff=data(#,:) - data(##,:).
COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
COMPUTE rpa(#,##)=ipa/SQRT((K - 2) + ipa**2).
COMPUTE rpa(##,#)=rpa(#,##).
END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.

RPA 
   .0000000000   .5755570386 
   .5755570386   .0000000000 
 
------ END MATRIX -----

On Wed, May 24, 2017 at 10:06 AM, David Marso <[hidden email]> wrote:
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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


===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

David Marso
Administrator
Look up the SAVE command in the MATRIX language section of the manual.

On Wed, May 24, 2017 at 10:43 AM, msherman [via SPSSX Discussion] <[hidden email]> wrote:

David: Assuming the matrix output is correct (I will need to double check the values) how do I go about getting each participant's RPA index into a spss data file. martin


From: David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 10:08:38 AM
To: Martin Sherman
Cc: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
LOOP ##=#+1 TO  N .
COMPUTE Diff=data(#,:) - data(##,:).
COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
COMPUTE rpa(#,##)=ipa/SQRT((K - 2) + ipa**2).
COMPUTE rpa(##,#)=rpa(#,##).
END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.

RPA 
   .0000000000   .<a href="tel:(575)%20557-0386" value="+15755570386" target="_blank">5755570386 
   .<a href="tel:(575)%20557-0386" value="+15755570386" target="_blank">5755570386   .0000000000 
 
------ END MATRIX -----

On Wed, May 24, 2017 at 10:06 AM, David Marso <[hidden email]> wrote:
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]

Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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


===================== 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


To unsubscribe from How to get an index of profile agreement for 1090 by 23 matrix, click here.
NAML

Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman

will check out the save command   thanks,  martin


From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 10:48:15 AM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Look up the SAVE command in the MATRIX language section of the manual.

On Wed, May 24, 2017 at 10:43 AM, msherman [via SPSSX Discussion] <[hidden email]> wrote:

David: Assuming the matrix output is correct (I will need to double check the values) how do I go about getting each participant's RPA index into a spss data file. martin


From: David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 10:08:38 AM
To: Martin Sherman
Cc: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
LOOP ##=#+1 TO  N .
COMPUTE Diff=data(#,:) - data(##,:).
COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
COMPUTE rpa(#,##)=ipa/SQRT((K - 2) + ipa**2).
COMPUTE rpa(##,#)=rpa(#,##).
END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.

RPA 
   .0000000000   .<a href="tel:(575)%20557-0386" value="+15755570386" target="_blank">5755570386 
   .<a href="tel:(575)%20557-0386" value="+15755570386" target="_blank">5755570386   .0000000000 
 
------ END MATRIX -----

On Wed, May 24, 2017 at 10:06 AM, David Marso <[hidden email]> wrote:
It runs for me.
Perhaps the + indentation are screwing things up on your side?
Remove them and see what happens?

On Wed, May 24, 2017 at 10:00 AM, Martin Sherman <[hidden email]> wrote:

David:  I just ran your syntax and this is what I got. Did I miss something?  thanks,  Martini

 

DATA LIST FREE / score1 score2 score3 score4 score5 .

BEGIN DATA

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

END DATA.

LIST.

 

 

 

List

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

LIST.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.00

 

 

 

 

 

score1 score2 score3 score4 score5

1.20 .30 -.50 .10 .90

.60 .70 -1.10 -.30 .70

 

Number of cases read: 2 Number of cases listed: 2

 

 

 

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

 

 

 

Matrix

 

 

Notes

Output Created

24-MAY-2017 09:58:03

Comments

 

Input

Filter

<none>

Weight

<none>

Split File

<none>

N of Rows in Working Data File

2

Syntax

MATRIX.

GET data /FILE */VARIABLES score1 TO score5.

COMPUTE N=NRow(data).

COMPUTE K=NCOL(data).

COMPUTE rpa=MAKE(N,N,0).

COMPUTE Mean=CSUM(data)/NROW(data).

COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.

+ LOOP ##=#+1 TO N .

+ COMPUTE Diff=data(#,:) - data(##,:).

+ COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).

+ COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).

+ END LOOP.

END LOOP.

PRINT rpa.

END MATRIX.

Resources

Processor Time

00:00:00.00

Elapsed Time

00:00:00.01

 

Run MATRIX procedure:

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

Error # 12546 in column 1. Text: +

MATRIX syntax error: unrecognized statement name. Is it spelled correctly?

Execution of this command stops.

Scan error detected in parser.

The MATRIX statement skipped.

 

RPA

0 0

0 0

------ END MATRIX -----

 



From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 9:42:25 AM
To: [hidden email]

Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
Here is a MATRIX implimentation using Mike's formulas.
DATA LIST FREE / score1 score2 score3 score4 score5 .
BEGIN DATA
1.20   .30  -.50  .10  .90
 .60    .70  -1.10  -.30  .70
END DATA.
LIST.

MATRIX.
GET data /FILE   */VARIABLES  score1 TO score5.
COMPUTE N=NRow(data).
COMPUTE K=NCOL(data).
COMPUTE rpa=MAKE(N,N,0).
COMPUTE Mean=CSUM(data)/NROW(data).
COMPUTE SMeanSq=Mean * T(Mean).

LOOP #=1 TO N - 1.
+  LOOP ##=#+1 TO  N .
+    COMPUTE Diff=data(#,:) - data(##,:).
+    COMPUTE ipa=(K + 2 * SMeanSq - Diff * T(Diff) ) /SQRT(10*K).
+    COMPUTE rpa(#,##)=ipa/SQRT((K-2)+ipa**2).
+  END LOOP.
END LOOP.
PRINT rpa.
END MATRIX.



Mike wrote
> As I mentioned in my previous post, the data comes from McCrae (2008)
> and the calculations check out.  My own calculations follow:
>

>
>       
>      score 1
>      score2
>      score3
>      score4
>      score5
>     
>       Profile1
>      1.2
>      0.3
>      -0.5
>      0.1
>      0.9
>     
>       Profile2
>      0.6
>      0.7
>      -1.1
>      -0.3
>      0.7
>     
>       Sum
>      1.8
>      1.0
>      -1.6
>      -0.2
>      1.6
>     
>       Mean
>      0.9
>      0.5
>      -.8
>      -0.1
>      0.8
>     
>       Mean^2
>      .81
>               .25
>      .64
>      .01
>      .64
>     
>       Diff(P1-P2)
>      0.6
>      0.4
>      -0.6
>      0.4
>      0.2
>     
>       Diff(P1-P2)^2
>      0.36
>      0.16
>      0.36
>      0.16
>      0.04
>     
>

>
> Sum of Mean^2= (.9^2)+(.5^2)+(-.8^2)+(-.1^2)+(.8^2)
>
> Sum of Mean^2= (.81)+(.25)+(.64)+(.1)+(.64)
>
> Sum of Mean^2=  2.35
>

>
> Sum of Diff(P1-P2)^2= .36 + .16 + .36 + .16 + .04
>
> Sum of Diff(P1-P2)^2= 1.08
>

>
> k=5
>

>
> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k)
>
> Ipa = [5  + (2*2.35) – (1.08)]/sqrt(10*5)
>
> Ipa = [5  + 4.70 – 1.08]/sqrt(50) =
>
> Ipa = 8.62/7.071 = 1.22
>

>
> rpa= Ipa/sqrt[(k-2) + Ipa2] = 1.22/sqrt(3 + 1.4884) = 1.22/sqrt(4.4884)
>
> rpa= 1.22/2.1185 =0.575856 = 0.58
>

>
> -Mike Palij
>
> New York University

> mp26@

>
>
>
>
>
>
> ----- Original Message -----
> From: "Maguin, Eugene" &lt;

> emaguin@

> &gt;
> To: &lt;

> SPSSX-L@.UGA

> &gt;
> Sent: Tuesday, May 23, 2017 2:11 PM
> Subject: Re: How to get an index of profile agreement for 1090 by 23
> matrix
>
>
>> I'm just curious. So, as I understand this, you are going to calculate an
>> IPA for every combination of persons and then use that value in your
>> cluster analysis. So, you'll have 522753 IPA values (1023*1022/2),
>> functionally the upper or lower triangle of a 1023 by 1023 matrix.
>>
>> I'm not familiar with the formula you give but I kind of don't think
>> you've reproduced it accurately because using your example data
>> Profile 1: 1.2, 0.3, -0.5,   0.1, 0.9
>> Profile 2: 0.6, 0.7, -1.1, -0.3, 0.7
>> SigmaM2: 0.9, 0.5, -0.8, -0.2, 0.8  = 1.3
>> SigmaD2: 0.6, -0.4, 0.6, 0.4, -0.2 = 1.0
>> IPA = 5 + 2*1.3-1.0/sqrt(50) = 7.46  probably not
>> Maybe it's (5 + 2*1.3-1.0)/sqrt(50) = 0.933  plausible
>>
>> I agree it that it is most directly a matrix problem and best done there.
>> But, in theory but not practically, couldn't this be done if the data
>> matrix were flipped?
>>
>> Gene Maguin
>>
>>
>>
>>
>> -----Original Message-----
>> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of Martin F. Sherman
>> Sent: Tuesday, May 23, 2017 11:21 AM
>> To:

> SPSSX-L@.UGA

>> Subject: How to get an index of profile agreement for 1090 by 23 matrix
>>
>> Dear listers: Looking for some advice on how to proceed with the
>> following. Is there a macro or syntax file that I could manipulate to do
>> what I need to have done.  Thanks.  Martin
>>
>>
>> Here is what we have. We have a 1090 by 23 matrix of data. The rows are
>> subjects and the columns are variables. These variables are scale scores
>> on a measure. We wish to do a cluster analysis of these variables to
>> identify homogenous groups of profiles across the 23 scales. To do this,
>> we want to use as data an index of profile agreement. To do this, we want
>> to calculate the Ipa (index of profile agreement) for each person with
>> every other person. We would like to do this using the matrix routine
>> from SPSS or even to develop a specific macro to calculate these values.
>> Here is the equation, as best as I can get it in email:
>>
>> Ipa = k + 2SigmaM2 – Sigma d2 / sqrt (10*k).
>>
>> k = number of variables (which is 23 in this case) M=the mean of two
>> scores on the same scale d = the difference between two scores on the
>> same scale.
>>
>> So, if we had only 5 scales and wanted to compare two profiles, here is
>> an example.
>> Profile 1: 1.2, .3, –0.5, 0.1,  and 0.9 (all values are z-scores) Profile
>> 2: .6, .7, –1.1, –.3, and .7
>>
>> Sigma M2 = (0.92 + 0.52 + (-0.8)2  + (-0.1)2 + 0.82) = 2.35 Sigma d2
>> =(0.62 + 0.42 + 0.62 +0.42 + 0.22) = 1.08
>>
>>
>> Martin F. Sherman, Ph.D.
>> Professor of Psychology
>> Director of Masters Education: Thesis Track Loyola University Maryland
>> 4501 North Charles Street
>> Baltimore, MD 21210
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>>
>> =====================
>> To manage your subscription to SPSSX-L, send a message to
>>

> LISTSERV@.UGA

>  (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
>>
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734238.html
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


===================== 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


To unsubscribe from How to get an index of profile agreement for 1090 by 23 matrix, click here.
NAML

Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"


View this message in context: Re: How to get an index of profile agreement for 1090 by 23 matrix
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
===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

David Marso
Administrator
You will also want to look at the structure of MATRIX files when they are consumed by CLUSTER.
In particular note that this is a similarity matrix rather than a distance matrix so read the section about ROWTYPE_ and the VALUE LABEL which needs to be applied.
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman

This is beginning to get beyond my pay grade.  I will have to consult with some colleagues on this matrix save commands.


From: SPSSX(r) Discussion <[hidden email]> on behalf of David Marso <[hidden email]>
Sent: Wednesday, May 24, 2017 1:25:02 PM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
You will also want to look at the structure of MATRIX files when they are
consumed by CLUSTER.
In particular note that this is a similarity matrix rather than a distance
matrix so read the section about ROWTYPE_ and the VALUE LABEL which needs to
be applied.



-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734248.html
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
===================== 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
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

Art Kendall
suggestion:

run PROXIMITIES  with the OUT specification on a few cases and a few variables to see how a similarity matrix looks.

the built in SPSS help should help.  In SPSS click <help> then type without the quotes "PROXIMITIES" in the edit box.

what you seems to be asking for is a similarity matrix, but with a coefficient other than the few dozen in PROXIMITIES.  Then you want to input that matrix to CLUSTER  the same way you would a matrix created via PROXIMITIES.
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to get an index of profile agreement for 1090 by 23 matrix

msherman

Art: thanks for the suggestion.  I will dummy the data set down to a few cases and a few variables.    martin


From: SPSSX(r) Discussion <[hidden email]> on behalf of Art Kendall <[hidden email]>
Sent: Wednesday, May 24, 2017 2:40:16 PM
To: [hidden email]
Subject: Re: How to get an index of profile agreement for 1090 by 23 matrix
 
suggestion:

run PROXIMITIES  with the OUT specification on a few cases and a few
variables to see how a similarity matrix looks.

the built in SPSS help should help.  In SPSS click <help> then type without
the quotes "PROXIMITIES" in the edit box.

what you seems to be asking for is a similarity matrix, but with a
coefficient other than the few dozen in PROXIMITIES.  Then you want to input
that matrix to CLUSTER  the same way you would a matrix created via
PROXIMITIES.



-----
Art Kendall
Social Research Consultants
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/How-to-get-an-index-of-profile-agreement-for-1090-by-23-matrix-tp5734228p5734253.html
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
===================== 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
12
Loading...