[R] qr.solve and lm (addition)

Vladimir Eremeev wl2776 at gmail.com
Tue May 15 12:38:50 CEST 2007




Vladimir Eremeev wrote:
> 
> Dear R experts,
> 
> I have a Matlab code which I am translating to R in order to examine and
> enhance it.
> First of all, I need to reproduce in R the results which were already
> obtained in Matlab (to make sure that everything is correct).
> 
> There are some matrix manipulations and '\' operation among them in the
> code.
> 
> I have the following data frame
> 
>> ABS.df
>            Pro        syn             unk                 Chl                 
> Y                  Nh            V1
> 1  0.056524968 0.04387755 -0.073925372 0.026477146 0.083527021
> 0.0031950622  0.02164793
> 2  0.066456284 0.05992579 -0.094609497 0.031772575 0.054881164
> 0.0022078221  0.01358594
> 3  0.036383887 0.04601113 -0.061213302 0.021181717 0.026713530
> 0.0011716424  0.00824816
> 4  0.020419528 0.03803340 -0.044517584 0.013935340 0.019204991
> 0.0008763467  0.00577604
> 5  0.010209764 0.02968460 -0.030418334 0.009476031 0.013806924
> 0.0006554761  0.00376991
> 6  0.006033043 0.02666976 -0.025735131 0.006967670 0.009778344
> 0.0004838437  0.00441753
> 7  0.004733618 0.01168831 -0.009732966 0.006688963 0.002351775
> 0.0001380701  0.00403229
> 8  0.000000000 0.00000000  0.000000000 0.000000000 0.000000000
> 0.0000000000 -0.00060456
> 9  0.000000000 0.00000000  0.000000000 0.000000000 0.000000000
> 0.0000000000 -0.00000003
> 11 0.241505077 0.45843930 -0.611308847 0.000000000 0.000000000
> 0.0584138174  0.07397018
> 21 0.226065730 0.41703452 -0.558270870 0.000000000 0.000000000
> 0.0516895121  0.07460447
> 31 0.211956969 0.37139373 -0.495174662 0.000000000 0.000000000
> 0.0426347324  0.07189945
> 41 0.206558807 0.35022863 -0.466337208 0.000000000 0.000000000
> 0.0392775042  0.06943217
> 51 0.197535970 0.33100673 -0.441656561 0.000000000 0.000000000
> 0.0363102112  0.06912282
> 61 0.186798904 0.31656506 -0.416287992 0.000000000 0.000000000
> 0.0335613531  0.06595377
> 71 0.156005203 0.24868275 -0.329660100 0.000000000 0.000000000
> 0.0250152915  0.06399879
> 81 0.153751864 0.23900952 -0.324902567 0.000000000 0.000000000
> 0.0232553862  0.05981515
> 91 0.144414605 0.22782217 -0.297243170 0.000000000 0.000000000
> 0.0209515025  0.05981442
> 
>> qr.solve(ABS.df[,1:6],ABS.df[,7])
>        Pro        syn        unk        Chl          Y         Nh 
>  0.3877544  0.4282277  0.2221960 -0.8668715  0.2821082 -1.3696411 
> 
> This reproduces the Matlab's numbers 
> However, I used to lm, its syntax seems to me more clear.
> 
> ?lm says that it uses QR decomposition to fit the model.
> Trying it:
> 
>>  coef(lm(V1~Pro+syn+unk+Chl+Y+Nh,data=ABS.df))
>  (Intercept)          Pro          syn          unk          Chl           
> Y           Nh 
>  0.001640184  0.417253116  0.351472810  0.196977369 -0.899729874 
> 0.265585292 -1.181526491 
> 
> Numbers differ.
> Obviously, I don't understand something. 
> Please, could you clarify, what?
> Thank you.
> 
> 

Moreover,

>  coef(lm.fit(x=as.matrix(ABS.df[,1:6]),y=as.matrix(ABS.df[,7])))
       Pro        syn        unk        Chl          Y         Nh 
 0.3877544  0.4282277  0.2221960 -0.8668715  0.2821082 -1.3696411 

-- 
View this message in context: http://www.nabble.com/qr.solve-and-lm-tf3757650.html#a10620477
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list