Zhang Yanwei - Princeton-MRAm
2008-Jul-23 18:49 UTC
[R] Questions on weighted least squares
Hi all, I met with a problem about the weighted least square regression. 1. I simulated a Normal vector (sim1) with mean 425906 and standard deviation 40000. 2. I simulated a second Normal vector with conditional mean b1*sim1, where b1 is just a number I specified, and variance proportional to sim1. Precisely, the standard deviation is sqrt(sim1)*50. 3. Then I run a WLS regression without the intercept term with "weights" equal to sqrt(sim1)*50. I wonder whether I should specify the weights in this way so that each observation will have equal variance 1. 4. If step 3 is correct, it should yield the same result if I normalize the response and the predictor first with sqrt(sim1)*50, and then use the "lm" function without "weights". But the two methods yield different results. Would someone tell me which one is the correct way to do? Thanks in advance, and the code and output are as follows:> b1=474186/425906 > n=240 > sim1=rnorm(n,425906,40000) > sim2=matrix(0,n,1) > for (i in 1:(n)){+ sim2[i]=rnorm(1,sim1[i]*b1,sqrt(sim1[i])*50) + }> fit1=lm(sim2~-1+sim1,weights=sqrt(sim1)*50) > coef(fit1)sim1 1.116028> y=sim2/(sqrt(sim1)*50) > x=sim1/(sqrt(sim1)*50) > fit2=lm(y~-1+x) > coef(fit2)x 1.116273 Sincerely, Yanwei Zhang Department of Actuarial Research and Modeling Munich Re America Tel: 609-275-2176 Email: yzhang@munichreamerica.com<mailto:yzhang@munichreamerica.com> [[alternative HTML version deleted]]
Zhang Yanwei - Princeton-MRAm
2008-Jul-23 19:31 UTC
[R] Questions on weighted least squares
Sorry if I did not state clearly. Put it another way. If the variance of the observation is proportional to the predictor, that is, var(y_i)=x_i*sigma^2, what should be specified in the "weights" argument in the lm function? fit=lm(y~x,weights=???) Sincerely, Yanwei Zhang Department of Actuarial Research and Modeling Munich Re America Tel: 609-275-2176 Email: yzhang at munichreamerica.com -----Original Message----- From: markleeds at verizon.net [mailto:markleeds at verizon.net] Sent: Wednesday, July 23, 2008 3:00 PM To: Zhang Yanwei - Princeton-MRAm Subject: RE: [R] Questions on weighted least squares i'm not sure about your whole question but you shouldn't be normalizing the predictor. that i know. the predictors are considered "fixed" so there's no reason to normalize them, ever. On Wed, Jul 23, 2008 at 2:49 PM, Zhang Yanwei - Princeton-MRAm wrote:> Hi all, > I met with a problem about the weighted least square regression. > 1. I simulated a Normal vector (sim1) with mean 425906 and standard > deviation 40000. > 2. I simulated a second Normal vector with conditional mean b1*sim1, > where b1 is just a number I specified, and variance proportional to > sim1. Precisely, the standard deviation is sqrt(sim1)*50. > 3. Then I run a WLS regression without the intercept term with > "weights" equal to sqrt(sim1)*50. I wonder whether I should specify > the weights in this way so that each observation will have equal > variance 1. > 4. If step 3 is correct, it should yield the same result if I > normalize the response and the predictor first with sqrt(sim1)*50, and > then use the "lm" function without "weights". But the two methods > yield different results. > Would someone tell me which one is the correct way to do? Thanks in > advance, and the code and output are as follows: > > >> b1=474186/425906 >> n=240 >> sim1=rnorm(n,425906,40000) >> sim2=matrix(0,n,1) >> for (i in 1:(n)){ > + sim2[i]=rnorm(1,sim1[i]*b1,sqrt(sim1[i])*50) > + } >> fit1=lm(sim2~-1+sim1,weights=sqrt(sim1)*50) >> coef(fit1) > sim1 > 1.116028 >> y=sim2/(sqrt(sim1)*50) >> x=sim1/(sqrt(sim1)*50) >> fit2=lm(y~-1+x) >> coef(fit2) > x > 1.116273 > > > Sincerely, > Yanwei Zhang > Department of Actuarial Research and Modeling Munich Re America > Tel: 609-275-2176 > Email: yzhang at munichreamerica.com<mailto:yzhang at munichreamerica.com> > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.