0
我從維基百科如何在python中使用varimax旋轉?
def varimax(Phi, gamma = 1, q = 20, tol = 1e-6):
from numpy import eye, asarray, dot, sum, diag
from numpy.linalg import svd
p,k = Phi.shape
R = eye(k)
d=0
for i in xrange(q):
d_old = d
Lambda = dot(Phi, R)
u,s,vh = svd(dot(Phi.T,asarray(Lambda)**3 - (gamma/p) * dot(Lambda, diag(diag(dot(Lambda.T,Lambda))))))
R = dot(u,vh)
d = sum(s)
if d/d_old < tol: break
return dot(Phi, R)
一個最大旋轉代碼,我使用這種方式:
varimax(X) ## X is a numpy array
但它返回這樣的數字:2.4243244e-15!那不是我預期的答案
我應該改變其他參數?例如gamma或q? 我不熟悉varimax旋轉
另外:我已經看過了解決方案堆棧溢出的蟒蛇做因素分析了這麼多次,我最近做了我自己的包(它不能有這麼多的人都複製粘貼同樣的一件好事神祕最大旋轉例如到他們的項目......)總之,包生活[這裏](https://github.com/bmcmenamin/fa_kit),你可以將它安裝爲'PIP安裝FA-kit'。 – bmcmenamin