Le manque de rang dans ce contexte indique que les informations contenues dans vos données sont insuffisantes pour estimer le modèle souhaité. Il provient de nombreuses origines. Je parlerai ici de la modélisation dans un contexte assez général, plutôt que d’une régression logistique explicite, mais tout s’applique toujours au contexte spécifique.
La carence peut provenir simplement de trop peu de données. En général, vous ne pouvez pas estimer de manière unique n paramètres avec moins de n points de données. Cela ne signifie pas que tout ce dont vous avez besoin est de n points, car s'il y avait du bruit dans le processus, vous obtiendriez des résultats plutôt médiocres. Vous avez besoin de plus de données pour aider l’algorithme à choisir une solution qui représentera l’ensemble des données, avec un minimum d’erreur. C'est pourquoi nous utilisons les outils des moindres carrés. De combien de données avez-vous besoin? On m'a toujours posé cette question dans une vie antérieure, et la réponse a été supérieure à ce que vous avez ou à ce que vous pouvez obtenir. :)
Parfois, vous pouvez avoir plus de données que nécessaire, mais certains (trop) de points sont des réplicats. La réplication est BON dans le sens où elle contribue à réduire le bruit, mais pas à augmenter le rang numérique. Ainsi, supposons que vous n’ayez que deux points de données. Vous ne pouvez pas estimer un modèle quadratique unique à travers les points. Un million de répétitions de chaque point ne vous permettra toujours pas de passer plus d'une ligne droite, à travers ce qui n'est encore qu'une paire de points. Essentiellement, la réplication n'ajoute pas de contenu d'informations. Tout ce que cela fait, c'est réduire le bruit aux endroits où vous avez déjà des informations.
Parfois, vous avez des informations aux mauvais endroits. Par exemple, vous ne pouvez pas adapter un modèle quadratique à deux dimensions si vous ne disposez que de points situés tous en ligne droite dans deux dimensions. En d'autres termes, supposons que vous ayez des points dispersés uniquement le long de la ligne x = y dans le plan et que vous souhaitiez ajuster un modèle à la surface z (x, y). Même avec des zillions de points (pas même des répliques), vous aurez suffisamment d'informations pour estimer intelligemment plus qu'un modèle constant. Étonnamment, c'est un problème commun que j'ai vu dans les données échantillonnées. L'utilisateur se demande pourquoi ils ne peuvent pas construire un bon modèle. Le problème est intégré aux données mêmes qu'ils ont échantillonnées.
Parfois, il s'agit simplement d'un choix de modèle. Cela peut être considéré comme "pas assez de données", mais de l'autre côté. Vous souhaitez estimer un modèle compliqué, mais n'avez pas fourni suffisamment de données pour le faire.
Dans tous les cas ci-dessus, la solution consiste à obtenir davantage de données, échantillonnées intelligemment depuis des lieux fournissant des informations sur le processus qui vous manque actuellement. La conception d'expériences est un bon point de départ.
Cependant, même de bonnes données sont parfois insuffisantes, du moins numériquement. (Pourquoi de mauvaises données arrivent-elles à de bonnes données?) Le problème ici peut être lié au modèle. Cela ne réside peut-être que dans un mauvais choix d’unités. Cela peut provenir de la programmation informatique effectuée pour résoudre le problème. (Ugh! Par où commencer?)
Tout d'abord, parlons des unités et de la mise à l'échelle. Supposons que j'essaie de résoudre un problème où une variable est BEAUCOUP plus grand qu'un ordre de grandeur. Par exemple, supposons que j'ai un problème qui implique ma taille et la taille de mes chaussures. Je vais mesurer ma taille en nanomètres. Donc, ma taille serait d'environ 1,78 milliard (1,78e9) nanomètres. Bien sûr, je choisirai de mesurer ma pointure en kilo-parsecs, soit 9,14 e-21 kilo-parsecs. Lorsque vous modélisez par régression, la régression linéaire concerne l’algèbre linéaire, qui implique des combinaisons linéaires de variables. Le problème, c’est que ces nombres diffèrent d’énormément d’ordre de grandeur (et même pas des mêmes unités.) nombre,
L'astuce consiste généralement à utiliser des unités communes, mais pour certains problèmes, même lorsque les variables varient d'un ordre de grandeur à l'autre. Le plus important est d’adapter vos chiffres à une magnitude similaire.
Ensuite, vous pouvez voir des problèmes avec les grands nombres et une petite variation dans ces nombres. Ainsi, supposons que vous essayiez de construire un modèle polynomial d'ordre relativement élevé avec des données où toutes vos entrées se situent dans l'intervalle [1,2]. La mise au carré, la mise en cubes, etc., des nombres de l'ordre de 1 ou 2 ne poseront aucun problème lorsque vous travaillerez en arithmétique en double précision. Sinon, ajoutez 1e12 à chaque numéro. En théorie, les mathématiques le permettront. Tout ce qu'il fait, c'est déplacer tout modèle polynomial construit sur l'axe des x. Il aurait exactement la même forme, mais se traduirait par 1e12 à droite. En pratique, l'algèbre linéaire échouera lamentablement à cause de problèmes d'insuffisance de rang. Vous n'avez rien fait d'autre que traduire les données, mais vous commencez tout à coup à voir apparaître des matrices singulières.
En général, le commentaire consiste à suggérer de "centrer et d’échelonner vos données". En pratique, cela signifie déplacer et mettre à l'échelle les données de manière à ce qu'elles aient une moyenne proche de zéro et un écart-type d'environ 1, ce qui améliorera considérablement le conditionnement de la plupart des modèles polynomiaux, réduisant ainsi le nombre de problèmes d'insuffisance de rang.
Il existe d’autres raisons pour la déficience de rang. Dans certains cas, il est construit directement dans le modèle. Par exemple, supposons que je fournisse la dérivée d'une fonction, puis-je déduire de manière unique la fonction elle-même? Bien sûr que non, car l’intégration implique une constante d’intégration, paramètre inconnu généralement déduit de la connaissance de la valeur de la fonction à un moment donné. En fait, cela se produit parfois aussi dans les problèmes d’estimation, où la singularité d’un système découle de la nature fondamentale du système à l’étude.
J’ai sûrement omis quelques-unes des nombreuses raisons de l’insuffisance de rang dans un système linéaire, et cela fait trop longtemps que je discute. J'espère que j'ai réussi à expliquer ceux que j'ai couverts en termes simples et un moyen d'atténuer le problème.