12/04/18 04:43 PM D:/Users/mauricio - Gomez/pictu... /jacob.m 1 of 2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

12/04/18 04:43 PM D:\Users\mauricio.gomez\Pictu...\jacob.

m 1 of 2

function f = jacob(mval,theta2)
% This function computes the Jacobian of the implicit function that defines the mean
utility

% Written by Aviv Nevo, May 1998.

global ns theti thetj cdid cdindex


load ps2
theta2w = full(sparse(theti,thetj,theta2));

expmu = exp(mufunc(x2,theta2w));
shares = ind_sh(mval,expmu);
clear expmu

[n,K] = size(x2);
J = size(theta2w,2) - 1;
f1 = zeros(size(cdid,1),K*(J + 1));

% computing (partial share)/(partial sigma)


for i = 1:K
xv = (x2(:,i)*ones(1,ns)).*v(cdid,ns*(i-1)+1:ns*i);
temp = cumsum(xv.*shares);
sum1 = temp(cdindex,:);
sum1(2:size(sum1,1),:) = diff(sum1);
f1(:,i) = mean((shares.*(xv-sum1(cdid,:)))')';
clear xv temp sum1
end

% If no demogr comment out the next para


% computing (partial share)/(partial pi)
for j = 1:J
d = demogr(cdid,ns*(j-1)+1:ns*j);
temp1 = zeros(size(cdid,1),K);
for i = 1:K
xd=(x2(:,i)*ones(1,ns)).*d;
temp = cumsum(xd.*shares);
sum1 = temp(cdindex,:);
sum1(2:size(sum1,1),:) = diff(sum1);
temp1(:,i) = mean((shares.*(xd-sum1(cdid,:)))')';
clear xd temp sum1
end
f1(:,K*j+1:K*(j+1)) = temp1;
clear temp1
end

rel = theti + (thetj - 1) * max(theti) ;

% computing (partial delta)/(partial theta2)

f = zeros(size(cdid,1),size(rel,1));
n = 1;
12/04/18 04:43 PM D:\Users\mauricio.gomez\Pictu...\jacob.m 2 of 2

for i = 1:size(cdindex,1)
temp = shares(n:cdindex(i),:);
H1 = temp*temp';
H = (diag(sum(temp')) - H1)/ns;
f(n:cdindex(i),:) = - inv(H)*f1(n:cdindex(i),rel);
n = cdindex(i) + 1;
end

You might also like