[R] Questions on weighted least squares
Zhang Yanwei - Princeton-MRAm
YZhang at munichreamerica.com
Wed Jul 23 21:31:56 CEST 2008
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.
More information about the R-help
mailing list