erro de domínio matemático ao usar o PCA

Estou usando o pacote scikit-learn do python para implementar o PCA.

domain error :
C:\Users\Akshenndra\Anaconda2\lib\site-packages\sklearn\decomposition\pca.pyc in _assess_dimension_(spectrum, rank, n_samples, n_features)
     78         for j in range(i + 1, len(spectrum)):
     79             pa += log((spectrum[i] - spectrum[j]) *
---> 80                       (1. / spectrum_[j] - 1. / spectrum_[i])) + log(n_samples)
     81 
     82     ll = pu + pl + pv + pp - pa / 2. - rank * log(n_samples) / 2.

ValueError: math domain error

Eu já sei que o erro do domínio matemático é causado quando obtemos o logaritmo de um número negativo, mas não entendo aqui como pode haver um número negativo dentro do logaritmo? porque esse código funciona bem para outros conjuntos de dados. talvez isso esteja relacionado ao que está escrito no site da sci-kitlearn - "Esta implementação usa a implementação scipy.linalg da decomposição de valor singular. Ela funciona apenas para matrizes densas e não é escalável para grandes dados dimensionais". número de 0 valores)

questionAnswers(2)

yourAnswerToTheQuestion