[REDMINE1D-9] [RM-6503] Evidences star/galaxies Created: 04/Jun/21  Updated: 13/Jun/23  Resolved: 13/Jun/23

Status: Done
Project: 1D Redmine
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Normal
Reporter: Redmine-Jira Migtation Assignee: Redmine-Jira Migtation
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Fit_gal.png     PNG File Fit_star.png    

 Description   

Created on 2021-05-20 08:30:59 by Vincent Le Brun. % Done: 100

dans le dataset d'étoiles au format 'Roman', construit à partir des templates, un des spectres est classé en galaxies alors que le spectre est identique au template (à la résolution près), et il y a un modèle de galaxies avec une probabilismes de 1 (exactement) qui donc prend le dessus. A voir si c'est normal/attendu ?



 Comments   
Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Vincent Le Brun on 2021-05-20 09:05:44:
Vincent Le Brun wrote:
> dans le dataset d'étoiles au format 'Roman', construit à partir des templates, un des spectres est classé en galaxies alors que le spectre est identique au template (à la résolution près), et il y a un modèle de galaxies avec une probabilité de 1 (exactement) qui donc prend le dessus. A voir si c'est normal/attendu ?

Répertoire /net/CESAM/amazed/vlebrun/Roman/output

spectre M_ukm2iii,
le fit sur le modèle d'étoiles est parfait alors que celui avec les galaxies est moins bon de façon nette , mais les évidences disent le contraire

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Didier Vibert on 2021-08-30 10:07:17:
un indice d'explication possible:

Les évidences, qui devraient être calculées en sommant les vraisemblances sur tout l'espace des paramètres, ne le font pas exactement et surtout ceci est dépendant de la méthode:

param z template ism igm amplitude
templatefiting x x x x  
param z continuum template continuum ism continuum igm continuum amplitude linemodel tplratio tpl ratio ism tpl ratio emission amplitude tpl ratio abs amplitude linemodel em velocity tpl ratio abs velocity
linemodelsolve x         x x      

=> il manque notoirement, pour le linemodel, la somme sur les templates de continus (déclinés avec la variation ism/igm) , ce qui donc déséquilibre la balance template_fitting/linemodel en faveur du linemodel.

ce n'est pas simple à modifier, car les vraisemblances des modèles correspondants ne sont pas calculées (il faudrait refaire tourner le linemodel avec chaque continu)...

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Didier Vibert on 2022-02-21 11:01:13:

résultats après modifs

après développement de la prise en compte de tous les continus pour le calcul de l'évidence du linemodel, le problème montré dans cet exemple persiste.

En fait, avec un classifieur basé sur le best chi2 on aurait le même pb:
best_chi2_tpl_model_galaxy = 27171 (galaxy template fitting only)
best_chi2_tpl_model_star = 26993
best_chi2_full_model_galaxy = 25578 (galaxy linemodel with template fitting)

