Comment décrire les facteurs dans MTK ? Réflexions.

Comment décrire les facteurs dans MTK ? Réflexions. hrichard

 

Janv. 2011
 
 
HM
Conventions pour déclarer des facteurs d'entrée à travers un tableur :
  • LIGNES
    1 ligne par facteur + une ligne de noms de colonnes
  • COLONNES
    1. une 1ère série de colonnes avec des noms obligés reprenant à peu près ceux du schéma XML: name, id, nominalValue, distribName
    2. pour déclarer les paramètres des distributions, deux options:
      1. une colonne unique "distribParam",dans ce cas, les paramètres sont insérés dans chaque ligne sous la forme "param1=valeur1::param2=valeur2". Le signe "=" est imposé, le séparateur "::" pourrait être modifiable (par un argument de la fonction de lecture du tableau).
        Remarque: cette option est particulièrement adaptée au cas où les distributions sont différentes selon les facteurs
      2. une série de colonnes intitulées "distribParam_parami", où "parami" est le nom du paramètre considéré
        Remarque: cette option est particulièrement adaptée au cas où la même famille de distributions est utilisée pour tous les facteurs
    3. une colonne "levels" pour les facteurs discrets dont on donne les niveaux explicitement (voir l'exemple scrapie). Dans ce cas, les niveaux sont insérés sous la forme "niveau1::niveau2::niveau3".
      Même remarque que ci-dessus pour le séparateur ::
    4. des colonnes supplémentaires de nom libre, qui seront considérées comme des "features" de même nom que celui de la colonne (voir nlevels dans l'exemple scrapie)
 
Remarques supplémentaires:
  • à part les colonnes "name" et "distribName", toutes les colonnes sont potentiellement manquantes
  • si "id" manque, le considérer comme égal à "name"
  • les fichiers ci-joints sont des implémentations sous OpenOffice de cette proposition pour tous les exemples de l'Ecole-Chercheurs + le modèle scrapie de Suzanne. L'idée est que l'utilisateur exporte ce tableau sous un format texte (.csv par exemple) et c'est ce fichier que l'on lit depuis R. Il est possible en principe de lire directement ces tableaux .ods depuis R, mais on peut voir cela dans un 2nd temps à mon avis.
  • a priori, on peut prévoir l'algo suivant:
    • a) lire le tableau par read.table(),
    • b) traiter les différentes colonnes selon la partition faite plus haut;
    • c) dénouer les items dans lesquels on a utilisé le séparateur de type :: (distribParam et levels)
  • attention, j'ai utilisé des "," (virgules) pour les nombres décimaux car sinon OpenOffice voulait transformer mes nombres en dates.
  • reste à envisager le cas où l'on déclare ce genre d'infos directement de R
     
RF
Est il possible de pouvoir définir une distribution continue restreinte à un support compact ?
En gros, si on veut une loi gaussienne de paramètres mu et sigma2 mais uniquement sur un intervalle a-b. Certes, ce n'est plus une "vraie gaussienne" mais j'ai l'impression qu'il y en a qui pourrait vouloir le faire.

Est-ce que ce que fungusPlus est envisageable ?

 
HM
Il y a des fonctions pour lois tronquées dans la librairie R de l'Ecole-Chercheur (fichier TPLibUtile.R, ligne 1118). Elles avaient été fournies par Bertrand.

En fait il y en a 2 types:

  • des fonctions pour des lois tronquées spécifiques:
dtnorm   ptnorm   qtnorm   rtnorm
dtlnorm  ptlnorm  qtlnorm  rtlnorm
dtgumbel ptgumbel qtgumbel rtgumbel
Dans ce cas on pourrait les considérer comme les autres lois, avec un min et un max.
 
  • des fonctions d.trunc.distr p.trunc.distr q.trunc.distr r.trunc.distr qui font les calculs de lois tronquées quelconques. Mais là encore on peut le traiter comme un cas particulier, en choisissant "trunc" comme nom de distribution et la loi en question comme paramètre.
Ton tableau montre qu'il serait bien de prévoir le cas où il y a à la fois une colonne "distribParam" et des colonnes "distribParam_toto"
 

 

Exemples

On peut retrouver les exemples sous forme de fichier .ods sous l'arborescence du projet "boite à outil Mexico" sur la forge MulCyber ( rubrique "Uncategorized Submissions") :  https://mulcyber.toulouse.inra.fr/docman/index.php?group_id=105

fungusFactors

id name nominalValue distribName distribParam_min distribParam_max
Tmax Tmax 4,5 unif 2,6 6
Tmin Tmin 9 unif 8 10
Topt Topt 20 unif 1,8 22
Wmax Wmax 4,5 unif 4 5
Wmin Wmin 9,5 unif 8 11
 
fungusFactorsPlus
id name nominalValue distribName distribParam distribParam_min distribParam_max
Tmax Tmax 4,5 norm mu=4::sigma=1 2,6 6
Tmin Tmin 9 unif   8 10
Topt Topt 20 unif   1,8 22
Wmax Wmax 4,5 unif   4 5
Wmin Wmin 9,5 unif   8 11
 
ishigamiFactors
name id nominalValue distribName distribParam
x1 x1 0 unif min=-3.14::max=3.14
x2 x2 0 unif min=-3.14::max=3.14
x3 x3 0 unif min=-3.14::max=3.14
 
 
 
scarpieFactors
name id nominalValue distribName distribParam levels nLevels
breed breed autorenov discreteNonOrdered   autorenov::perte1::pertemax 3
intro intro 0 sequence begin=0::end=2::step=1   3
 
 
weedsFactors

name nominalValue distribName distribParam_min distribParam_max
mu 0,84 unif 0,756 0,924
v 0,6 unif 0,54 0,66
phi 0,55 unif 0,495 0,605
beta.1 0,95 unif 0,855 1,045
beta.0 0,2 unif 0,18 0,22
chsi.1 0,3 unif 0,27 0,33
chsi.0 0,05 unif 0,045 0,055
delta.new 0,15 unif 0,135 0,165
delta.old 0,3 unif 0,27 0,33
mh 0,98 unif 0,882 1,078
mc 0 unif 0 0,5
Smax.1 445 unif 400,5 489,5
Smax.0 296 unif 266,4 325,6
Ymax 8 unif 7,2 8,8
rmax 0,002 unif 0,0018 0,0022
gamma 0,005 unif 0,0045 0,0055
delta.new 400 unif 300 500
Smax.0 10000 unif 7500 12500
SSBa 3350 unif 2512,5 4187,5
DSBa 280 unif 210 350
 
 
wwdmFactors
name nominalValue distribName distribParam levels nLevels
A 1,85 unif min=0,9::max=2,8    
B 0,94 unif min=0,9::max=0,99    
C 0,70 unif min=0,6::max=0,8    
D 7,50 unif min=3::max=12    
E 0,01 unif min=0,0035::max=0,01    
F 0,00 unif min=0,0011::max=0,0025    
G 900,00 unif min=700::max=1100    
Y 3,00 sequence begin=1::end=14::step=1