24小时热门版块排行榜    

查看: 301  |  回复: 0

wangjiehao

新虫 (初入文坛)

[交流] 【求助】求一统计方面的MATLAB高手帮我解决,谢谢,急

求一统计方面的MATLAB高手帮我解决,谢谢,急
function  fdr=rand01();
%向量a,b,为随机数构成 的向量
%向量 c,为a和b的组合,
%mark为一向量,标记c中的元素是a中的元素还是b中的元素
lvv=[];
lm=[];
t=[];
lvvb=[];
lmb=[];
tb=[];
newfdr=[];
BHfdr=[];
newpower=[];
BHpower=[];
sk=0;
N=500
for n1=100:100:N

q=0.05;   
m1=100;
m2=100;
n2=N-n1;

for l=1:1000

a=mean(normrnd(0,1,m1,n1));
p1=[];
for j=1:n1
    p1(j) =1-normcdf(a(1,j)*(sqrt(m1)),0,1);
end          %抽取真实原假设的样本,并计算P值

if n2 > 0   
   
b=mean(normrnd(1,1,m2,n2));
p2=[];
for k=1:n2
    p2(k) =1-normcdf(b(1,k)*(sqrt(m2)),0,1);
end                %抽取错误原假设的样本,并计算P值

c=[p1,p2];      
mark=[zeros(1,n1),ones(1,n2)];
for i=1n1+n2-1)
    for j=i+1n1+n2)
        if c(i)>c(j)
            t1=c(i);
            c(i)=c(j);
            c(j)=t1;
            t2=mark(i);
            mark(i)=mark(j);%排序
            mark(j)=t2;
        end
    end
end
r1=[];
for m=1n1+n2)
       r1(m)=m*q/(n1+n2);

end
s=n1+n2;
j1=0;
jj1=0;
while s>0 && c(s)> r1(s)      
    if mark(s)==0
        j1=j1+1;
    end
    if mark(s)==1
        jj1=jj1+1;
    end
       s=s-1;
end
totalb=s ;      %拒绝的总个数
ttb=n1-j1   ;   %错误拒绝的个数  
total2b=n2-jj1 ;  %正确拒绝的个数
tb(l)=total2b/n2 ;   %功效
if totalb == 0
    lvvb(l)=0;
else
    lvvb(l)=ttb/totalb ; %V/R
end  
end            %第一个while语句结束

if n2==0   
  r1=[];
   for m=1:n1
         r1(m)=m*q/(n1+n2);

   end
d=[p1];
c=sort(d);
ig=n1;
while ig>0 && c(ig)>r1(ig)
    ig=ig-1;
end
jg=0;
if ig>0
    jg=jg+1;
end
  lvvb(l)=jg ;         
  tb(l)=0;
end   %第二个if语句结束
end
sk=sk+1

newpower(sk)=mean(tb);
newfdr(sk)=mean(lvvb);

end
newpower
newfdr

x=[100:100:N];
subplot(2,1,1)
plot(x,newfdr,'-k');
axis ([0,N,0,0.1]);
legend('newfdr');
ylabel('FDR');xlabel('真实原假设个数');
grid on
subplot(2,1,2)                                          function  fdr=rand01();
%向量a,b,为随机数构成 的向量
%向量 c,为a和b的组合,
%mark为一向量,标记c中的元素是a中的元素还是b中的元素
lvv=[];
lm=[];
t=[];
lvvb=[];
lmb=[];
tb=[];
newfdr=[];
BHfdr=[];
newpower=[];
BHpower=[];
sk=0;
N=500
for n1=100:100:N

q=0.05;   
m1=100;
m2=100;
n2=N-n1;

for l=1:1000

a=mean(normrnd(0,1,m1,n1));
p1=[];
for j=1:n1
    p1(j) =1-normcdf(a(1,j)*(sqrt(m1)),0,1);
end          %抽取真实原假设的样本,并计算P值

if n2 > 0   
   
b=mean(normrnd(1,1,m2,n2));
p2=[];
for k=1:n2
    p2(k) =1-normcdf(b(1,k)*(sqrt(m2)),0,1);
end                %抽取错误原假设的样本,并计算P值

c=[p1,p2];      
mark=[zeros(1,n1),ones(1,n2)];
for i=1n1+n2-1)
    for j=i+1n1+n2)
        if c(i)>c(j)
            t1=c(i);
            c(i)=c(j);
            c(j)=t1;
            t2=mark(i);
            mark(i)=mark(j);%排序
            mark(j)=t2;
        end
    end
