LIMDEP

Jde o software určený k analýze ekonomických dat a jeden z nejdůležitějších ekonometrických programů vůbec. Následující platí pro NLOGIT4 bežící  s LIMDEP9 na platformě Windows10.

Prostředí

Filozoficky je založen na práci v projektech – koncovka *.LPJ. Projekt je primárně prostor správy dat, se kterými pracuji – nejdůležitější jsou data pro analýzu. Vlastní statistická práce se děje buď přes průvodce, kteří jsou podobní jako ve Statistica (k nim se dá dostat přes roletky a jednotlivé karty) nebo zadáváním příkazů ručně jako v R v “klasickém” textovém editoru (viz níže) – ty lze uložit jako *.LIM. Kromě těchto dvou součástí existuje ještě třetí, která nese název “Output” a je rozdělena do dvou částí – ve vrchní je Trace, kde jsou dokumentovány veškeré provedené kroky (především odeslané příkazy a stavy systému, ke kterým tyto příkazy vedly), ve spodní je vlastní Output, kde jsou postupně zobrazovány výsledky všech provedených příkazů. Uložit jej lze taktéž s koncovkou *.LIM. To je dost nešťastné a je třeba si odlišovat názvy, co jsou soubory s příkazy a co s výstupy.

Popis prostředí na videu zde.

POZOR – vše ukládáme pomocí panelu nabídky – ta se mění podle toho, jestli jsem nakliknut v projektu, v příkazech nebo výstupech – je třeba si dávat pozor na to, co ukládám – podobně jako ve Statistica.

Vstupní data

Existuje nekonečně mnoho způsobů jak dostat data do programu. V kombinaci s Windows10 mi však “normálně” funguje jediný postup.

Před importem dat je třeba nejprve nastavit “Work Areas”, primární je nastavit počet buněk a následně řádků tak, aby se mi do toho vešla veškerá data a proměnné, které hodlám dopočítávat. Postup je zde:

Přestože data lze v LIMDEP v podstatě jakkoliv upravit, důrazně doporučuji udělat veškeré úpravy dat v MS Excel a do LIMDEP importovat finální soubor. Postup je na videu.

Pravidla pro názvy proměnných:

  • název proměnné může mít max. 8 znaků a z nich jen číslice, písmena a dolní podtržítko”_”
  • vyhrazená slova jsou na s. R3-16 nahoře

Pravidla pro data:

  • mohou nabývat pouze číselné hodnoty (s desetinnou tečkou) – nominální proměnné kódu pouze čísly
  • čísla se oddělují mezerami a/nebo čárkami
  • chybějící data musí být označeny něčím jiným než číslem – znamená to čímkoliv, nejlépe je na dané místo napsat “m”
  • POZOR – Data Editor” zobrazuje jen 1900 případů – zkutečný počet pozorování se dozvíte v jeho okně na řádku vlevo nahoře, společně s počtem řádků a počtem obsazených proměnných.

Proměnné lze grupovat do různých skupin – k tomu slouží příkaz

NAMELIST; název seznamu proměnných = názvy proměnných oddělených čárkou $ Pro tvoření názvů platí stejná pravidla jako pro názvy proměnných – namelistů může být maximálně 25 a v každém maximálně 150 proměnných
 
Výběr z případů pro analýzy lze udělat různě. První možností je přímo u daného příkazu. Zde lze použít specifikace 
 
    PŘÍKAZ ; If [sex=1] ; Lhs = proměnná1 ; Rhs = proměnná2,proměnná3, . . . $ Tady se udělá příkaz na daných proměnných jen pro ženy. 
 
Nebo pomocí specifikace 
 
    PŘÍKAZ ; For [sex] ; Lhs = proměnná1 ; Rhs = proměnná2,proměnná3, . . . $ Tady se příkaz provede zvlášť pro všechny parametry, které obsahuje proměnná sex – čili zvlášť pro ženy=1 a muže=0.
 
Globálně lze udělat výběr, na kterém se dělají všechny dále uvedené příkazy, pomocí nástroje “actual sample“, který se specifikuje pomocí příkazu 
 
    SAMPLE ; výčet případů $. Tento výčet lze doplnit nebo z něho vyjmout případy pomocí funkcí REJECT a INCLUDE, kde za středníkem následuje podmínka. 
 
Výběry jsou obvykle definovány komplikovanými podmínkami – všechny možné případy jsou v kapitole R7.4.  
 
