/*
  zip

*!  VERSION 1.2.6  23aug2010

  keyword:  eclass

*/

VERSION 12.0

INCLUDE _std_large
DEFINE _dlght 360
INCLUDE header

HELP hlp1, view("help zip")
RESET res1

SCRIPT PREINIT
BEGIN
	script se_createAsSvyJknifeBstrapML
	program svy_check_title
END

SCRIPT POSTINIT
BEGIN
	script sub_set_by_on
	program se_setFinalInitState
END

SCRIPT svy_is_on
BEGIN
	rpt.gb_tests.disable
	rpt.ck_vuong.disable
	script max_setDefaultNoLog
END
SCRIPT svy_is_off
BEGIN
	rpt.gb_tests.enable
	rpt.ck_vuong.enable
	script max_setDefaultLog
END
PROGRAM svy_check_title
BEGIN
	if __MESSAGE.contains("-svy-") {
		call settitle "svy: zip - Zero-inflated Poisson regression for survey data"
	}
END

DIALOG main, tabtitle("Model")						///
	/// **** has svy title ****					///
	title("zip - Zero-inflated Poisson regression") 
BEGIN
  TEXT tx_dv 		_lft	_top	_vnwd	.,			///
	label("Dependent variable:")
  VARNAME vn_dv		@ 	_ss	@	.,			///
	label("Dependent variable")

  TEXT tx_iv		_vlx	_top	160	.,			///
	label("Independent variables:")
  VARLIST vl_iv		@	_ss	_vlwd	.,			///
	fv								///
	allowcat							///
	label("Independent variables")

  CHECKBOX ck_nocons @         _ms       @         .,			/*
		*/ label("Suppress constant term")			/*
		*/ option("noconstant")					/*
		*/
  RADIO    rb_inflate  _lft        _ls       _vnwd        .,		/*
  		*/ label("Inflation variables:")			/*
  		*/ onclickon(script consoff)				/*
  		*/ first default(1)
  RADIO    rb_cons     _vlx     @       _vlwd        .,			/*
  		*/ label("Constant inflation")				/*
  		*/ onclickon(script conson)				/*
  		*/ option(_cons)					/*
  		*/ last
  VARLIST  vl_inflate  _lft        _ss       _iwd       .,		/*
		*/ label("Inflation variables")				/*
		*/ allowcat fv						/*
		*/

  GROUPBOX gb_opt    _lft      _ls       _iwd      _ht18,		/*
		*/ label("Options")					/*
		*/
  RADIO    rb_expose _ilft     _ss       _cwd3_2   .,			/*
		*/ label("Exposure variable:")				/*
		*/ first						/*
		*/ clickon("script expose")				/*
		*/
  RADIO    rb_offset _lft3_2   @         @         .,			/*
		*/ label("Offset variable:")				/*
		*/ last							/*
		*/ clickon("script offset")				/*
		*/

  VARNAME  vn_expose _ilft     _ss       @         .,			/*
		*/ label("Exposure variable")				/*
		*/ option("exposure")					/*
		*/
  VARNAME  vn_offset _lft3_2   @         @         .,			/*
		*/ label("Offset variable")				/*
		*/ option("offset")					/*
		*/

  TEXT     tx_infoff _ilft     _ls       _cwd3_2     .,			/*
		*/ label("Inflation offset variable:")			/*
		*/
DEFINE y @y
  VARNAME  vn_infoff @         _ss       _cwd3_2     .,			/*
		*/ label("Inflation offset variable")			/*
		*/ option("offset")

  DEFINE _x _lft3_2
  DEFINE _y y
  DEFINE _cx 170
  DEFINE _bux +175
  INCLUDE _constraints

  DEFINE _x _ilft
  DEFINE _xw _ibwd
  INCLUDE _ck_collinear

  GROUPBOX gb_zero   _ilft     _ls       _ibwd     _ht2,		/*
  		*/ label("Model for characterizing zeros")
  RADIO    rb_logit  _indent   _ss       _cwd3     .,			/*
		*/ label("logit")					/*
		*/ option("NONE")					/*
		*/ first						/*
		*/
  RADIO    rb_probit _lft2     @         @         .,			/*
		*/ label("probit")					/*
		*/ option("probit")					/*
		*/ last							/*
		*/
