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

2 views (last 30 days)
BYUNGSUK KIM
BYUNGSUK KIM on 26 Nov 2019
Answered: Kilsu Kim on 13 Dec 2019
안녕하세요.
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)

Answers (1)

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

Categories

Find more on 수학 in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!