楼主: fengqing
2713 0

请问如何在此code中加入命令显示t-test的P-value? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

41%

还不是VIP/贵宾

-

威望
0
论坛币
57 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
690 点
帖子
31
精华
0
在线时间
296 小时
注册时间
2006-2-27
最后登录
2019-10-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,code如下,如何加入命令显示T-test的显著性水平P-value呢?
/*      PROGRAM TRIPLES

C*****************************************************************************
C    THIS PROGRAM TAKES DATA FROM C:\DATA.DAT AND CONDUCTS THE TRIPLES
C    ASYMMETRY TEST ON IT
C    THIS TEST IS DESCRIBED IN RANDLES, FLIGNER, POLICELLO AND WOLFE
C    'AN ASYMPTOTICALLY DISTRIBUTION-FREE TEST FOR SYMMETRY VS. ASYMMETRY'
C    JASA 75 (MARCH 1980) 168-172
C
C    IMPORTANT NOTES:
C    1) AN ATTEMPTED PORT OF THIS PROGRAM TO A WORKSTATION
C            FAILED FOR UNKNOWN REASONS.
C    2) TO TEST WHETHER THE CODE IS WORKING PROPERLY, ENTER THE FOLLOWING
C            NUMBERS IN THE FILE C:\DATA.DAT: (This example is taken from R. Verbrugge)
C                       2.373
C                       3.339
C                       1.980
C                       3.102
C                       0.000
C                       3.335
C            OUTPUT OF THE TEST SHOULD BE:
C               ETA = -.23333
C               VARIANCE = .013333
C               TEST STATISTIC = -2.0207
C
C    THE NULL OF THE TEST IS A SYMMETRIC DISTRIBUTION
C    THIS TEST CANNOT DETECT ASYMMETRIC DISTRIBUTIONS WITH MEDIAN=MEAN
C    THE TEST REQUIRES A MINIMUM OF 5 DATA POINTS
C
C    ETA IS THE ESTIMATED VARIABLE
C    VARIANCE IS ITS ESTIMATED VARIANCE (I ALREADY DIVIDE BY N)
C    N = NUMBER OF OBSERVATIONS
C    TEST STATISTIC IS ETA/SQRT(VARIANCE), WHICH IS ASYMPTOTICALLY STD. N
C
C    FSTAR IS A FUNCTION THAT CALCULATES FSTAR(X(I),X(J),X(K))
C        ARGUMENTS I,J,K
C    FX1I IS A FUNCTION THAT CALCULATES FSTAR(1)(X(I))
C        ARGUMENTS: I
C    FX2IJ IS A FUNCTION THAT CALCULATES FSTAR(2)(X(I),X(J))
C        ARGUMENTS: I,J
C
C    IF YOUR DATA SET IS LARGER THAN 600, NEED TO CHANGE MAXN IN PARAMETER
C    STATEMENT BELOW AND IN ALL 3 FUNCTIONS
C*****************************************************************************
*/
      proc fstar; retp(""); endp;
      proc fx1i; retp(""); endp;
      proc fx2ij; retp(""); endp;

      let x =  2.373 3.339  1.980  3.102 0.000 3.335;
LOAD x[]=c:\data.dat;
      n = rows(x);

@     INITIALIZE, DO COMBINATORIAL CALCULATIONS @

      " n " n; @call keyw;@
      HALFN=INT(N/2.0);
      NN=n;
      NNMIN2=NN-2.0;
      NNCHUS3=(NN*(NN-1.0)*(NN-2.0))/6.0;
      NNCHUS2=(NN*(NN-1.0))/2.0;
      NNMIN1C2=((NN-1.0)*(NN-2.0))/2.0;
      "nnmin1c2 " nnmin1c2; @call keyw;@


@     CALCULATE ETA @

      ETA=0.0;
      for i(1,n-2,1);
        for j(i+1,n-1,1);
          for k(j+1,n,1);
            ii = i; jj=j; kk=k;
            ETA=ETA+FSTAR(ii,jj,kk);
          endfor;
        endfor;
      endfor;

      ETA=ETA/NNCHUS3;
      "eta " eta; @call keyw;@

