
The following FAQ is based on postings on Statalist.
Title | Difference between using tsset and iis tis | |
Author | Vince Wiggins, StataCorp |
I have observed that after I
tsset panelvar timevar
in my data, I can use xt commands without setting
iis panelvar tis timevar
Is there any difference between using tsset and using iis tis before xt commands?
There is quite a bit of overlap between tsset and the pair of commands iis and tis. The relationship between tsset and iis/tis should, indeed, be made clearer in the documentation.
tsset was introduced in Stata 6 together with time-series operators. It provides several new features in addition to subsuming most of the role of the iis and tis commands. Those new features include enabling time-series operators, checking the data to be sure they do not contain duplicate periods, and setting the periodicity of the data, e.g., yearly, half-yearly, quarterly.
The iis and tis commands have been in Stata much longer. iis has always been the workhorse, because all the xt commands must know the variable that stores the panel identifier. Its sibling, tis, was introduced to provide a similar mechanism for the few xt commands that also needed a variable identifying time—these commands include xtgls and xtgee.
iis and tis set the characteristics _dta[iis] and _dta[tis]. In truth, that is about all they do; the xt commands then use this information. tsset also sets these characteristics and sets some additional characteristics used internally by the time-series operators.
The commands also clear each other’s settings. So, typing iis id will clear any existing tsset settings, and the reverse is also true.
All the xt commands that recognize the iis and tis settings or that take the i() and t() options respect the settings of tsset. When you have data with both panel and time identifiers, tsset is preferred because it enables time-series operators.
You can still use iis or the i() option because many of the xt commands require only a panel variable and do not need a time variable; xtlogit is one such command. (Conversely, tsset requires a time variable but allows a panel variable.)