回复:計算腳本中的 p 值這裡有幾件事:
- 該腳本正在根據批判的t 值(在第一行計算)而不是觀察到的t 值。 後者是均值差除以差值的標準誤差。
- t Distribution() 調用正在計算小於 t 值的分佈比例,這不是您要查找的 p 值。 計算雙尾 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
)
);
回复:計算腳本中的 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 ));
回复:計算腳本中的 p 值我還沒有詳細了解每個方程式,所以一定要自己仔細檢查所有內容。 但話雖如此,我只發現一件事你可能想要改變:t 統計量的公式採用均值差異的絕對值,這意味著你的 t 統計量在它應該出現的時候總是會出現正值任何時候 VPP 均值低於商業均值時為負。 我在示例中使用 Abs() 函數只是為了確保無論 t 統計量的符號如何都能正確計算 p 值。 您可能也想這樣做。
回复:計算腳本中的 p 值再次感謝羅斯,非常感謝
回复:計算腳本中的 p 值感謝您的解決方案。
在腳本中計算 p 值大家好,
我知道我在這裡做錯了什麼,但我現在看不到它,我想要雙尾 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 )));誰能提供一些建議。
謝謝,
米克.
自動化和腳本編寫消費者與市場研究回覆:在腳本中計算 p 值計算 t 統計量時,無須取平均差的絕對值。 標準 t 檢定計算中不使用絕對值,因為它會失去有關差異方向的信息,而這對於結果的解釋很重要。 如果第一組的平均值低於第二組的平均值,t統計量自然會為負,並且這在不使用絕對值的計算中得到了正確的反映。