14.0 MPROBIT Command
The MPROBIT command supports multinomial PROBIT analysis with
up to 10 ordered catagories and up to 97 right hand variables. If the
left hand variable has only two catagories, the B34S PROBIT command,
which will give identical results, should be used. References for
MPROBIT are:
- McKelvey, R. and W. Zavoina, " An IBM Fortran IV Program to
Perform N-Chotomous Multivariate Probit Analysis, " Behavioral
Science, Vol. 16 (March 1971), pp. 186-187.
- McKelvey , Richard and William Zavoina, " A Statistical Model for
the Analysis of Ordinal Level Dependent Variables," Journal of
Mathematical Sociology, Vol. 4, 1975, pp. 103-120.
Form of MPROBIT command.
B34SEXEC MPROBIT options parameters $
TITLE1=(' any title ') $
TITLE2=(' any title ') $
VVALUES=(number1, number2) $
MODEL Y = xvar1 xvar2 xvar3 $
B34SEEND $
The VVALUES and MODEL sentences are required.
MPROBIT sentence options.
NORESIDA - Does not do residual analysis. This is default and
is recommended for large datasets.
RESIDA - Does Residual analysis.
SHOWIT - Shows coefficient change as iterations proceed.
MPROBIT sentence parameters.
NIT = n1 - Set maximum number of iterations. Default = 50.
TOLA=r1 - Sets tolerence for convergence. Default = .000001.
A maximum of 10 digits including the point can be
inputted.
IBEGIN=n3 - Sets first observation for data analysis. Default=1.
IEND= n4 - Sets last observation for data analysis. Default=NOOB.
VVALUES sentence.
VVALUES=(value1, value2, ... valuek) $
The VVALUES sentence allows the user to input up to 10 real
numbers to set the valid values for the dependent variable. Up to 5
digits including the point can be used. The B34S MPROBIT command will
only select values for the left hand variable that are found on the
VVALUES sentence.
MODEL sentence.
MODEL Y = X1 X2 X3 $
The MODEL sentence allows the user to estimate models with up to
38 right hand variables, excluding the constant. Y must have LE 10
categories. The values of the categories are specified in the VVALUES
sentence.
TITLE1 and TITLE2 sentences.
TTTLE1 = (' Any title ') $
TITLE2 = (' any title ') $
The TITLE1 and TITLE2 sentences allow the user to optionally
supply titles of up to 80 characters to annotate the run.
Note: The MPROBIT program has the capability of running with grouped
data and with multiple subproblems. In this implementation
these
options have been turned off to simplify control language.
Sample job for three category problem.
B34SEXEC MPROBIT RESIDA$
TITLE1=('Problem 1 ') $
TITLE2=('Tests 1.0, 3.0 and 6.0 as valid values ') $
VVALUES=(1.0, 3.0, 6.0) $
MODEL Y = X1 X2 X3 X4 X5 $
Discussion of model estimated.
MPROBIT estimates a model of the form:
P(j,k) = F(MU(k) - XB) - F(MU(k-1) - XB)
where P(j,k) is the probability that for the jth observation the
dependent variable is in the kth category. XB is the product of the jth
observation vector X and the estimated coefficients B, F( ) calculates
the probabilities of the normal distribution function and the MU's are
estimates of the threshold parameters. If we assume a 5 category
problem, and the fact that we have XB on cards, the following SAS
program will calculate the probability of being in the 5 catagories(Z1,
Z2, .., Z5).
data test;
input xb;
mu1 = 0.0;
mu2 = 1.9561290;
mu3 = 5.5418716;
mu4 = 8.6592352;
z1 = probnorm(mu1 - xb) ;
z2 = probnorm(mu2 - xb) - probnorm(mu1 - xb) ;
z3 = probnorm(mu3 - xb) - probnorm(mu2 - xb) ;
z4 = probnorm(mu4 - xb) - probnorm(mu3 - xb) ;
z5 = 1.0 - z1 - z2 - z3 - z4 ;
drop mu1 mu2 mu3 mu4 ;
cards;
xb values here
;
proc print;
endsas;
The same program can be written in B34S as
b34sexec data;
input xb;
build z1 z2 z3 z4 z5;
* assume mu1 = 0.0;
* assume mu2 = 1.9561290;
* assume mu3 = 5.5418716;
* assume mu4 = 8.6592352;
gen z1 = probnorm(0.0-xb);
gen z2 = probnorm(1.9561290-xb)-probnorm(0.0-xb);
gen z3 = probnorm(5.5418716-xb)-probnorm(1.96561290-xb);
gen z4 = probnorm(8.6592352-xb)-probnorm(5.5418716-xb);
datacards;
xb values here
b34sreturn;
b34seend;
b34sexec list$ b34seend$