(j'ai vérifié sous python que le caclul des chi2 effectué par amazed est correct, une fois les modèles sortis)

=> le pb vient du bruit du template d'étoile (je vais les lisser à la resol qui est dans le parameter.json pour voir)

corrections à effectuer:

en cherchant à résoudre le pb, j'ai identifié plusieurs points supplémentaires à traiter:

  • tplfitauto: avec ce mode, le modèle galaxy bascule sur un ajustement du modèle sur un spectre donné sans continu. => il ne devient plus possible de faire une classification bayesienne, que ce soit avec la comparaison des évidences ou des chi2, entre 2 modèles ajustés sur des données différentes.
  • Une possibilité consiste à mettre en œuvre l'équivalent du tplfitauto dans le solver templatefitting, pas très difficile à implémenter avec la structure du code actuel, le templatefittingSolve est prévu pour fonctionner en mode sans continu, par soustraction du continu median à la fois sur le spectre et sur le template. Est-ce que ça a un sens, avec les template d'étoile ?
  • il faudra ensuite une heuristique, pour déterminer la classif si les modèles ne basculent pas tous sans continu
  • évidence star, en mode "bestchi2"

la pdf du modèle étoile n'est habituellement pas obtenue par marginalisation sur le template, mais correspond à la pdf du meilleur template. (option pdfcombination="bestchi2")
et donc l'évidence utilisée est la somme de cette PDF sur z. Il faudrait sommer aussi sur les templates pour l'évidence servant à la classification.

=> rajouter une variable 'valEvidenceMargLog' à la classe `CPdfMargZLogResult` qui contient la PDF (et qui porte mal son nom, car ce n'est pas nécessairement "marg"), et la calculer systématiquement qq soit l'option pfdcombination

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Vincent Le Brun on 2022-02-22 08:31:58:
Didier Vibert wrote in #note-18:

> h3. corrections à effectuer:
>
> en cherchant à résoudre le pb, j'ai identifié plusieurs points supplémentaires à traiter:
>
> * tplfitauto: avec ce mode, le modèle galaxy bascule sur un ajustement du modèle sur un spectre donné sans continu. => il ne devient plus possible de faire une classification bayesienne, que ce soit avec la comparaison des évidences ou des chi2, entre 2 modèles ajustés sur des données différentes.
>
> * Une possibilité consiste à mettre en œuvre l'équivalent du tplfitauto dans le solver templatefitting, pas très difficile à implémenter avec la structure du code actuel, le templatefittingSolve est prévu pour fonctionner en mode sans continu, par soustraction du continu median à la fois sur le spectre et sur le template. Est-ce que ça a un sens, avec les template d'étoile ?
non le continu est fondamental pour les étoiles...
>
> * il faudra ensuite une heuristique, pour déterminer la classif si les modèles ne basculent pas tous sans continu
>
> * évidence star, en mode "bestchi2"
>
> la pdf du modèle étoile n'est habituellement pas obtenue par marginalisation sur le template, mais correspond à la pdf du meilleur template. (option pdfcombination="bestchi2")
> et donc l'évidence utilisée est la somme de cette PDF sur z. Il faudrait sommer aussi sur les templates pour l'évidence servant à la classification.
>
> => rajouter une variable 'valEvidenceMargLog' à la classe `CPdfMargZLogResult` qui contient la PDF (et qui porte mal son nom, car ce n'est pas nécessairement "marg"), et la calculer systématiquement qq soit l'option pfdcombination

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Didier Vibert on 2022-02-22 08:45:48:
Vincent Le Brun wrote in #note-19:
> Didier Vibert wrote in #note-18:
> > * Une possibilité consiste à mettre en œuvre l'équivalent du tplfitauto dans le solver templatefitting, pas très difficile à implémenter avec la structure du code actuel, le templatefittingSolve est prévu pour fonctionner en mode sans continu, par soustraction du continu médian à la fois sur le spectre et sur le template. Est-ce que ça a un sens, avec les template d'étoile ?
> non le continu est fondamental pour les étoiles...

Certes, mais la question se pose lorsque le continu est dégradé par la décontamination par exemple. Ce que je propose, c'est de faire comme pour le linemodel galaxy: on fait du template fitting pour les étoiles, s'il existe un template avec un z donnant un fit avec amplitude > -5 sigma, pas de pb on ne change rien, et la classif devra classer en star si le problème de continu neg ne survient que pour le modèle galaxy. Inversement, si aucuns template d'étoile, à aucun z, ne donne une amp > -5 sigma, alors on passe en mode sans continu (on filtre les template et le spectre), Il ne reste pas de raies d'absorption dans les templates qui peuvent servir ?
Si tu dis que non, alors on ne sort pas solution pour les étoiles et la classif n'est plus un pb, on décrète le type galaxy systématiquement... Reste à voir pour les QSO ...

autre possibilité: amp < -k sigma peut survenir pour plusieurs raisons, une étant un continu moyen (une constante) mal soustraite, donc une autre alternative serait, au lieu de soustraire un continu médian, de ne soustraire qu'une constante (au template et au spectre). Rmq ce fonctionnement est possible à la fois pour le fullmodel et le templatefiting, et n'est pas exclusif de la soustraction du continu médian: ça rallonge juste les calculs...

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Vincent Le Brun on 2022-02-22 09:35:08:
Didier Vibert wrote in #note-20:

> Certes, mais la question se pose lorsque le continu est dégradé par la décontamination par exemple. Ce que je propose, c'est de faire comme pour le linemodel galaxy: on fait du template fitting pour les étoiles, s'il existe un template avec un z donnant un fit avec amplitude > -5 sigma, pas de pb on ne change rien, et la classif devra classer en star si le problème de continu neg ne survient que pour le modèle galaxy. Inversement, si aucuns template d'étoile, à aucun z, ne donne une amp > -5 sigma, alors on passe en mode sans continu (on filtre les template et le spectre), Il ne reste pas de raies d'absorption dans les templates qui peuvent servir ?
> Si tu dis que non, alors on ne sort pas solution pour les étoiles et la classif n'est plus un pb, on décrète le type galaxy systématiquement... Reste à voir pour les QSO ...
si il y en a, ce sont les memes que dans le linemodel galaxy, sauf que les solutions à z=0 ne sont pas gérées en mode galaxy...
> autre possibilité: amp < -k sigma peut survenir pour plusieurs raisons, une étant un continu moyen (une constante) mal soustraite, donc une autre alternative serait, au lieu de soustraire un continu médian, de ne soustraire qu'une constante (au template et au spectre). Rmq ce fonctionnement est possible à la fois pour le fullmodel et le templatefiting, et n'est pas exclusif de la soustraction du continu médian: ça rallonge juste les calculs...
dans le cas d'un continu de forme compliquée, est ce qu'on est sur d'avoir une bonne estimation de la constante en question? la 'vraie' moyenne du spectre peut ne pas être triviale à évaluer

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Didier Vibert on 2022-02-24 08:34:14:
je confirme. en lissant les templates d'étoile à la résolution 300, on bascule avec une proba de 1. pour les étoiles

  • avec la version develop
    <pre>
    Info: Found galaxy LogEvidence: -4.138208e+03
    Info: Found stellar LogEvidence: 6.228568e+03
    Info: Setting object type: S
    </pre>
  • avec cette branche (dans laquelle les étoiles sont un peu défavorisées car on ne somme pas encore sur les templates)
    <pre>
    Info: Found galaxy LogEvidence: -4.141253e+03
    Info: Found stellar LogEvidence: 6.228568e+03
    Info: Setting object type: S
    </pre>

où on voit que l'effet de compter tous les template de continu ne baisse pas violemment l'évidence: facteur 20 (~ln(3) sur l'évidence.

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Didier Vibert on 2022-03-08 15:03:15:
MR: https://gitlab.lam.fr/CPF/cpf-redshift/-/merge_requests/289

Comment by yuki.moritani [ 13/Jun/23 ]

Comment by Pierre-yves Chabaud on 2022-03-10 15:54:11:
Merged into @develop@ : @726fbe9@

Generated at Sat Feb 10 15:28:22 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.