end
r1=[];
for m=1n1+n2)
       r1(m)=m*q/(n1+n2);

end
s=n1+n2;
j1=0;
jj1=0;
while s>0 && c(s)> r1(s)      
    if mark(s)==0
        j1=j1+1;
    end
    if mark(s)==1
        jj1=jj1+1;
    end
       s=s-1;
end
totalb=s ;      %拒绝的总个数
ttb=n1-j1   ;   %错误拒绝的个数  
total2b=n2-jj1 ;  %正确拒绝的个数
tb(l)=total2b/n2 ;   %功效
if totalb == 0
    lvvb(l)=0;
else
    lvvb(l)=ttb/totalb ; %V/R
end  
end            %第一个while语句结束

if n2==0   
  r1=[];
   for m=1:n1
         r1(m)=m*q/(n1+n2);

   end
d=[p1];
c=sort(d);
ig=n1;
while ig>0 && c(ig)>r1(ig)
    ig=ig-1;
end
jg=0;
if ig>0
    jg=jg+1;
end
  lvvb(l)=jg ;         
  tb(l)=0;
end   %第二个if语句结束
end
sk=sk+1

newpower(sk)=mean(tb);
newfdr(sk)=mean(lvvb);

end
newpower
newfdr

x=[100:100:N];
subplot(2,1,1)
plot(x,newfdr,'-k');
axis ([0,N,0,0.1]);
legend('newfdr');
ylabel('FDR');xlabel('真实原假设个数');
grid on
subplot(2,1,2)                                         
plot(x,newpower,'-k');
axis ([0,N,0,1]);
legend('newpower');
ylabel('功效');xlabel('真实原假设个数');
grid on     
上面这个程序是多重假设检验的内容,希望有高手帮我看看这个程序有没有问题,我总觉得不对劲

多重假设检验中,真实原假设服从N(0,1),错误原假设服从N(1,1),检验的总个数是N=500,所以随机抽取了500组数,其中有n1组来自N(0,1),n2组来自N(1,1),取每组的均值计算的P值,样本量是100,谢谢帮我看看,
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangjiehao 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 17:01 by BCdvBAEpt3zm
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 16:58 by BCdvBAEpt3zm
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 1uaZt2kAZj2S 2026-10-31 8/400 2026-11-01 16:58 by BCdvBAEpt3zm
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-30 13/650 2026-11-01 16:48 by BCdvBAEpt3zm
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-30 14/700 2026-11-01 16:45 by BCdvBAEpt3zm
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +6 X5bHxOULxFqb 2026-10-30 22/1100 2026-11-01 16:35 by BCdvBAEpt3zm
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 hKe7U1kad5Sg 2026-10-31 6/300 2026-11-01 15:04 by BCdvBAEpt3zm
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 xvJS1BYDxvBS 2026-10-31 7/350 2026-11-01 14:50 by BCdvBAEpt3zm
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 1uaZt2kAZj2S 2026-10-30 13/650 2026-11-01 14:37 by BCdvBAEpt3zm
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 xvJS1BYDxvBS 2026-10-31 5/250 2026-11-01 12:51 by BCdvBAEpt3zm
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 12:40 by BCdvBAEpt3zm
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-30 13/650 2026-11-01 12:14 by BCdvBAEpt3zm
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-30 16/800 2026-11-01 12:14 by BCdvBAEpt3zm
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 X5bHxOULxFqb 2026-10-30 15/750 2026-11-01 12:11 by BCdvBAEpt3zm
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 hKe7U1kad5Sg 2026-10-31 5/250 2026-11-01 11:14 by BCdvBAEpt3zm
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 xvJS1BYDxvBS 2026-10-31 4/200 2026-11-01 11:01 by BCdvBAEpt3zm
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 14/700 2026-11-01 10:43 by BCdvBAEpt3zm
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 1uaZt2kAZj2S 2026-10-30 16/800 2026-11-01 10:27 by BCdvBAEpt3zm
[考博] 2027博士申请-临床检验诊断学、病原生物学、微生物方向 50+3 yyh@ 2026-10-28 4/200 2026-10-31 12:47 by 可淡不可忘
[硕博家园] 申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请 +3 小小阿光 2026-10-27 3/150 2026-10-29 23:56 by 起风了的快乐
信息提示
请填处理意见