END

INCLUDE _constraints_sc 

SCRIPT conson
BEGIN
	main.vl_inflate.disable
	main.vn_infoff.disable
END

SCRIPT consoff
BEGIN
	main.vl_inflate.enable
	main.vn_infoff.enable
END

SCRIPT expose
BEGIN
	main.vn_expose.enable
	main.vn_offset.disable
END

SCRIPT offset
BEGIN
	main.vn_expose.disable
	main.vn_offset.enable
END

INCLUDE sub_by_ifin_over_subpop
INCLUDE weights_fpi
INCLUDE se

SCRIPT rpt_POSTINIT
BEGIN
	create STRING rpt_bu_fmtcoefResults
	program rpt_bu_fmtcoef_ckResults
END

DIALOG rpt, tabtitle("Reporting")
BEGIN
  DEFINE _x _lft
  DEFINE _cx _spr2b
  DEFINE _y _top
  INCLUDE _sp_level

  RADIO    rb_default _lft     _ls       _cwd1     .,			/*
  		*/ label("Report coefficients (default)") 		/*
  		*/ first
  DEFINE holdy @y
  RADIO    rb_irr     @        _ss       @         .,			/*
		*/ label("Report incidence-rate ratios")		/*
		*/ option("irr") 					/*
		*/ last

  GROUPBOX gb_tests  _lft2      -30      _cwd1     _ht2,		/*
  		*/ label("Additional test statistics")
  CHECKBOX ck_vuong  _indent     _ss       _inwd     .,			/*
		*/ label("Perform Vuong test")				/*
		*/ option("vuong")					/*
		*/

  DEFINE _x _lft
  DEFINE _y _xls
  DEFINE _cx _iwd
  INCLUDE _nocnsreport

  DEFINE _x _lft
  DEFINE _y _ms
  DEFINE _cx _iwd
  INCLUDE _noomitted

  DEFINE _x _lft
  DEFINE _y _ms
  DEFINE _cx _iwd
  INCLUDE _vsquish

  DEFINE _x _lft
  DEFINE _y _ms
  DEFINE _cx _iwd
  INCLUDE _factor_vars_reporting

  DEFINE _x _lft
  DEFINE _y _xxxls
  INCLUDE _bu_coef_table_reporting
END

INCLUDE fmt_coef_table_reporting_pr

PROGRAM rpt_output
BEGIN
	optionarg /hidedefault rpt.sp_level
	option rpt.rb_irr
	option rpt.ck_vuong
	INCLUDE _nocnsreport_pr
	INCLUDE _noomitted_pr
	INCLUDE _vsquish_pr
	INCLUDE _factor_vars_reporting_pr
	put " " rpt_bu_fmtcoefResults
END

INCLUDE max_ml

PROGRAM subcommand
BEGIN
	option main.rb_cons
	require main.vl_inflate
	put main.vl_inflate
	beginoptions
		optionarg main.vn_infoff
	endoptions
END

PROGRAM command
BEGIN
	put /program by_output " "
	put /program se_prefix_output " "
	put "zip "
	varlist main.vn_dv [main.vl_iv]
	if !main.vl_iv & main.ck_nocons {
	  stopbox stop `""Suppress constant term" is selected without independent variables."'
	}
	put " " /program ifin_output
	put " " /program weights_output
	beginoptions
		option main.ck_nocons
		put "inflate("
		put /program subcommand
		put ") "
		optionarg main.vn_expose
		optionarg main.vn_offset
		INCLUDE _constraints_main_pr
		option main.ck_collinear
		option radio(main rb_logit rb_probit)
		put " " /program se_output
		put " " /program rpt_output
		put " " /program max_output
	endoptions
END