@     CALCULATE KSI1@

      KSI1=0.0;
      for i(1,N,1);
         TEMP=FX1I(I);
         TEMP2=(TEMP-ETA)*(TEMP-ETA);
         KSI1=KSI1+TEMP2;
      endfor;
      KSI1=KSI1/NN;
      
      "Ksi1 " ksi1; @call keyw;@

@     CALCULATE KSI2@

      KSI2=0.0;
      for i(1,n-1,1);
        for j(i+1,n,1);
         ii = i; jj = j;
         TEMP=FX2IJ(ii,jj);
         TEMP2=(TEMP-ETA)*(TEMP-ETA);
         KSI2=KSI2+TEMP2;
        endfor;
      endfor;
      KSI2=KSI2/NNCHUS2;
      "Ksi2 " ksi2; @call keyw;@

@     CALCULATE KSI3@

      KSI3=(1.0/9.0)-(ETA*ETA);
      "Ksi3 " ksi3; @call keyw;@

@     CALCULATE VARIANCE@

      VARIANCE=KSI1*3.0*(NN-3.0)*(NN-4.0)/2.0;
      VARIANCE=VARIANCE+(KSI2*3.0*(NN-3.0))+KSI3;
      VARIANCE=VARIANCE/NNCHUS3;
      "Variance " VARIANCE;  @call keyw;@

@     CALCULATE TEST STATISTIC (WHICH IS STD. N)@

      IF (VARIANCE .NE 0.0);
          STAT=ETA/SQRT(VARIANCE);
      ELSE;
          STAT = 999999;
          "TEST IS CLAIMING 0 VARIANCE";
          end;
      ENDIF;
      " stat ";; stat;


/*     **************************************************************/

      proc FSTAR(I,J,K);

      local t1, t2, t3, t4, tmp;
      
      T1=X[I]+X[J]-2.0*X[K];
      T2=X[I]+X[K]-2.0*X[J];
      T3=X[K]+X[J]-2.0*X[I];
      T4=T1*T2*T3;

      IF (T4 .EQ 0.0);
        TMP = 0.0;
      ELSE;
        T1=-1 + 2*(t1 .ge 0);
        T2=-1 + 2*(t2 .ge 0);
        T3=-1 + 2*(t3 .ge 0);
        TMP=(T1+T2+T3)/3.0;
      ENDIF;
      retp(tmp);
endp;


/*     **************************************************************/

      proc FX1I(I);
      
      local t1,j,tmp, ii,jj,kk;  
      T1=0.0;
      for j(1,I-2,1);
        for K(j+1,I-1,1);
            ii = i; jj = j; kk=k;
            T1=T1+FSTAR(jj,kk,ii);
        endfor;
      endfor;

      for j(1,I-1,1);
         for k(I+1,N,1);
             ii = i; jj = j; kk=k;
            T1=T1+FSTAR(jj,ii,kk);
         endfor;
      endfor;           

      for j(I+1,N-1,1);
        for k(J+1,N,1);
            ii = i; jj = j; kk=k;
            T1=T1+FSTAR(ii,jj,kk);
        endfor;           
      endfor;

      retp(T1/NNMIN1C2);
endp;


/*   **************************************************************/

      proc FX2IJ(I,J);
      local ii,jj, t1,k, si,sj,sk;
      II=I;
      JJ=J;
      IF(I .GT J);
         II=J;
         JJ=I;
      ENDIF;

      T1=0.0;
      for k(1,II-1,1);
         sk = k;
         T1=T1+FSTAR(sk,II,JJ);
      endfor;
      for k(II+1,JJ-1,1);
         sk = k;
         T1=T1+FSTAR(II,sk,JJ);
      endfor;
      for k(JJ+1,N,1);
         sk = k;
         T1=T1+FSTAR(II,JJ,sk);
      endfor;

      retp(T1/NNMIN2);
endp;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:p-value T-test value test code 命令 code

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 18:59