Disons que j'étudie comment les jonquilles réagissent aux différentes conditions du sol. J'ai recueilli des données sur le pH du sol par rapport à la taille adulte de la jonquille. Je m'attends à une relation linéaire, alors je vais faire une régression linéaire.
Cependant, je n’avais pas réalisé au début de mon étude que la population contenait en fait deux variétés de jonquilles, chacune d’elles réagissant très différemment au pH du sol. Le graphique contient donc deux relations linéaires distinctes:
Je peux le regarder et le séparer manuellement, bien sûr. Mais je me demande s’il existe une approche plus rigoureuse.
Des questions:
Existe-t-il un test statistique permettant de déterminer si un ensemble de données serait mieux ajusté sur une seule ligne ou sur N lignes?
Comment pourrais-je exécuter une régression linéaire pour s'adapter aux N lignes? En d'autres termes, comment puis-je démêler les données mélangées?
Je peux penser à certaines approches combinatoires, mais elles semblent coûteuses en calcul.
Clarifications:
L'existence de deux variétés était inconnue au moment de la collecte des données. La variété de chaque jonquille n'a pas été observée, notée et non enregistrée.
Il est impossible de récupérer cette information. Les jonquilles sont mortes depuis la collecte des données.
J'ai l'impression que ce problème est similaire à l'application d'algorithmes de clustering, en ce sens que vous avez presque besoin de connaître le nombre de clusters avant de commencer. Je crois qu’avec N'IMPORTE QUEL ensemble de données, l’augmentation du nombre de lignes réduira l’erreur quadratique totale. À l'extrême, vous pouvez diviser votre ensemble de données en paires arbitraires et tracer simplement une ligne pour chaque paire. (Par exemple, si vous avez 1 000 points de données, vous pouvez les diviser en 500 paires arbitraires et tracer une ligne sur chaque paire.) L'ajustement serait exact et l'erreur efficace serait exactement zéro. Mais ce n'est pas ce que nous voulons. Nous voulons le "bon" nombre de lignes.
la source
Réponses:
Je pense que la réponse de Demetri est excellente si nous supposons que vous avez les étiquettes pour les différentes variétés. Lorsque j'ai lu votre question, cela ne semblait pas être le cas. Nous pouvons utiliser une approche basée sur l'algorithme EM pour ajuster le modèle proposé par Demetri mais sans connaître les étiquettes de la variété. Heureusement, le paquet mixtools dans R fournit cette fonctionnalité pour nous. Puisque vos données sont assez séparées et que vous semblez en avoir assez, cela devrait être assez réussi.
Nous pouvons examiner les résultats
Cela correspond donc à deux régressions et il a été estimé que 49,7% des observations entraient dans la régression pour la composante 1 et 50,2% dans la régression pour la composante 2. La façon dont j'ai simulé les données était une division 50-50, donc c'est bien.
Les «vraies» valeurs que j'ai utilisées pour la simulation doivent donner les lignes suivantes:
y = 41,55 + 5,185 * ph et y = 65,14 + 1,48148 * ph
(que j’ai estimé "à la main" à partir de votre graphique pour que les données que je crée soient similaires au vôtre) et les lignes que l’algorithme EM a donné dans ce cas sont les suivantes:
y = 41,514 + 5,19 * ph et y = 64,655 + 1,55 * ph
C'est sacrément proche des valeurs réelles.
Nous pouvons tracer les lignes ajustées avec les données
la source
EDIT: Au départ, je pensais qu'OP savait quelles observations provenaient de quelle espèce. Le montage d'OP montre clairement que mon approche originale n'est pas réalisable. Je vais laisser la place à la postérité, mais l'autre réponse est bien meilleure. En guise de consolation, j'ai codé un modèle de mélange dans Stan. Je ne dis pas qu'une approche bayésienne est particulièrement efficace dans ce cas, mais c'est simplement une chose intéressante à laquelle je peux contribuer.
Code Stan
Exécuter le modèle Stan à partir de R
Résultats
Les lignes pointillées sont la vérité au sol, les lignes continues sont estimées.
Réponse originale
Si vous savez quel échantillon provient de quelle variété de jonquille, vous pouvez estimer une interaction entre cette variété et le pH du sol.
Votre modèle ressemblera à
Voici un exemple dans R. J'ai généré des données qui ressemblent à ceci:
Clairement deux lignes différentes, et les lignes correspondent à deux espèces. Voici comment estimer les lignes en utilisant la régression linéaire.
Et le résultat est
Pour les espèces marquées 0, la ligne est approximativement
Pour les espèces identifiées 1, la ligne est approximativement
la source
L'approche statistique est très similaire à deux des réponses ci-dessus, mais elle explique un peu plus comment choisir le nombre de classes latentes si vous manquez de connaissances préalables. Vous pouvez utiliser des critères d’information ou de parcimonie pour vous guider dans le choix du nombre de classes latentes.
Voici un exemple de Stata utilisant une séquence de modèles de mélanges finis (FMM) avec 2 à 4 classes / composants latents. Le premier tableau contient les coefficients pour l'appartenance à une classe latente. Celles-ci sont un peu difficiles à interpréter, mais elles peuvent être converties en probabilités ultérieurement
estat lcprob
. Pour chaque classe, vous obtenez également un paramètre d'interception et un paramètre de pente de ph, suivis des probabilités marginales de classe latente et de deux circuits intégrés dans l'échantillon. Ces estimations de coefficients sont interprétées comme les coefficients d'un modèle de régression linéaire. Ici, le plus petit code BIC de l' échantillon vous indique de choisir le modèle à deux composants comme étant le meilleur. AIC choisit étrangement le modèle à 3 composants. Vous pouvez également utiliser des CI hors échantillon pour sélectionner ou utiliser la validation croisée.L’approche FMM ne fonctionnera pas toujours aussi bien si les cours sont moins rigoureux. Vous pouvez rencontrer des difficultés de calcul avec trop de classes latentes, en particulier si vous ne disposez pas de suffisamment de données, ou si la fonction de vraisemblance a plusieurs maxima locaux.
la source
Je vais me concentrer sur la question de la signification statistique puisque Dason a déjà couvert la partie modélisation.
Je ne suis pas familier avec les tests formels pour cela (qui, j'en suis sûr, existe), je vais donc simplement présenter quelques idées (et j'ajouterai probablement du code R et des détails techniques plus tard).
Premièrement, il est commode de déduire les classes. En supposant que deux lignes soient adaptées aux données, vous pouvez approximativement reconstruire les deux classes en affectant chaque point à la classe de la ligne la plus proche. Pour les points proches de l'intersection, vous rencontrerez des problèmes, mais pour l'instant ignorez-les (il y a peut-être un moyen de contourner cela, mais pour le moment, espérons que cela ne changera pas beaucoup).
Ensuite, il y a deux façons naturelles de procéder.
La méthode la moins amusante consiste simplement à exécuter votre jeu de données d'origine en combinaison avec les étiquettes de classe inférées via une régression linéaire comme dans la réponse de Demetri.
Une façon plus intéressante de le faire serait d'utiliser une version modifiée de ANOVA. Le but est de créer un jeu de données artificiel qui représente les deux lignes (avec un écart similaire entre elles), puis d'appliquer une ANOVA. Techniquement, vous devez le faire une fois pour le côté gauche et une fois pour le droit (vous aurez donc deux jeux de données artificiels).
la source
Est-il possible que l'inclusion des deux dans le même graphique est une erreur? Étant donné que les variétés se comportent de manière complètement différente, le chevauchement des données a-t-il une valeur? Il me semble que vous recherchez des impacts sur une espèce de jonquille, et non des impacts d’environnements similaires sur différentes jonquilles. Si vous avez perdu les données permettant de déterminer l'espèce "A" à partir de l'espèce "B", vous pouvez simplement grouper le comportement "A" et le comportement "B" et inclure la découverte de deux espèces dans votre récit. Ou, si vous voulez vraiment un graphique, utilisez simplement deux ensembles de données sur le même axe. Je n'ai aucune expertise proche de celle que je vois dans les autres réponses données, donc je dois trouver des méthodes moins "qualifiées". Je voudrais exécuter une analyse de données dans un environnement de feuille de travail où les équations sont plus faciles à développer. Ensuite, une fois que les regroupements deviennent évidents, créez les deux tableaux de données distincts, puis convertissez-les en diagrammes / graphiques. Je travaille avec beaucoup de données et je constate souvent que mes suppositions de corrélations différentes sont fausses; c'est ce que les données sont supposées nous aider à découvrir. Une fois que j'ai appris que mes hypothèses sont fausses, j'affiche les données en fonction des comportements découverts et discute de ces comportements et des analyses statistiques résultantes dans le cadre de la narration.
la source