Specifickým výběrem z  případů je náhodný výběr z případů, který je nejlepší dělat přes nabídku Project – Set Sample – Draw… Tam “replacement” znamená, že jeden případ může být vybrán vícekrát. Funkce pro textový editor se jmenuje DRAW (R7.5).
 

Transformace dat

Jak už bylo zmíněno výše – nejlepší je veškeré transformace udělat v MS Excel a do LIMDEP si naimportovat data čistě pro analýzy. LIMDEP má spoustu předdefinovaných specifikací pro příkaz CREATE, jímž se tvoří nové proměnné (= transformované původní proměnné) – seznam je na s. R5-9. Tvorba může být vysoce komplikovaná a zahrnovat podmínky typu If/Else.
 
V některých případech je vhodné použít LIMDEP místo MS Excel, k nim patří především automatické vytvoření dummy variables z jedné kategoriální proměnné se syntaxí CREATE ; Expand (název proměnné) = jména nových proměnných oddělených čárkou. Podstatné je, že kódování musí být pouze celými čísly, která začínají od 1 a v řadě nechybí číslo. Pak platí, že místo kódu 1 bude proměnná uvedená první v pořadí, místo kódu 2 bude proměnná uvedená druhá v pořadí, atd. Pokud je více kategorií než jmen nových proměnných ve specifikaci příkazu, pak se pojmenují původním názvem s pořadovým číslem kódu.
 
Dalším případem vhodného použití je generování náhodných čísel s daným rozdělením. Jejich přehled a syntaxe jsou na R5-19 a R5-20.
 
Kompletní přehled transformací je v kapitole R5.

Panel data

V některých případech je nutné data k jednomu měření (= jednomu objektu) zaznamenat na více řádků – takovýmto datům se říká “panel data”. Pokud je u každého měření stejný počet řádků, pak jsou data “ballanced”, pokud ne, pak “unballanced”. 
 
Panel data se v příkazech uvádí specifikací 
 
    ; Pds = počet řádků u “ballanced”  nebo ; Pds = název stratifikační proměnné u “unballanced”

Syntaxe

Rychlý průvodce je v kapitole R3.5, základní model vypadá takto:
 
Příkaz ; specifikace1 = její parametr ; specifikace2 = její parametr  $
  • specifikace lze psát na samostatné řádky
  • pod sebe mohu napsat několik příkazů
  • příkaz musí vždy začínat na novém řádku a končit symbolem “$”
  • ignorovány jsou nadbytečné mezery i prázdné řádky 
  • komentáře, které program rozpozná jako něco, co není příkaz nebo specifikace, a nevadí mu to při vykonání, se píší na konec řádku za “?” – nesmí za ním ale následovat konec “$”, pač ho program nenajde
  • blok komentářů (= textu ignorovaného programem) se píše tak, že na začátku řádku uvedeme “/*” a na konci “*/”, komentář může zahrnovat mnoho řádků a nesmí zasahovat žádnou svou částí na řádky, kde jsou příkazy
  • některé specifikace nemají parametry, ale pouze říkají, že model má být takový, např. ; Panel  

Drtivá většina příkazů má strukturu odvozenou on tohoto modelu:

 
PŘÍKAZ     ; Lhs = závislá proměnná
           ; Rhs = one, závislé proměnné oddělené čárkou
           ; . . . další specifikace modelu ; … $ 
 
one je konstanta, kterou Statistica počítá automaticky, ale LIMDEP nikoliv – neměla by se dávat u regresí s pevnými efekty, jinak většinou ano a automaticky je počítána jen stepwise lineární regrese.
 
Váhy se používají u metody nejmenších čtverců – místo druhé mocniny je použito násobku hodnoty reziduálu a hodnoty váhy. I u metody maximum likehood je vahou násoben člen v log likehood a jeho deriváty a nikoliv vlastní data. Během výpočtu jsou váhy automaticky přeškálovány. Specifikace je 
 
    ; Wts = jméno proměnné  
 
Všechny modely jsou dosažitelné bez znalostí syntaxe přes výše zmiňované průvodce (“Command Builder”). Problémem je, že modely mají mnoho specifikací – až 150 a ty nelze tímto průvodcem všechny postihnout, proto v průvodce nejsou, lze je však do příkazu v textovém editoru po proběhnutí výpočtu z průvodce doplnit a přes “Go” spustit analýzu znovu.  

