[R] Matlab inv() and R solve() differences

Stephan Kolassa Stephan.Kolassa at gmx.de
Fri Jan 30 16:02:54 CET 2009


Hi Cleber,

there is no hard-and-fast "magic number" here. Ill-conditioning also 
depends on what you are trying to do (inference? prediction?). The 
condition number is only one of a number of conditioning/collinearity 
diagnostics commonly used. Take a look at:

Golub, G. H., & Van Loan, C. F. (1996). Matrix Computations (3rd ed.). 
Baltimore: Johns Hopkins University Press.

Belsley, D. A. (1991a). Conditioning Diagnostics: Collinearity and Weak 
Data in Regression. New York, NY: Wiley.

Hill, R. C., & Adkins, L. C. (2001). Collinearity. In B. H. Baltagi 
(Ed.), A Companion to Theoretical Econometrics (p. 256-278). Oxford: 
Blackwell

HTH,
Stephan


Cleber Nogueira Borges schrieb:
> Hello,
> 
> is there a upper limit to kappa value where I can consider a matrix 
> well-conditioned?
> 
> 
> Cleber
> 
> 
> 
> Kingsford Jones wrote:
>> I suppose the solution is unstable because x is ill-conditioned:
>>
>>  
>>> x
>>>     
>>        [,1]   [,2]   [,3]  [,4]
>> [1,]  0.133  0.254 -0.214 0.116
>> [2,]  0.254  0.623 -0.674 0.139
>> [3,] -0.214 -0.674  0.910 0.011
>> [4,]  0.116  0.139  0.011 0.180
>>  
>>> cor(x)
>>>     
>>            [,1]       [,2]       [,3]       [,4]
>> [1,]  1.0000000  0.9963557 -0.9883690  0.8548065
>> [2,]  0.9963557  1.0000000 -0.9976663  0.8084090
>> [3,] -0.9883690 -0.9976663  1.0000000 -0.7663847
>> [4,]  0.8548065  0.8084090 -0.7663847  1.0000000
>>
>>  
>>> kappa(x)
>>>     
>> [1] 2813.326
>>
>> hth,
>>
>> Kingsford Jones
>>
>> On Thu, Jan 29, 2009 at 7:00 PM, Joseph P Gray <jpgray at uwm.edu> wrote:
>>  
>>> I submit the following matrix to both MATLAB and R
>>>
>>> x=  0.133 0.254 -0.214 0.116
>>>    0.254 0.623 -0.674 0.139
>>>   -0.214 -0.674 0.910 0.011
>>>    0.116 0.139  0.011 0.180
>>>
>>> MATLAB's inv(x) provides the following
>>>  137.21 -50.68 -4.70 -46.42
>>> -120.71  27.28 -8.94 62.19
>>> -58.15   6.93  -7.89  36.94
>>>  8.35   11.17 10.42 -14.82
>>>
>>> R's solve(x) provides:
>>> 261.94 116.22 150.92 -267.78
>>> 116.22 344.30 286.68 -358.30
>>> 150.92 286.68 252.96 -334.09
>>> -267.78 =358.30 -334.09 475.22
>>>
>>> inv(x)*x = I(4)
>>> and solve(x)%*%x = I(4)
>>>
>>> Is there a way to obtain the MATLAB result in R?
>>>
>>> Thanks for any help.
>>>
>>>
>>> Pat Gray
>>>
>>> ______________________________________________
>>>
> 
> ______________________________________________
> 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