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

32 messages
12
Open this post in threaded view
|

## 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
Open this post in threaded view
|

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

 ﻿ 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-109http://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 [hidden email]     ----- 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.  MartinHere 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 scaled = 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.35Sigma 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
Open this post in threaded view
|

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

 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
Open this post in threaded view
|

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

 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
Open this post in threaded view
|

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

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
Open this post in threaded view
|

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

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

----- 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
Open this post in threaded view
|

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

 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
Open this post in threaded view
|

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

Open this post in threaded view
|

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

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 Weight Split File 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 Weight Split File 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

-----
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
Open this post in threaded view
|

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

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 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 Weight Split File 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 Weight Split File 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

-----
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
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?"
Open this post in threaded view
|

## 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 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 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 Weight Split File 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 Weight Split File 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

-----
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
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?"
Open this post in threaded view
|

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

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 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 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 Weight Split File 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 Weight Split File 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

-----
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
Open this post in threaded view
|

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

 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
Open this post in threaded view
|

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

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 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 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 Weight Split File 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 Weight Split File 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

-----
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
Open this post in threaded view
|

## 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] 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 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 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 Weight Split File 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 Weight Split File 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

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

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?"
Open this post in threaded view
|

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

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] 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 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 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 Weight Split File 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 Weight Split File 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

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

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
Open this post in threaded view
|

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

 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?"
Open this post in threaded view
|

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

 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
Open this post in threaded view
|

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