필터 지우기
필터 지우기

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

조회 수: 3 (최근 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에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!