I used `factor_analyzer` Python package for CFA, but matrix of factor loadings that I got contains value smaller than -1. Is a bug in the package, or maybe I misunderstood the factor loading interpretation? factor_analyzer docs: https://pypi.org/project/factor-analyzer/ My code: def sem_analysis(data, group1, group2): scaler = StandardScaler() scaled_data = pd.DataFrame(scaler.fit_transform(data), columns=data.columns) required_data = scaled_data[group1 + group2] model_dict = {"F1": group1, "F2": group2} model_spec = ModelSpecificationParser.parse_model_specification_from_dict(required_data, model_dict) cfa = ConfirmatoryFactorAnalyzer(model_spec, disp=False) cfa.fit(required_data.values) return cfa.loadings_ My results: [[ 0.81664434 0. ] [ 0.76591388 0. ] [-0.84197706 0. ] [ 0. -0.27572329] [ 0. -1.17491134] [ 0. 0.39020765]]