Re: 스크립트에서 p-값 계산여기에 몇 가지 사항이 있습니다.
- 스크립트는 다음을 기반으로 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
)
);
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-값 계산나는 각 방정식을 자세히 다루지 않았으므로 모든 것을 직접 다시 확인하십시오. 그러나 그렇게 말하면 아마도 변경하고 싶은 한 가지만 잡았습니다. t-통계의 공식은 평균 차이의 절대값을 취합니다. VPP 평균이 상업 평균보다 낮을 때마다 음수입니다. 내 예에서는 Abs() 함수를 사용하여 t-통계량의 부호에 관계없이 p-값이 올바르게 계산되도록 했습니다. 당신도 아마 같은 일을 하고 싶을 것입니다.
Re: 스크립트에서 p-값 계산다시 한 번 Ross에게 감사드립니다. 대단히 감사합니다.
Re: 스크립트에서 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 )));누구든지 조언을 해줄 수 있습니까?
감사해요,
믹.
자동화 및 스크립팅소비자 및 시장 조사Re: 스크립트에서 p-값 계산t-통계량을 계산할 때 평균 차이의 절대값을 취할 필요는 없습니다. 절대값은 결과 해석에 중요한 차이의 방향에 대한 정보를 잃어버리기 때문에 표준 t-검정 계산에서는 사용되지 않습니다. 첫 번째 그룹의 평균이 두 번째 그룹의 평균보다 낮으면 t-통계량은 당연히 음수가 되며, 이는 절대값을 사용하지 않고 계산에 올바르게 반영됩니다.