'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