Je m'appelle Ono et je suis testeur senior à la division JMP Japon du SAS Institute Japan.
Je me trompe peut-être et je suis hors sujet, mais je voudrais exprimer ci-dessous ce que je pense personnellement à ce stade.
■Concernant la première question en particulier, étant donné que les résultats sont différents à chaque fois, je pense qu’il se passe peut-être quelque chose d’étrange. (Par ailleurs, dans le « graphique logistique » avec une seule variable explicative continue, des nombres aléatoires sont utilisés pour déterminer la coordonnée Y. Cependant, au moins dans JMP15 et les versions ultérieures, une valeur de départ aléatoire fixe est utilisée, de sorte que le graphique ne devrait pas être différent à chaque fois qu'il est exécuté. De plus, les nombres aléatoires ne sont pas utilisés pour d'autres résultats numériques de la régression logistique et, pour des raisons mathématiques, au moins les estimations ponctuelles de vraisemblance maximale devraient être les mêmes dans tout logiciel statistique avec les mêmes données et paramètres, sauf dans les deux situations décrites ci-dessous.) Si la réponse ci-dessous n'est pas pertinente, pourriez-vous s'il vous plaît me dire quels résultats numériques dans le rapport sont différents à chaque fois ? Pourriez-vous également confirmer si les résultats numériques sont différents à chaque fois que vous réexécutez l'analyse à l'aide du script ?
■En général, lors de l'ajustement d'un modèle dans JMP, vous devez prêter attention aux points suivants :
Point 1 : Si votre question est de savoir si les résultats de JMP sont différents de ceux d'autres logiciels statistiques, sachez que JMP utilise une méthode appelée codage d'effet.
Point 2 : Veuillez noter que (une partie des) résultats JMP changeront en fonction de « l'échelle » définie pour la colonne.
Point 3 : Veuillez noter que (une partie des) résultats JMP peuvent changer en fonction de « l'ordre dans lequel les valeurs sont affichées ».
Point 4 : En utilisant des scripts, vous pouvez réexécuter la même analyse sans utiliser la souris.
<Détails>
La régression logistique pour les réponses binaires, ordinales ou nominales n'a qu'une seule solution globale, sauf dans deux cas :
(1) Lorsqu'il existe une indépendance linéaire entre les variables explicatives
Par exemple, lorsqu’il existe une relation entre trois variables X1, X2 et X3, telle que X1 + X2 = X3, ou lorsque la taille de l’échantillon est inférieure au nombre de variables explicatives. Dans ce cas, les estimations des paramètres ne sont pas déterminées de manière unique.
(2) Lorsque la séparation existe
Dans ce cas, les estimations des paramètres seront +∞ ou -∞. Autrement dit, il n’existe aucune estimation des paramètres.
À l’inverse, dans d’autres situations que celles-ci, l’analyse de régression logistique pour les variables de réponse binaires, ordinales ou nominales a une solution unique. Par conséquent, si les paramètres des données et du modèle sont les mêmes, dans des situations autres que les deux mentionnées ci-dessus, même si un logiciel statistique différent est utilisé(*1), au moins les estimations ponctuelles (estimations ponctuelles obtenues par estimation du maximum de vraisemblance) devraient et seront les mêmes, dans la plage d'erreur numérique. De plus, au moins l'analyse de régression logistique de JMP n'utilise pas de nombres aléatoires dans le processus d'optimisation(*2), donc à cet égard également, si les données et les paramètres sont les mêmes et qu'il s'agit de la même version de JMP, les résultats devraient et doivent être exactement les mêmes(*3).
(*1) Cependant, certaines routines qui effectuent des « opérations logistiques » dans d'autres logiciels utilisent la vraisemblance pénalisée avec la norme L1 ou la norme L2 par défaut au lieu de l'analyse de régression logistique classique. De plus, comme indiqué ci-dessous dans (b), les estimations des paramètres peuvent différer en fonction du codage des variables explicatives catégorielles. En outre, il existe trois types de tests pour l’estimation du maximum de vraisemblance : le test de Wald, le test du rapport de vraisemblance et le test du score. Les intervalles de test et de confiance varient en fonction du test utilisé.
(*2) Cependant, dans un « graphique logistique » qui est dessiné lorsqu'il n'y a qu'une seule variable explicative continue, des nombres aléatoires sont utilisés pour déterminer la coordonnée Y. Cependant, au moins dans la version 15 de JMP et les versions ultérieures, une valeur de départ aléatoire fixe est utilisée, de sorte que les résultats ne devraient pas varier d'une exécution à l'autre. L'aide pour la version actuelle (18.2) peut être consultée à l'URL suivante.
(*3) Cependant, en fonction du temps nécessaire au traitement des données, le test par défaut effectué sur les effets peut être le test du rapport de vraisemblance ou le test de Wald. Pour la version actuelle (18.2), plus de détails sont fournis à l'URL suivante :
Il y a cependant trois points (pièges) auxquels il faut faire attention (a) à (c).
(a) Dans JMP, même si les valeurs numériques des données sont les mêmes, les résultats des graphiques et des analyses statistiques changeront en fonction de l'échelle (continue, ordinale ou nominale) utilisée dans le tableau de données.
(b) Dans JMP, le codage des variables explicatives (en particulier le codage de l'échelle nominale) suit une méthode couramment utilisée dans les statistiques industrielles et de fabrication. Ce codage est appelé « codage d’effet » et, par exemple, pour les échelles nominales, les hommes et les femmes seraient codés comme suit :
Homme 1
Homme 1
Femme -1
Femme -1
Femme -1
ou,
Homme -1
Homme -1
Femme 1
Femme 1
Femme 1
Par exemple, dans le cas d’une échelle nominale à trois valeurs, elle serait codée comme suit :
Ehime 1 0
Ehime 1 0
Kagawa 0 1
Tokushima -1 -1
Tokushima -1 -1
Tokushima -1 -1
(Lorsque ce type de codage d'effet est utilisé pour les variables d'échelle nominales, les estimations des paramètres représentent les écarts par rapport au « réglage intermédiaire ». Dans les statistiques de fabrication et industrielles, de nombreuses variables d'échelle nominales sont à l'origine continues, et les écarts par rapport aux réglages du processus actuel sont souvent un problème, de sorte que ce type de codage est probablement utilisé fréquemment.)
Un codage différent est utilisé pour les variables explicatives ordinales.
(c) Lorsque les données sont triées, le dernier niveau devient « -1 » (dans le codage de l'échelle nominale). Vous pouvez également modifier le niveau qui vient en dernier à l'aide de la propriété de colonne Ordre d'affichage des valeurs. (Dans l'exemple ci-dessus, Tokushima est la dernière catégorie à être affichée.)
La différence entre (b) et (c) donne lieu à des estimations de paramètres différentes. Cependant, même si les paramètres dans (b) et (c) sont différents, l'ajustement de l'ensemble des données (« Test du modèle complet », « Détails de l'ajustement » et « Manque d'ajustement (LOF) ») ne changera pas.
Dans JMP, les processus analytiques peuvent être enregistrés dans ce qu'on appelle un « script » ou « JMP Scripting Language (JSL) ». Vous pouvez enregistrer le script à partir du menu triangle rouge en haut du rapport. Dans la version 18 de JMP, cliquez sur le triangle rouge dans le rapport > Enregistrer le script et sélectionnez Vers la table de données pour enregistrer dans une table de données. Cela enregistre le script dans le coin supérieur gauche du tableau de données. Cette fonctionnalité vous permet de recréer votre analyse sans avoir à cliquer sur une souris.
(En particulier, JMP18 a ajouté une nouvelle fonctionnalité appelée « Workflow Builder », qui permet d'enregistrer une plus large gamme d'opérations de souris.)
■2
Le D de Somers sera également négatif dans les cas où il existe un soi-disant « coefficient de corrélation négatif » (tout comme les coefficients de corrélation de Pearson et Kendall sont négatifs). Par exemple, dans les données ci-dessous, le D de Somers et le τb de Kendall sont négatifs.
dt1 = New Table("Test1",
New Column("X", Ordinal, Values([1,1,1,2,2,2,3,3,3])),
New Column("Y", Ordinal, Values([1,2,3,1,2,3,1,2,3])),
New Column("度数", Values([9,8,7, 6,5,2, 4,3,1]))
);
dt1 << Contingency(
Y( :Y ),X( :X ), Freq( :度数 ),
Measures of Association( 1 )
);
Pour exécuter ce script, sélectionnez d’abord Fichier > Nouveau > Script JSL dans le menu déroulant JMP (JMP 18 pour Windows). Ensuite, dans la fenêtre de script qui apparaît, copiez et collez le script ci-dessus. Après avoir copié et collé, sélectionnez Modifier > Exécuter le script dans le menu déroulant.
Ceci est également lié à (c) dans ■1 ci-dessus, mais les résultats changeront en fonction de l’ordre dans lequel les données sont triées. Dans l'état par défaut où rien n'est fait, « le plus petit » et « le plus grand » sont définis par l'ordre dans lequel les données sont triées (A, B, C si elles sont alphabétiques, 1, 2, 3 si elles sont numériques).
Cet ordre peut être modifié dans les propriétés de la colonne « Ordre d'affichage des valeurs ». (Dans les versions plus anciennes, cet ordre de valeur était appelé une option différente.)
(1) Dans le tableau de données, cliquez avec le bouton droit sur l’en-tête de colonne et sélectionnez Informations sur la colonne.
(2) Cliquez sur la zone de liste déroulante Propriétés de la colonne et sélectionnez Ordre d’affichage des valeurs.
(3) Si les valeurs ne sont pas triées du plus petit au plus grand, sélectionnez une valeur puis utilisez les flèches haut et bas (↑ ou ↓) pour modifier l'ordre.
(4) Après avoir modifié l'ordre d'affichage, cliquez sur le bouton OK dans le coin supérieur droit de l'écran pour fermer la fenêtre d'informations sur les colonnes.
Par exemple, les valeurs de données suivantes sont exactement les mêmes que celles ci-dessus, mais comme l'ordre des valeurs est différent (pour la variable X, « 3 » est défini comme le plus petit et « 1 » comme le plus grand), le D de Somers et le τb de Kendall sont positifs, contrairement aux résultats ci-dessus. (Le script suivant a été créé à l'aide de la version actuelle de JMP 18. Il peut ne pas fonctionner comme prévu dans les versions plus anciennes.)
dt2 = New Table( "Test2",
New Column( "X", "Ordinal",
Set Property( "Value Order", {Custom Order( {3, 2, 1} )} ),
Values( [1, 1, 1, 2, 2, 2, 3, 3, 3] )
),
New Column( "Y","Ordinal",
Set Property( "Value Order", {Custom Order( {1, 2, 3} )} ),
Set Values( [1, 2, 3, 1, 2, 3, 1, 2, 3] )
),
New Column( "度数",
Set Values( [9, 8, 7, 6, 5, 2, 4, 3, 1] )
)
);
dt2 << Contingency(
Y( :Y ),X( :X ), Freq( :度数 ),
Measures of Association( 1 )
);
Le D de Somers peut être négatif (sa valeur minimale est -1).
De plus, pour vérifier si votre analyse est incorrecte, regardez le tableau de contingence dans le rapport et assurez-vous que les valeurs sont classées du plus petit au plus grand. Si les valeurs ne sont pas disposées comme prévu, vous devrez modifier l'ordre d'affichage dans les propriétés de la colonne du tableau de données « Ordre d'affichage des valeurs ».