Výstupy výpočtů

Ty nalezneme v okně “Output”, zmíněném výše, popřípadě matice jsou ukládány přímo do projektu, stejně jako skaláry a nové vypočítané proměnné – LIMDEP je ukládá automaticky. Na našem noťasu je jediný způsob jak dostat data z “Output” do MS Excel přes schránku – CTRL+C a pak CTRL+V.
Kromě toho jsou výsledky posledně aplikovaného testu v okně projektu v částech “Matrices” a “Scalars”
 
Charakteristiky polohy a variability (průměr, s.d., min, max a n) lze získat přes DSTAT ; Rhs = výčet proměnných $, zadáte-li ještě 
  • ; All $, pak dostanete info k šikmosti a špičatosti
  • ; Normality test, pak k tomu budete mít i test normality dat, což je největší výhoda tohoto software oproti Statistica
  • ; Output = 1, pak dostanete i kovariační matici
  • ; Output = 2, pak dostanete i korelační matici
  • ; Output = 3, pak dostanete obě matice
  • ; Quantiles, pak dostanete kvantily (decily)
  • a pokud za ně zadáte ještě ; Plot, pak dostanete ještě Norm-Quantile Plot
  • když místo toho zadáte ; Box Plots, pak dostanete krabicový graf
Máte-li k dispozici proměnnou, kterou určujete skupiny, pak ji lze tuto použít jako stratifikační a vše předchozí zobrazit pro v této proměnné uvedené kategorie (např. zvlášť pro samce a samice, či muže a ženy) po zadání ; Str = stratifikační proměnná $
Lze udělat i výběr ; If [proměnná <= číslo] ; Rhs = jména proměnné ; … $
 
Kromě příkazu DSTAT existuje ještě příkaz TABLE, který je mu hodně podobný a liší se jen charakterem výstupních dat, která mají podobu “klasické” tabulky – používá se tohoto příkazu především, když chci deskriptivní statistiku stratifikovaných dat:
  • místo specifikace ; Str lze použít ; Pds = číslo  $, kterým se udává počet případů, které tvoří skupinu v balanced panel data
  • nejzajímavější specifikace je pak ; FPC = počet členů základního souboru $, který Vám vrátí s.e. a 95% konfidenční intervaly upravené právě podle počtu celkové populace (což je výhodné u sociologických výzkumů) 
  • další možnou specifikací je ; Cluster = stratifikační proměnná $, která Vám dá stejný výsledek jako  ; Str plus s.e. 
 

LIMDEP

Histogram má příkaz HISTOGRAM v základní syntaxi HISTOGRAM ; Rhs = jméno proměnné $
U poměrových proměnných: 
  • dělá automaticky 40 intervalů, lze nastavit pomocí ; Int = počet skupin 
  • lze zadat levé hranice intervalů ; Limits = hranice oddělené čárkou a mezerou
  • Limits a Int lze kombinovat
U diskrétních dat:
  • lze vytvořit max 90 intervalů
  • lze omezit jejich počtem podmínkou ; If [proměnná <= číslo] ; Rhs = jméno proměnné $
Multiple histogramy: 
  • lze dělat do počtu 4 proměnných, kde se všechny zadávají jako Rhs nebo stratifikací příkazem ; Group = stratifikační proměnná (kategorií může být max 4)
  • počet proměnných a Group lze kombinovat
  • pomocí ; Choice = kategorie z daní proměnné – lze tedy z proměnné zobrazit jen některé kategorie (ty lze například i dělit dále pomocí ; Group)

Regrese

LIMDEP automaticky nezobrazuje očekávané hodnoty a reziduály, ty je nutno vyvolat pomocí specifikací:
  • ; Keep = jméno nové proměnné – uloží očekávané hodnoty do proměnné zadaného jména 
  • ; Res = jméno nové proměnné – uloží reziduály do proměnné zadaného jména
  • ; List – zobrazí obě předchozí a další informace k provedené regresi (viz R10-33 dole)
  • ; Fill – zadá-li se ; Keep = jméno proměnné , pak dopočítá očekávané hodnoty i pro pozorování, která nebyla součástí výpočtu – výpočet byl proveden na “actual sample”, který netvořily všechny případy, jde tak o vanikající nástroj pro dopočítávání predikčního hodnot (příklad s regresemi ja na s. R10-32 a R10-33)