Для этого я выполнил несколько скользящих регрессий, используя различные индексы в качестве регрессоров, и нашел хорошие результаты. значения R2 и хорошая значимость бета-версий.
То, что я хочу сделать сейчас, — это запустить k-средство, чтобы получить разные кластеры, и теоретически я ожидаю, что это n кластеров, включающих фонды со схожими стратегиями управления.
У меня возникла проблема на последнем этапе: я использую PCA, чтобы уменьшить размерность моего набора данных (с 8 до 2, где 8 — это, конечно, количество бета-версий или регрессоров), а затем использование k-средних для возврата кластеров (с использованием метода локтя для поиска оптимального количества кластеров). Однако результаты кажутся не очень хорошими в том смысле, что фонды с действительно разными бета-коэффициентами находятся в одном кластере. Я пытался увеличить количество кластеров, принимающих дополнительный WCSS, но это не сработало. Я думаю, что что-то не работает при уменьшении размерности перед кластеризацией.
Не могу предоставить минимальный воспроизводимый пример, но это часть моего кода, чтобы вы могли лучше понять
Код: Выделить всё
pca = PCA(n_components=2)
pca_X = pca.fit_transform(betas)
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, random_state=0)
kmeans.fit(pca_X)
wcss.append(kmeans.inertia_)
kl = KneeLocator(range(1, 11), wcss, curve="convex", direction="decreasing")
best_cluster = kl.elbow
kmeans = KMeans(n_clusters=best_cluster)
kmeans.fit(pca_X)
Подробнее здесь: https://stackoverflow.com/questions/786 ... -dataframe