
W-NOMINATE
C************************************************************************
C************************************************************************
C* WNOM9707.FOR JULY 1997 **
C* **
C* MULTI-DIMENSIONAL W-NOMINATE **
C* **
C* MULTI-DIMENSIONAL WEIGHTED NOMINAL THREE-STEP ESTIMATION **
C* * ****** * * **
C* DEVELOPED BY KEITH T. POOLE AND HOWARD ROSENTHAL **
c* GRADUATE SCHOOL OF INDUSTRIAL ADMINISTRATION **
C* CARNEGIE-MELLON UNIVERSITY, PITTSBURGH, PA. 15213 **
C* **
C* INITIAL PROGRAM DEVELOPED 1982-1984 **
C* MULTIDIMENSIONAL PROGRAM DEVELOPED 1986-1987 IN **
C* CDC VECTOR FORTRAN **
C* OS2/SCALAR FORTRAN VERSION WRITTEN BY NOLAN McCARTY **
C* AND KEITH T. POOLE 1991 **
C* THE MODIFIED NOMINATE ALGORITHM, W-NOMINATE, DEVELOPED BY **
C* KEITH T. POOLE SEPTEMBER-NOVEMBER 1992. **
C* THIS SCALAR FORTRAN W-VERSION CURRENT AS OF JULY 1997 **
C* **
C************************************************************************
C************************************************************************
C
C THE PARAMETERS BEING ESTIMATED ARE: A SIGNAL TO NOISE RATIO CONSTANT
C IN UTILITY FUNCTION PHASE--THIS IS BETA AND IS ESTIMATED FOR THE FIRST
C DIMENSION. FOR SUBSEQUENT DIMENSIONS, A WEIGHTING PARAMETER, W, IS
C ESTIMATED--THIS PARAMETER IS IN THE EXPONENT OF THE UTILITY FUNCTION.
C
C LEGISLATOR COORDINATES (IN LEGISLATOR PHASE).
C
C MIDPOINT AND DISTANCE BETWEEN THE TWO OUTCOMES IN THE ROLL CALL PHASE.
C ALL PARAMETERS ARE HELD FIXED EXCEPT DURING THEIR RESPECTIVE PHASES.
C DURING UTILITY PHASE, LEGISLATOR AND ROLL CALL PARAMETERS ARE HELD FIXED
C AND ARE STORED IN XDATA(.) AND ZMID(.)/DYN(.) RESPECTIVELY. DURING
C ROLL CALL PHASE, THE UTILITY FUNCTION CONSTANT, STORED IN BBB(1), IS
C HELD FIXED AND THE LEGISLATORS ARE HELD FIXED. DURING LEGISLATOR PHASE,
C UTILITY AND ROLL CALL PARAMETERS ARE HELD FIXED.
C
C THE FOLLOWING TABLE SHOWS WHAT IS STORED WHERE AND WHAT IS HELD CONSTANT
C DURING EACH PHASE.
C
C NOBS=# OF LEGISLATORS, NRCALL=# OF ROLL CALLS.
C NDIM = DIMENSION NUMBER
C
C UTILITY PHASE LEGISLATOR PHASE ROLL CALL PHASE
C
C BETA (SIG/NOISE) B(1) BBB(1) BBB(1)
C WEIGHT B(1) BBB(2) BBB(2)
C
C LEGISLATOR XDATA(1,NDIM) TO B(1) XDATA(1,NDIM) TO
C COORDS XDATA(NOBS,NDIM) XDATA(NOBS,NDIM)
C
C DISTANCE BET. DYN(1,NDIM) TO DYN(1,NDIM) TO B(1)
C OUTCOMES DYN(NRCALL,NDIM) DYN(NRCALL,NDIM)
C
C MID PTS. ZMID(1,NDIM) TO ZMID(1,NDIM) TO B(2)
C ZMID(NRCALL,NDIM) ZMID(NRCALL,NDIM)
C
C
C IN THE ROLL CALL PHASE, SUMMING TAKES PLACE OVER THE LEGISLATORS
C AND ONLY THE PARAMETERS OF ONE ROLL CALL AT A TIME ARE UPDATED
C AND THESE ARE HELD IN B(1) AND B(2). LIKEWISE, IN THE LEGISLATOR
C PHASE SUMMING TAKES PLACE OVER THE ROLL CALLS AND ONLY ONE LEGISLATOR
C COORDINATE (STORED IN B(1)) IS UPDATED AT A TIME. IN THE UTILITY PHASE
C SUMMATION IS OVER ALL THE DATA AND THE ESTIMATE OF BETA (THE SIGNAL TO
C NOISE RATIO) OR THE WEIGHT (FOR 2ND DIMENSION AND HIGHER) IS HELD
C IN B(1).
C
C
C
C FLOW DIAGRAM OF W-NOMINATE PROGRAM-- * INDICATES MAIN DO - LOOP
C
C MAIN
C |
C |---CLEAN
C |
C |---ASCORE
C |
C |
C | |--STAT
C |---WHOOPE---|--FOCUSW
C | |--FOCUS
C | |--STAT
C |
C |---RECODE--JANICE
C |
C | |--NORMZ
C *| | |--FUNNEL
C *|---MAXLIK---|--BHHH --|--STEPR --FUNNEL--LOGLIK--ITHOBS
C *| |--RPRINT--GRID2
C *| |--CROSS
C *|
C *|---OUTWRT--CORR
C |
C |---CROSS
C |
C
C