Randomization t-test 2-samples 코드 정확성 검증

조회 수: 2 (최근 30일)
BYUNGSUK KIM
BYUNGSUK KIM 2019년 11월 26일
답변: Kilsu Kim 2019년 12월 13일
안녕하세요.
Randomization t-test (2-samples)에 대한 코드를 만들었는데,
최종 p값이 모든 행 데이터에 1로 나옵니다.
아래 코드와 첨부된 데이터가 올바른지 검토 부탁 드립니다.
감사합니다.
<코드>
eA= y- yhatA;
eB= y- yhatB;
diff=eA.^2-eB.^2;
meandiff=mean(diff);
n=length(diff);
niter = 199
sum= 0;
for k = 1: niter
randomsign=2*round(rand(l,n))-1;
signeddiff =randomsign. *diff;
meansigneddiff=mean(signeddiff);
sum=sum+...
(abs(meansigneddiff)>
=abs(meandiff));
end
pvalue=(sum+1)/(niter+1)

답변 (1개)

Kilsu Kim
Kilsu Kim 2019년 12월 13일
정확한 알고리즘에 대해서 알 수는 없지만
10번째 코드 라인이 실행 될 때 행렬의 크기가 50*50으로 변합니다. 개인적으로 이는 아마도 예상된 결과가 아닐 것이라고 생각됩니다.
signeddiff =randomsign. *diff;
이는 변수 "diff"의 행렬 크기는 1*50인데 반해 "randomsign"의 크기는 50*1인 것인 원인으로 보입니다. 따라서 행렬을 transition 하기 위한 기호 " ' "를 "randomsign" 뒤에 붙여보십시오.
signeddiff =randomsign'. *diff;
위처럼 바꾸어 실행한 경우, "pvalue"는 0.005라는 값을 가지는 것을 볼 수 있습니다.

카테고리

Help CenterFile Exchange에서 수학에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!