[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Iterative Proportional Fitting

From: Stefan Hrafn Jonsson
Subject: Iterative Proportional Fitting
Date: Thu, 26 Oct 2000 15:26:33 -0400 (EDT)

Hi all

I am new to Octave

I am trying to find a way to use Iterative Proportional Fitting to solve 
simoltanioysly 13 equations. 

I do have a Maple code to do this but I would really like to do this in Octave, 
partly because I have not been able to find Maple for unix on this (Penn State) 
campus (except too old versions) and bacause people around tell me Octave 
should  be good for this task.

So far I have been able to construct in octave all the given values needed to 
solve the equations. 
I am stuck in the octave code wehre I go about to solve equations. To 
demostrate what equation I want I provide the Maple code used to solve this. 

Msd = 0.00068
Msm = 0.13446
Mmd = 0.00037
Mmw = 0.00116
Mmv = 0.06563
Mwd = 0.00148
Mwm = 0.03334
Mvd = 0.00113
Mvm = 0.5128
Ms = [Msd+Msm,0,0,0;-Msm,Mmd+Mmw+Mmv,-Mwm,-Mvm; 0,-Mmw,Mwd+Mwm,0; 
0,-Mmv,0,Mvd+Mvm ]
II = [1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]
Msplusi = II + 0.5*Ms
Msplusinv = inverse(Msplusi)
Msminusi = II - 0.5*Ms
Spi = Msminusi * Msplusinv

# Observed rates for from 1995 US MSLT, Females 22-23

AM = 

AMplusi = II + 0.5*AM

AMplusinv =inverse(AMplusi) 
AMminusi  = II - 0.5*AM
Api  = AMminusi*AMplusinv

x = [76411;20716;64;1814]
y = [69250;27035;85;2432]

Cpi = Api * x

Sctot1 = Spi(1,1)+Spi(2,1)+Spi(3,1)+Spi(4,1)
Sctot2 = Spi(1,2)+Spi(2,2)+Spi(3,2)+Spi(4,2)
Sctot3 = Spi(1,3)+Spi(2,3)+Spi(3,3)+Spi(4,3)
Sctot4 = Spi(1,4)+Spi(2,4)+Spi(3,4)+Spi(4,4)

# Now how do we solve the 13 equations

#function Z = f (x)
#  Z = [z11,0,0,0;z21,z22,z23,z24;z31,z32,z33,z34;z41,z42,z43,z44]

#The Maple way of diong this. 

Z := 

solve ({ y[1,1] = z11*x[1,1],
         y[2,1] = z21*x[1,1]+z22*z[2,1]+z23*x[3,1]+z24*x[4,1],
         y[3,1] = z31*x[1,1]+z32*z[2,1]+z33*x[3,1]+z34*x[4,1],
         y[4,1] = z41*x[1,1]+z42*z[2,1]+z43*x[3,1]+z44*x[4,1],
         Sctot2/Sctot1 = (z32+z32+z42)/(11+z21+z31+z41),
         Sctot3/Sctot1 = (z33+z33+z43)/(11+z21+z31+z41),
         Sctot4/Sctot1 = (z34+z34+z44)/(11+z21+z31+z41),
         z21*z42/(z22*z41) = Spi[2,1]*Spi[4,2]/(Spi[2,2]*Spi[4,1]),
         z21*z43/(z23*z41) = Spi[2,1]*Spi[4,3]/(Spi[2,3]*Spi[4,1]),
         z21*z44/(z24*z41) = Spi[2,1]*Spi[4,4]/(Spi[2,4]*Spi[4,1]),
         z31*z42/(z32*z41) = Spi[3,1]*Spi[4,2]/(Spi[2,2]*Spi[4,1]),
         z31*z43/(z33*z41) = Spi[3,1]*Spi[4,3]/(Spi[2,3]*Spi[4,1]),
         z31*z44/(z34*z41) = Spi[3,1]*Spi[4,4]/(Spi[2,4]*Spi[4,1])},

Any help or hints will be apreciated. 


 Stefan Hrafn Jonsson
 701 Oswald Tower
 Department of Sociology and 
 The Population Research Institute
 The Pennsylvania State University,
 University Park, PA 16802

Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:
How to fund new projects:
Subscription information:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]