I made a toy example to test your code, but I guess it is somewhat incorrect. The following is the code that I used.
under ipython
from sklearn.decomposition import PCA
from pyIPCA import CCIPCA, Skocaj_IPCA, Hall_IPCA
import numpy as np
make toy data
data = np.random.rand( 10000, 10 ) * 100;
use sklearn pca
ncomp = 2;
pca = PCA( n_components = 2 );
pca.fit( data );
data_pca = pca.transform( data );
pyplot.scatter( data_pca[:,0], data_pca[:,1]),pyplot.title('Sklearn-PCA'), pyplot.show()
![sklearn_pca](https://cloud.githubusercontent.com/assets/8573664/4502150/cd7f3eac-4abf-11e4-9c04-7bb10b32f4e7.png)
use CCIPCA
ipca = CCIPCA( n_components = 2 );
ipca.fit( data );
idata_pca = ipca.transform( data );
pyplot.scatter( idata_pca[:,0], idata_pca[:,1]),pyplot.title('CCIPCA'), pyplot.show()
![ccipca](https://cloud.githubusercontent.com/assets/8573664/4502153/cd847174-4abf-11e4-93ea-8b07ceaa6dd6.png)
use Skocaj_IPCA
ipca = Skocaj_IPCA( n_components = 2 );
ipca.fit( data );
idata_pca = ipca.transform( data );
pyplot.scatter( idata_pca[:,0], idata_pca[:,1]),pyplot.title('Skocaj_IPCA'), pyplot.show()
![skocaj_ipca](https://cloud.githubusercontent.com/assets/8573664/4502152/cd823ef4-4abf-11e4-8e31-d583551cb14e.png)
#use Hall_IPCA
ipca = Hall_IPCA( n_components = 2 );
ipca.fit( data );
idata_pca = ipca.transform( data );
pyplot.scatter( idata_pca[:,0], idata_pca[:,1]),pyplot.title('Hall_IPCA'), pyplot.show()
![hall_ipca](https://cloud.githubusercontent.com/assets/8573664/4502151/cd821352-4abf-11e4-96d0-e090f2c0e440.png)
It seems that both CCIPCA and Skocaj_pca does not work properly, because their center after transformation is too far away from the origin (0,0) and their shapes are more like a oval rather than a circle.
By the way the Skocaj_IPCA often invokes the following warning on my machine:
RuntimeWarning: invalid value encountered in divide
explained_variance_.sum())
Many thanks to your contributions in sklearn
Rex