2021년 5월 12일 수요일

Python - Factor Analysis - estimate number of factor

data 분석의 방법중 요인 분석(Factor analysis)가 있는데 이때 요인의 개수를 얼마나 지정해야 하는지 구하는것이 중요하다
**Factor의 개수는 몇개로 해야 될까?**


보통 K-means나 PCA 분석에서 factor 인자를 임의로 지정하는 경우가 많은데 실제로는 요인분석을 통해 도출된 결과를 이용해서 하는것이 정확하다



1.임의의 dataframe 생성

pdf = pd.DataFrame({"v1": [random.randint(0, 100) for _ in range (30)],
"v2": [random.randint(0, 100) for _ in range (30)],
"v3": [random.randint(0, 100) for _ in range (30)],
"v4": [random.randint(0, 100) for _ in range (30)],
"v5": [random.randint(0, 100) for _ in range (30)],
"v6": [random.randint(0, 100) for _ in range (30)],
"v7": [random.randint(0, 100) for _ in range (30)],
"v8": [random.randint(0, 100) for _ in range (30)]})
**10 이후 후략됨**

***가로축(column)에 항목의 이름이, 세로축(row)에 속성값이 들어간 상태에서 진행한다***

2.SVD연산
***사용시 pdf로 되어있는 부분만 사용할 dataframe의 이름으로 변경한다***
U, S, V = np.linalg.svd(pdf)
eigvals = S**2 / np.sum(S**2) 
sing_vals = np.arange(len(pdf.columns)) + 1


3.graph 산출
fig = plt.figure(figsize=(8,5))
plt.plot(sing_vals, eigvals, 'ro-', linewidth=2)
plt.title('Scree Plot')
plt.xlabel('Principal Component')
plt.ylabel('Eigenvalue')
plt.show()
plt.savefig('Scree.png')
그래프 상에서 2 이후에 완만해지는 것으로 보아 factor는 2개가 적당함을 알수있다

댓글 없음:

댓글 쓰기