I am using fastICA package in r. In this package, I am using fastICA function, which have some parameters. If I set n.comp
to 2, that works fine, but if I set this parameter to 3 or more in this function:
ica<-fastICA(datalist,n.comp=3)
datalist is here a matrix with 20 rows and 4 columns:
[,1] [,2] [,3] [,4]
[1,] 567.00 324.225 281.0889 538.25
[2,] 557.75 317.500 269.5556 529.15
[3,] 543.75 309.900 264.5778 515.95
[4,] 557.00 316.225 265.0889 528.25
[5,] 538.25 307.750 266.6667 510.95
[6,] 531.25 301.025 250.0222 503.70
[7,] 545.00 311.800 270.9333 517.40
[8,] 550.00 316.925 284.3778 522.65
[9,] 514.75 290.300 235.6000 487.75
[10,] 518.00 293.800 245.1556 491.20
[11,] 553.75 318.125 281.6667 526.00
[12,] 563.50 325.925 297.2667 535.75
[13,] 540.00 303.300 241.1556 511.40
[14,] 546.00 310.350 261.6444 517.90
[15,] 567.25 324.425 281.4889 538.50
[16,] 577.75 330.125 285.2222 548.40
[17,] 560.75 317.425 262.3778 531.60
[18,] 570.00 323.925 272.8222 540.65
[19,] 569.00 324.700 278.8444 540.00
[20,] 565.50 324.150 284.1333 537.00
I am getting this error:
Error in solve.default(w %*% t(w)) :
system is computationally singular: reciprocal condition number = 1.16873e-16
could you please say me why I am getting this error and how can I solve it?
In solve()
, use a smaller tolerance, like solve(..., tol = 1e-17)
.
This should be fine since you get reciprocal condition number = 1.16873e-16
.
More info in the help file and this related question.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With