Re: スクリプトで p 値を計算するここにいくつかのことがあります:
- スクリプトは、に基づいて p 値を計算しています。致命的の代わりに t 値 (最初の行で計算)観測されたt値。 後者は平均値の差を差の標準誤差で割ったものです。
- t Distribution() 呼び出しは、探している p 値ではない t 値より小さい分布の割合を計算しています。 両側 p 値を計算するには、ここから簡単な計算が必要です (例を参照)。
データ テーブルの列に少なくともグループごとのサンプル サイズ、平均値、標準偏差が含まれていると想定できる場合は、必要な処理を行う JSL を次に示します。 添付の例の表で試してみてください。 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: スクリプトで p 値を計算するこんにちはロスさん
お返事ありがとうございます こちらはいかがでしょうか
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: スクリプトで p 値を計算する各方程式を詳しく調べたわけではないので、自分でもすべてを再確認してください. しかし、そうは言っても、私はあなたがおそらく変更したいと思うことを1つだけ見つけました.t統計量の式は、平均の差の絶対値を取ります。つまり、t統計量は、必要なときに常に正になります. VPP 平均がコマーシャル平均よりも低い場合は常に負になります。 この例で Abs() 関数を使用したのは、t 統計量の符号に関係なく p 値が正しく計算されるようにするためだけです。 あなたもおそらく同じことをしたいと思うでしょう。
Re: スクリプトで p 値を計算するロス、どうもありがとう
Re: スクリプトで p 値を計算する解決策をありがとう。
スクリプトでの p 値の計算こんにちは、みんな、
ここで何か間違ったことをしていることはわかっていますが、現時点ではそれがわかりません。2つの平均の差の両側p値が必要で、次のスクリプトを使用しています
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 )));誰かアドバイスをください。
ありがとう、
ミック。
自動化とスクリプト作成消費者および市場調査Re: スクリプトでの p 値の計算t 統計量を計算するときに、平均の差の絶対値を取得する必要はありません。 絶対値は、結果の解釈に重要な差の方向に関する情報が失われるため、標準的な t 検定の計算では使用されません。 最初のグループの平均が 2 番目のグループの平均よりも低い場合、t 統計量は当然負になり、これは絶対値を使用せずに計算に正しく反映されます。