Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Oblique factor communalities ignore factor correlations

Aberta Para iniciantes
#151 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
machine-learning

Direção de pesquisa

Comece em get_communalities() e inspecione os testes existentes de communalities e uniqueness, usando o reproducer fixado do questionário 0.5.1 como o caso que falha. A tarefa estará concluída quando as rotações oblique produzirem os diagnósticos implícitos pelo modelo, os valores corrigidos corresponderem à referência R indicada, varimax permanecer inalterado e a regressão e a suíte completa de 102 testes passarem.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Rotating correlated factors should not change how much of each item the fitted model explains. get_communalities() treats those factors as independent, which can report impossible negative uniqueness.

Example

With factor_analyzer 0.5.1, a three-factor minres/promax fit to the bundled 2,571-row, 23-item questionnaire reports q08 communality 1.103082 and uniqueness −0.103082. The model-implied values from diag(Λ Φ Λᵀ) are 0.590760 and 0.409240. q06 is also negative under the released calculation. The largest communality error across items is 0.512322.

Cause and checks

The code sums squared pattern loadings, valid for orthogonal factors only. With an oblique structure matrix, the row sum of loadings * structure_ supplies the factor correlations. Corrected promax, oblimin and quartimin outputs match the unrotated model within 7.8e-16 for minres and ML extraction; varimax is an unchanged negative control. The corrected questionnaire values match the R reference fixture within 2.2e-6. The full 102-test suite passes with a two-line correction and regression.

Pinned source: de933d26808039d965c117874c67260ec5149690. Reproducer, input, results, patch and tests: https://github.com/dnncha/cheerfulduck/blob/main/projects/research/content/findings-20260908.json (factor-analyzer-oblique-communalities); evidence archive SHA-256 663e8f6ccbec7fa35aa3027ad9b94017285259fa9a3f5dd2e550eb7442805b15.

This demonstrates changed diagnostics on a real questionnaire, not a changed fitted score, paper or scientific conclusion. No matching report was found in bounded issue/PR searches on 27 September 2026; #92 and PR #51 cover different questions. Prepared with AI assistance; not independently reviewed.

Linguagem predominante
Python
Estrelas
6
Forks
3
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de EducationalTestingService/factor_analyzer

Todas as issues de EducationalTestingService/factor_analyzer

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.