'p値を用いたステップワイズ(プロビットモデルの場合) 'その1 '一番大きなp値を持つ変数を見つけるプログラムです。 '次回、その2で変数を取り除いたうえで、閾値以下に 'なる変数だけを残すStepwiseに拡張します。 'OLSはEViewsにステップワイズが既に内蔵されております。 'ここから--------------------------------------- '推定したオブジェクト名を%eqnameとします。 'ここでは例としてプロビットモデルのeq01を利用します。 %eqname="eq01" 'p値は直接データメンバとして用意されていませんので、 'z値と累積分布関数から計算し、p値をシリーズcheckpに 'コピーします。ただし、定数項のp値は操作の対象外とします。 !num=0 !noc={%eqname}.@ncoef series checkp checkp=na for !i=2 to !noc 'z値の符号によって計算式が異なるので、z値は絶対値を 'とります。 !z=@abs({%eqname}.@tstats(!i)) !p=(1-@cnorm(!z))*2 checkp(!i-1)=!p next 'これで推定式からp値を取り出して、計算用のcheckpという 'シリーズの準備ができました。 '次に一番大きなp値を持つ変数を求めます。 !max=checkp(1) for !j=1 to !noc-1 if checkp(!j+1)>!max then !max=checkp(!j+1) !num=!j+2 else endif next '最後に一番大きなp値を持つ変数の番号を表示します。 'この番号は定数項をカウントしたものとします。 show !num !max