/* Na podstawie przykładów Cameron,Trivedi (2009) Microeconometric Using Stata" */ * Załadowanie danych - są zamieszczone na stronie Stata Corp. net from http://www.stata-press.com/data/mus use mus15data,clear describe summarize, separator(0) tabulate mode * Cechy indywidualne (dochód) table mode, contents(N income mean income sd income) * Cechy alternatyw (łowiska) table mode, contents(mean pbeach mean ppier mean pprivate mean pcharter) format(%6.0f) * PrawdopodobieDstwo złowienia ryby table mode, contents(mean qbeach mean qpier mean qprivate mean qcharter) format(%6.2f) * Wielomianowy logit mlogit mode income, baseoutcome(1) test income * Wyniki w postaci ilorazow wzglednych ryzyk mlogit mode income, rr baseoutcome(1) nolog * Zapisanie wynikow pod nazwa ML estimates store MNL * Warunkowy logit * przygotowanie danych generate id=_n reshape long d p q, i(id) j(fishmode beach pier private charter) string browse in 1/4 *usuwamy niepotrzebne zmienne drop mode price crate label var d "Choosen mode" /* McFadden's choice model */ * Conditional logit with alternative-specific and case-specific regressors asclogit d p q, case(id) alternatives(fishmode) casevars(income) basealternative(beach) nolog * Generujemy zmienne specyficzne dla alternatyw generate dbeach = fishmode=="pier" generate dprivate = fishmode=="private" generate dcharter = fishmode=="charter" generate ybeach = dbeach*income generate yprivate = dprivate*income generate ycharter = dcharter*income clogit d dbeach dprivate dcharter ybeach yprivate ycharter income, group(id) * Zapisanie wynikow pod nazwa CL estimates store CL * warunkowy logit odtwarzajacy model wielomianowy clogit d p q,group(id) * Model wielomianowy jest równowazny modelowi warunkowemu bez regresorów specyficznych dla alternatyw asclogit d, case(id) alternatives(fishmode) casevars(income) basealternative(beach) nolog * Zagnieżdzony logit * Definiowanie drzewa wyboru nlogitgen type = fishmode(shore:pier | beach, boat: private | charter) * Sprawdzenie drzewa nlogittree fishmode type, choice(d) * Model nlogit d p q || type:, base(shore) || fishmode:income, case(id) * Zapisanie wynikow pod nazwa NL estimates store NL estimates table MNL CL NL, keep(p q) stats(N ll aic bic) equation(1) * Wielomianowy probit /estymacja trwa bardzo długo/ asmprobit d p q, case(id) alternative(fishmode) casevars(income) estat correlation estat covariance * Logit o losowych parametrach * Przygotowanie danych use mus15datalong.dta, clear * utworzenie zmiennych 0-1 generate dbeach = fishmode=="pier" generate dprivate = fishmode=="private" generate dcharter = fishmode=="charter" * utworzenie zmiennych dochodowych generate ybeach = dbeach*income generate yprivate = dprivate*income generate ycharter = dcharter*income drop if fishmode=="charter" | mode==4 /* Szacujemy parametry modelu zakładając iż parametry dla cen (p) są zmiennymi losowymi */ mixlogit d q dbeach dprivate dcharter ybeach yprivate, group(id) rand(p) /* standardowo jest wykonywanych 50 losowań z czego 15 pierwszych jest odrzucanych */ /* opcja nrep ustala liczbę losowań, opcja burn liczbę odrzucanych liczb losowych */ mixlogit d q dbeach dprivate dcharter ybeach yprivate, group(id) rand(p) nrep(1000) burn(100) /* rozkład lognormalny */ mixlogit d q dbeach dprivate dcharter ybeach yprivate, group(id) rand(p) ln(1) wydrukowac str 508 i http://www.statajournal.com/sjpdf.html?articlenum=st0133