Randomization t-test 2-samples 코드 정확성 검증
3 views (last 30 days)
Show older comments
안녕하세요.
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)
0 Comments
Answers (1)
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라는 값을 가지는 것을 볼 수 있습니다.
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices 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!