24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 250  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 复试调剂 +3 raojunqi0129 2026-03-28 3/150 2026-03-28 15:27 by 落睿可思
[考研] 本科双非材料,跨考一志愿华电085801电气,283求调剂,任何专业都可以 +5 芝士雪baoo 2026-03-28 6/300 2026-03-28 15:25 by 1018329917
[考研] 317分 一志愿南理工材料工程 本科湖工大 求调剂 +6 芋泥小铃铛 2026-03-28 6/300 2026-03-28 14:15 by Ainin_
[考研] 求调剂 +6 争取九点睡 2026-03-28 6/300 2026-03-28 14:14 by Ainin_
[考研] 291求调剂 +15 hhhhxn.. 2026-03-23 21/1050 2026-03-28 11:26 by self2008
[考研] 085405 考的11408求各位老师带走 +3 Qiu学ing 2026-03-28 3/150 2026-03-28 09:19 by 乐呵呵的追梦人
[考研] 材料求调剂 一志愿哈工大总分298分,前三科223分 +5 dongfang59 2026-03-27 5/250 2026-03-28 04:53 by wxiongid
[考研] 085600,材料与化工321分,求调剂 +9 大馋小子 2026-03-27 9/450 2026-03-27 14:30 by mmm just
[考研] 考研调剂 +10 呼呼?~+123456 2026-03-24 10/500 2026-03-27 11:46 by wangjy2002
[考研] 333求调剂 +3 question挽风 2026-03-23 3/150 2026-03-27 11:29 by 不吃魚的貓
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
[考研] 求调剂,一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +4 @taotao 2026-03-26 5/250 2026-03-27 08:10 by hypershenger
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-26 4/200 2026-03-27 08:04 by chemisry
[考研] 352求调剂 +4 大米饭! 2026-03-22 4/200 2026-03-26 16:40 by 不吃魚的貓
[考研] 机械学硕310分,数一英一,一志愿211本科双非找调剂信息 +3 @357 2026-03-25 3/150 2026-03-26 16:34 by by.MENG
[考研] 一志愿天津大学339材料与化工求调剂 +3 江往卖鱼 2026-03-26 3/150 2026-03-26 09:42 by 王小欠i
[考研] 生物技术与工程 +3 1294608413 2026-03-25 4/200 2026-03-25 18:02 by 1294608413
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[考研] 085404电子信息284分求调剂 +4 13659058978 2026-03-24 4/200 2026-03-24 12:15 by syl20081243
[考研] 一志愿北京化工大学070300 学硕336求调剂 +5 vv迷 2026-03-21 8/400 2026-03-22 14:20 by ColorlessPI
信息提示
请填处理意见