📄 multilogit_demo.m
字号:
% PURPOSE: demonstrates the use of multilogit.m
% author: simon d.woodcock
% 9/13/2002
clear; clc;
% be sure to add the econometrics toolbox to your search path
%---- CREATE SOME DEMO DATA ----%
% specify the size of the demo
nobs = 1000; % number of observations
nvar = 15; % number of covariates
numcat = 5; % number of categories
% specify the parameter vector
% note the beta vector associated with category 0 is normalized to zero
beta = [zeros(nvar,1),ones(nvar,numcat-1)];
% specify the covariates: x must include a column of ones if there
% is a constant term
xmat = randn(nobs,nvar-1);
x = [ones(nobs,1),xmat];
% generate the response variable y
xbeta = x*beta;
e = 0.1*randn(nobs,numcat);
xb = xbeta + e;
exp_xb = exp(xb);
sum_exp_xb = sum(exp_xb');
for j = 1:numcat;
P(:,j) = exp_xb(:,j) ./ sum_exp_xb';
end;
cum_P = [cumsum(P')]';
u = rand(nobs,1);
yt = ones(nobs,1)*99;
for i = 1:nobs;
for j = 1:numcat;
if ((u(i,1) <= cum_P(i,j)) & (yt(i,1) == 99))
yt(i,1) = j;
end;
end;
end;
y = yt - ones(nobs,1); % y takes values in {0,1,2,...,numcat-1}
%---- CALL MULTILOGIT.M AND PRINT RESULTS ----%
% call multilogit using default starting values, convergence criterion, and
% maximum iterations
results = multilogit(y,x);
% assign variable and category names to arrays
vnames = strvcat('y','constant','x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x12','x13','x14');
cnames = strvcat('j=0','j=1','j=2','j=3','j=4');
% print results
prt_multilogit(results,vnames,cnames)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -