import pandas as pd from factor_analyzer import FactorAnalyzer from sklearn.preprocessing import StandardScaler def factor_analysis(data, n_factors=5, output_file=None): """ Функция для выполнения факторного анализа переменных Параметры: - data: pandas DataFrame, содержащий переменные для анализа - n_factors: int, количество факторов для извлечения (по умолчанию 5) - output_file: str, путь к файлу для сохранения нового датасета с факторами (по умолчанию None) Возвращает: - factor_loadings: pandas DataFrame, загрузки переменных на факторы - factor_data: pandas DataFrame, новый датасет с добавленными факторами """ # Шаг 1: Предварительная обработка данных # Нормализация данных scaler = StandardScaler() scaled_data = scaler.fit_transform(data) scaled_data = pd.DataFrame(scaled_data, columns=data.columns) # Шаг 2: Выполнение факторного анализа fa = FactorAnalyzer(n_factors=n_factors, rotation=None) # Можно