Janv. 2011
HM
Conventions pour déclarer des facteurs d'entrée à travers un tableur :
-
LIGNES1 ligne par facteur + une ligne de noms de colonnes
-
COLONNES
-
-
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
-
pour déclarer les paramètres des distributions, deux options:
-
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
-
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
-
-
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 ::
-
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
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 |