Re : Calcul d'une p-value dans un scriptIl y a quelques choses ici :
- Le script calcule la valeur p en fonction de la critique valeur t (calculée sur la première ligne) au lieu de la observé valeur t. Ce dernier est la différence des moyennes divisée par l'erreur type de la différence.
- L'appel t Distribution() calcule la proportion de la distribution inférieure à la valeur t, qui n'est pas tout à fait la valeur p que vous recherchez. Le calcul de la valeur p bilatérale nécessite une arithmétique simple à partir d'ici (voir exemple).
Si nous pouvons supposer que la table de données contient au minimum les tailles d'échantillon, les moyennes et les écarts-types par groupe dans leurs propres colonnes, alors voici quelques JSL qui feront ce que vous voulez. Essayez-le sur le tableau d'exemple ci-joint. Notez que j'ai inclus une étape intermédiaire de calcul d'une colonne d'écart type regroupé pour améliorer la lisibilité de la formule pour la colonne de valeur t.
Names Default to Here( 1 );
dt = Data Table( "Example.jmp" );
dt << New Column( "Pooled stdev",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3 ),
Formula(
Sqrt( ((:Group A n - 1) * :Group A stdev ^ 2 + (:Group B n - 1) * :Group B stdev ^ 2) / (:Group A n + :Group B n - 2) )
)
);
dt << New Column( " t-Value",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3),
Formula(
(:Group A mean - :Group B mean) / (:Pooled stdev * Sqrt( 1 / :Group A n + 1 / :Group B n) )
)
);
dt << New Column( "p-Value",
Numeric,
Continuous,
Format( "Fixed Dec", 15, 3 ),
Formula(
( 1 - t Distribution( Abs( :"t-Value"n ), :Group A n + :Group B n - 2 ) ) * 2
)
);
Re : Calcul d'une p-value dans un scriptSalut Ross,
Merci pour votre réponse, à quoi cela ressemble-t-il
dt5 << New Column( "Difference in Mean", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( :"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) );
dt5 << New Column( "Pooled Std Dev", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( sqrt(((:"N(Data) VPP"n - 1)* :"Std Dev(Data) VPP"n ^ 2 + (:"N(Data) Commercial"n - 1) * :"Std Dev(Data) Commercial"n ^ 2 ) / (:"N(Data) VPP"n + :"N(Data) Commercial"n - 2)))) ;
dt5 << New Column( "Lower 90% Confidence Interval", Numeric, Continuous, Format( "Fixed Dec", 15, 3 ), Formula( (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) - t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2) * (:Pooled Std Dev * sqrt(( 1/:"N(Data) VPP"n) + (1/:"N(Data) Commercial"n )) )));
dt5 << New Column( "Upper 90% Confidence Interval", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n ) + t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2) * (:Pooled Std Dev * sqrt(( 1/:"N(Data) VPP"n) + (1/:"N(Data) Commercial"n )) )));
dt5 << New Column( "Pooled Variance", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula(:Pooled Std Dev ^ 2));
dt5 << New Column(" Std Error for t-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula(sqrt (:Pooled Variance * ( 1/:"N(Data) VPP"n + 1/ :"N(Data) Commercial"n ) )));
dt5 << New Column(" t-stat", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula((Abs (:"Mean(Data) VPP"n - :"Mean(Data) Commercial"n - 0)) / :"Std Error for t-Value"n));
dt5 << New Column( "one tail p-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 4), Formula(1 - t Distribution (:"t-stat"n,:"N(Data) VPP"n + :"N(Data) Commercial"n - 2 )));
dt5 << New Column( "two tail p-value", Numeric, Continuous, Format( "Fixed Dec", 12, 4 ),Formula( :"one tail p-Value"n * 2 ));
Re : Calcul d'une p-value dans un scriptJe n'ai pas parcouru chaque équation en détail, alors vérifiez bien tout vous-même aussi. Mais cela dit, je n'ai retenu qu'une seule chose que vous voudrez probablement changer : la formule de la statistique t prend la valeur absolue de la différence de moyenne, ce qui signifie que votre statistique t sera toujours positive quand elle le devrait. être négatif chaque fois que la moyenne VPP est inférieure à la moyenne commerciale. J'ai utilisé la fonction Abs() dans mon exemple uniquement pour m'assurer que la valeur p serait calculée correctement quel que soit le signe de la statistique t. Vous voudrez probablement faire la même chose.
Re : Calcul d'une p-value dans un scriptMerci encore Ross, très apprécié
Re : Calcul d'une p-value dans un scriptMerci pour la solution.
Calculer une valeur p dans un scriptSalut tout le monde,
Je sais que je fais quelque chose de mal ici, mais je ne le vois pas pour le moment, je veux la valeur p bilatérale pour une différence entre deux moyennes et j'utilise le script suivant
dt5 << New Column(" t-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( t Quantile (0.95,:"N(Data) VPP"n + :"N(Data) Commercial"n -2)));
dt5 << New Column( "p-Value", Numeric, Continuous, Format( "Fixed Dec", 15, 3), Formula( t Distribution (:"T-Value"n,:"N(Data) VPP"n + :"N(Data) Commercial"n - 1 )));quelqu'un peut-il s'il vous plaît donner quelques conseils.
Merci,
Mick.
Automatisation et scriptsÉtudes de consommation et de marchéRe : Calculer une valeur p dans un scriptVous n'avez pas besoin de prendre la valeur absolue de la différence de moyenne lors du calcul de la statistique t. La valeur absolue n’est pas utilisée dans les calculs du test t standard car elle perdrait des informations sur la direction de la différence, ce qui est important pour l’interprétation des résultats. Si la moyenne du premier groupe est inférieure à la moyenne du deuxième groupe, la statistique t sera naturellement négative, ce qui est correctement reflété dans le calcul sans utiliser la valeur absolue.