You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
6.4 KiB
Plaintext
235 lines
6.4 KiB
Plaintext
7 months ago
|
* spex - version 1.3.1 - fix rologit case2alt bug 25Oct2005
|
||
|
* spex - version 1.3.0 - add asmprobit 08Sep2005
|
||
|
* spex - version 1.2.10 - case2alt modification 11Jul2005
|
||
|
* spex - version 1.2.9 - case2alt 11jul2005
|
||
|
* spex - version 1.2.8 - change directory for spex_data 11Jul2005
|
||
|
* spex - version 1.2.7 - revise misschk 06Jul2005
|
||
|
|
||
|
capture program drop spex
|
||
|
program define spex
|
||
|
|
||
|
** USERS: TO HAVE SPEX SEARCH SOMEWHERE OTHER THAN YOUR WORKING DIRECTORY
|
||
|
** FOR DATA, ENTER THE PATH IN THE QUOTES BELOW (WINDOWS: USE / AS SEPARATOR)
|
||
|
* local userpath "C:/~ToSync/~Projects/stata/spostdata/" // example
|
||
|
|
||
|
local userpath ""
|
||
|
|
||
|
syntax namelist(id="dataset or command") [, Web User Jsl *]
|
||
|
|
||
|
tokenize "`namelist'"
|
||
|
|
||
|
* unabbreviate command
|
||
|
capture _optname , `1'
|
||
|
local cmddta = r(opt)
|
||
|
|
||
|
if "`cmddta'"=="." {
|
||
|
local cmddta = "`1'"
|
||
|
}
|
||
|
|
||
|
local default = "web"
|
||
|
*local default = "jsl"
|
||
|
|
||
|
** SET DIRECTORY WHERE DATA IS STORED
|
||
|
|
||
|
if "`web'" == "web" | ///
|
||
|
("`jsl'"== "" & "`user'" == "" & "`default'" == "web") {
|
||
|
|
||
|
* local where "http://www.stata-press.com/data/lfr/"
|
||
|
|
||
|
local where "http://www.indiana.edu/~jslsoc/stata/spex_data/"
|
||
|
|
||
|
}
|
||
|
|
||
|
if "`user'" == "user" | ///
|
||
|
("`jsl'"== "" & "`web'" == "" & "`default'" == "user") {
|
||
|
|
||
|
local where "`userpath'"
|
||
|
|
||
|
}
|
||
|
|
||
|
if "`jsl'" == "jsl" | ///
|
||
|
("`user'"== "" & "`web'" == "" & "`default'" == "jsl") {
|
||
|
|
||
|
local where "c:\spostdata/"
|
||
|
|
||
|
}
|
||
|
|
||
|
** SPECIFY SYNTAX OF MODEL IF MODEL IS SPECIFIED
|
||
|
|
||
|
if "`cmddta'" == "asmprobit" {
|
||
|
local data travel2
|
||
|
local cmd "asmprobit choice time invc, case(id) alternatives(mode) `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "clogit" {
|
||
|
local data travel2
|
||
|
local cmd "clogit choice train bus time invc, group(id) `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "cloglog" {
|
||
|
local data binlfp2
|
||
|
local cmd "cloglog lfp k5 k618 age wc hc lwg inc, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "cnreg" {
|
||
|
local data nels_censored2
|
||
|
local cmd "cnreg testscor bymomed bydaded black hispanic, censored(censor) `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "intreg" {
|
||
|
local data nels_censored2
|
||
|
local cmd "intreg minscor maxscor bymomed bydaded black hispanic, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "logit" {
|
||
|
local data binlfp2
|
||
|
local cmd "logit lfp k5 k618 age wc hc lwg inc, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "misschk" {
|
||
|
local data gsskidvalue2
|
||
|
*local cmd "misschk year-income91, help"
|
||
|
local cmd ///
|
||
|
"misschk age anykids black degree female kidvalue othrrace year income91 income, help gen(m_) dummy"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "mlogit" {
|
||
|
local data nomocc2
|
||
|
local cmd "mlogit occ white ed exper, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "mprobit" {
|
||
|
local data nomocc2
|
||
|
local cmd "mprobit occ white ed exper, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "nbreg" {
|
||
|
local data couart2
|
||
|
local cmd "nbreg art fem mar kid5 phd ment, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "ologit" {
|
||
|
local data ordwarm2
|
||
|
local cmd "ologit warm yr89 male white age ed prst, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "oprobit" {
|
||
|
local data ordwarm2
|
||
|
local cmd "oprobit warm yr89 male white age ed prst, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "poisson" {
|
||
|
local data couart2
|
||
|
local cmd "poisson art fem mar kid5 phd ment, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "probit" {
|
||
|
local data binlfp2
|
||
|
local cmd "probit lfp k5 k618 age wc hc lwg inc, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "regress" | "`cmddta'" == "reg" {
|
||
|
local data regjob2
|
||
|
local cmd "regress job fem phd ment fel art cit, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "rologit" {
|
||
|
local data wlsrnk
|
||
|
local precmd1 `"label variable value1 "est""'
|
||
|
local precmd2 `"label variable value2 "var""'
|
||
|
local precmd3 `"label variable value3 "aut""'
|
||
|
local precmd4 `"label variable value4 "sec""'
|
||
|
local precmd5 "case2alt, yrank(value) case(id) alt(hashi haslo) casevars(fem hn) gen(rank)"
|
||
|
local cmd "rologit rank est* var* aut* hashi haslo, group(id) reverse"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "slogit" {
|
||
|
local data ordwarm2
|
||
|
local cmd "slogit warm yr89 male white age ed prst, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "tobit" {
|
||
|
local data tobjob2
|
||
|
local cmd "tobit jobcen fem phd ment fel art cit, ll(1)"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "zinb" {
|
||
|
local data couart2
|
||
|
local cmd "zinb art fem mar kid5 phd ment, inf(fem mar kid5 phd ment) `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "zip" {
|
||
|
local data couart2
|
||
|
local cmd "zip art fem mar kid5 phd ment, inf(fem mar kid5 phd ment) `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "ztnb" {
|
||
|
local data couart2
|
||
|
local cmd "ztnb art fem mar kid5 phd ment if art > 0, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmddta'" == "ztp" {
|
||
|
local data couart2
|
||
|
local cmd "ztp art fem mar kid5 phd ment if art > 0, `options'"
|
||
|
}
|
||
|
|
||
|
if "`cmd'" == "" {
|
||
|
local data "`cmddta'"
|
||
|
}
|
||
|
|
||
|
** LOAD DATAFILE
|
||
|
|
||
|
di _n in white `". use "`where'`data'.dta", clear"'
|
||
|
capture use "`where'`data'", clear
|
||
|
|
||
|
if _rc != 0 {
|
||
|
di _n in green "(trying alternate location for file)"
|
||
|
di _n in white `". sysuse "`data'.dta", clear"'
|
||
|
capture sysuse `data'.dta, clear
|
||
|
if _rc != 0 {
|
||
|
di as err `"program cannot confirm dta file `data' on path `where'"'
|
||
|
error 999
|
||
|
}
|
||
|
}
|
||
|
|
||
|
** EXECUTE COMMAND
|
||
|
|
||
|
* are there commands to be executed before the command?
|
||
|
local i = 1
|
||
|
while `"`precmd`i''"' != "" {
|
||
|
di in white `". `precmd`i''"'
|
||
|
`precmd`i''
|
||
|
local i = `i' + 1
|
||
|
}
|
||
|
|
||
|
if "`cmd'" != "" {
|
||
|
|
||
|
if substr("`cmd'", -2, .) == ", " {
|
||
|
local trim = length("`cmd'") - 2
|
||
|
local cmd = substr("`cmd'", 1, `trim')
|
||
|
}
|
||
|
|
||
|
di _n in white ". `cmd'"
|
||
|
`cmd'
|
||
|
}
|
||
|
|
||
|
end
|
||
|
|
||
|
capture program drop _optname
|
||
|
program define _optname, rclass
|
||
|
|
||
|
version 8
|
||
|
|
||
|
syntax , [BINlfp2 ORDwarm2 REGress LOGit MLOGit OLOGit NOMocc2]
|
||
|
|
||
|
foreach d in binlfp2 ordwarm2 regress logit ///
|
||
|
mlogit ologit nomocc2 {
|
||
|
if "``d''"=="`d'" {
|
||
|
local opt = "`d'"
|
||
|
}
|
||
|
}
|
||
|
return local opt "`opt'"
|
||
|
|
||
|
end
|
||
|
|