How To Use Multfit

Michael H. Birnbaum
California State University, Fullerton

file: multfit handbook-8

Michael H. Birnbaum
Department of Psychology
C.S.U.F.
Fullerton, CA 92634

e-mail: mbirnbaum@fullerton.edu

phone: 714-773-2102

Multfit is a BASIC program that fits a multiplicative model to a two dimensional array, using the algorithm of Birnbaum (1992).  The program first finds an approximate solution, based on marginal sums of the array, followed by an iterative solution that yields an approximate least-squares solution to the equation: P(i, j) = S(i)T(j) + b, where P(i, j) is the predicted entry for the data; S(i) is the scale value for the row factor level i; T(j) is the scale value for column factor level j, and b is an additive constant.  

There are three versions of the program, which run on IBM, MacIntosh, and Commodore computers. Multfit 5.0 for the Mac allows the results to be saved to a file for printing.

Example Run

In 1978, faculty members at University of Illinois, Urbana-Champaign rated “salaries deserved” by faculty members as a function of Years of experience (since Ph.D.) and Merit.  Merit was rated by a committee based on scholarship, teaching, service, and recognition, and ranged from 0 (unsatisfactory to 3 (very meritorious).  The study is described in greater detail in Birnbaum (1983).  A subset of the median judgments are as follows:

					Years of Experience
Merit	1		2		4		8		16		32
.5
1.5
2.5	15		16		17		18		19.5		21.5
17		18		20		24.5		30		35
18		20		24		30		40		50	

Start the program in the usual way (type RUN, or double click on the icon for Mac version).  When the program starts, it prints the title and asks for the number of rows and columns.  In this case, there are 3 rows and 6 columns.  Bold characters are used to illustrate what you, the user, would type in this case. 

No. of Rows? 3 <return>
No. of Cols? 6 <return>

The program then requests that you enter the data by rows.  Note that you do not enter prior measures or physical values.

ENTER DATA BY ROWS

ROW 1
X( 1, 1) =? 15 <return>
X( 1, 2) =? 16 <return>
X( 1, 3) =? 17 <return>
X (1, 4)=? 18 <return>
X (1, 5)=? 19.5 <return>
 etc.

In this version of the program, you can correct an entry only before you hit the return key.  Use delete to correct the entry.  Once you hit return on a wrong entry, you will have to re-run the program and re-type the values correctly.

When the data have been entered, the program runs, and prints the fit based on the marginal means and an estimate of b based on the four corner points (Two straight lines are drawn through these points and the point of intersection is found.  The projection of the intersection point on the ordinate is b.  If these two lines are parallel, the program places the intersection point at a great distance, as if parallel lines meet very far off).

At various times, the program prints out HIT A KEY, to allow the user to look at the screen.  When it is desired to go on, hit any key.  The space bar or return key will work.

HIT A KEY <return>

The sum of squared residuals will be printed for the approximate solution.  In this example, it should be approximately 3.065.

SS = 3.065408

The program asks the user if they desire to look at the results again.  Because one might be copying down the output from the screen, the Mac version allows a second look to check the numbers.  Enter either “y” or “n” to see the results again or go on to the next part.

Another look (y/n)? y <return>

You can keep looking at the results until satisfied, then type “n” to go on.  The program then enters the iterative least-squares solution.  You will be asked for a tolerance.  The tolerance specifies the stopping criterion for the iterations.  You will be allowed to select a smaller value later.  For this example, type .1 (The program suggests .01, but we will use that later).

Iterative Least-Squares Solution
Tolerance (e.g., .01)? .1 <return>

Depending on the speed of your computer, results for different iterations will appear on the screen for 10-20 seconds or so.  When “change” is less than .1, the program will erase the screen and show the results.  These values are based on the iterative solution, stopped after the sum of absolute changes in the scale values is less than .1.  The sum of squares should now be about 1.273.  To look at the results again, type “y”.  To go on, type “n”.  Then, you can choose a smaller value of tolerance to get a more exact solution.

Another look (y/n)? n <return>
More Iterations (y/n)? y <return>

This time, choose .01 for tolerance, and the process will iterate again.  You can continue looking at the results and requesting additional iterations as you desire.  With a tolerance of .01, the sum of squares should be about 1.264; with tolerance of .001 or .0001, the sum of squares is also 1.264, rounded to the nearest .001.  When neither the tolerance nor the sum of squares changes appreciably, then the process has converged.

To get printed output, in the IBM or Commodore versions, you must type out the full word, 'yes' when asked if you want printed output.  You will be asked to supply a title, and the least-squares solution will be directed to the printer, which must be turned on and ready to print.

In the Mac version, you will need to type 'y' twice as requested when asked if you want to save the output.  You will be asked to specify a filename, which should be an acceptable filename for your computer.  

You will be asked for a brief title which will be printed with the results.  In the Mac version, you can open the file (which will appear in the same folder as Multfit) with a wordprocessor such as Word 4.0 or Edit, and print it.  The Mac version dialog looks as follows:

Another look (y/n)? n <return>
More Iterations (y/n)? n <return>
Save results (y/n)? y <return>
type 'y' if you want to save output(y/n)? y <return>
name of file? salary.001 <return>
title of output? salary problem 3 x 6 subset <return>

To examine the fit of the final solution, plot the data and the predictions against years of experience, with a separate curve for each level of merit.  The predictions will form a bilinear fan that are linearly related to each other, but not necessarily linearly related to Years of experience.  The curves will intersect at b (about $15,021 in this example).  The curves would be a linear function of the scale values for Merit or the scale values for Experience.  
	These scale values can be plotted against the physical values to illustrate the psychophysical functions.  The psychophysical function for Years is negatively accelerated, and the subjective scale values for Merit in this case are very nearly proportional to “physical” (numerically specified) Merit values (Birnbaum, 1983, 1992).

References

Birnbaum, M. H. (1983).  Perceived equity of salary policies.  Journal of Applied Psychology, 68, 45-59.

Birnbaum, M. H. (1992).  Algorithm for least-squares solution to multiplicative and ratio models.  unpublished manuscript.