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

2 Ansichten (letzte 30 Tage)
BYUNGSUK KIM
BYUNGSUK KIM am 26 Nov. 2019
Beantwortet: Kilsu Kim am 13 Dez. 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)

Antworten (1)

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

Kategorien

Mehr zu 수학 finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!