###################################################### # R function for solving g_1(lambda)=0 in Wu (2005) # ###################################################### ######################################### # R Function for EL Lagrange Multiplier # # x is of dimension 2 or higher # # Input: u=(x_1,x_2,...,x_n) # # ds=(d_1,d_2,...,d_n) # # (Design Wights: d_i=1/pi_i) # # ds=(1,1,...1) for iid data # # mu: benchmark means for x # # Output: lambda=M # # # # Written by Changbao Wu, March, 2000 # # Modified by Randy Sitter, June, 2006 # ######################################### Lag2=function(u,ds,mu){ n=length(ds) u=u-rep(1,n)%*%t(mu) M=0*mu dif=1 tol=1e-8 k=0 while(dif>tol & k<=50){ D1=t(u)%*%((ds/(1+u%*%M))*rep(1,n)) DD=-t(u)%*%(c((ds/(1+u%*%M)^2))*u) D2=solve(DD,D1,tol=1e-40) dif=max(abs(D2)) rule=1 while(rule>0){ rule=0 if(min(1+t(M-D2)%*%t(u))<=0) rule=rule+1 if(rule>0) D2=D2/2 } M=M-D2 k=k+1 } if(k>=50) M=0*mu return(as.vector(M)) }