[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