1---
2title: Changelog/NEWS for package plm
3subtitle: plm - Linear Models for Panel Data - A set of estimators and tests for
4          panel data econometrics - https://cran.r-project.org/package=plm
5---
6
7# plm 2.4-3
8
9* Release to pacify CRAN additional checks with various BLAS implementations/platforms:
10  Checks moaned about neglectable small numerical differences vs. .Rout.save output.
11  Moved almost all test files to inst/tests so they are not run on CRAN.
12  These can be run manually and by `R CMD check --test-dir=inst/tests plm_VERSION.tar.gz.`
13
14### Admin
15* Source code repository for development is now on GitHub https://github.com/ycroissant/plm,
16  not on R-Forge anymore.
17* Update one author's e-mail address.
18
19
20
21# plm 2.4-2
22
23### Speed-up:
24 * "Fast mode" is not yet the default. To enable, set
25   `options("plm.fast" = TRUE)` manually or in your `.Rprofile` file (see
26   `?plm.fast`, also for benchmarks), option introduced in plm version 2.4-0.
27   It is planned to default to "fast mode" for the next CRAN release of
28   plm (then making package `collapse` a hard dependency).
29 * Further speed-up if `options("plm.fast" = TRUE)` is set: In case package
30   `fixest` or `lfe` is available locally *in addition* to package `collapse`,
31   the two-ways fixed effect transformation is significantly faster compared to
32   the case if only `collapse` is available due to specialised algorithms in these
33   two packages, all being fully integrated into the usual plm functions/user
34   interfaces (`fixest` is preferred over `lfe`, in this case, plm uses internally
35   `collapse::fhdwithin` which in turn uses `fixest::demean`). Thanks to Sebastian
36   Krantz for guidance on this.
37 * various efficiency gains throughout the package by using more vapply(),
38   crossprod(), lm.fit(), better branching, rowSums(., dims = 2L) (instead of
39   apply(., 1:2, sum)), etc., e.g., in plm for non-default random IV cases
40   (cases with `inst.method = "baltagi"` / `"am"` / `"bms"`), pmg, pcce, purtest.
41
42### Features:
43 * phansi: new function for Simes (1986) test applied to panels for panel unit
44   root testing, as suggested in Hanck (2013).
45 * pseriesfy: new function to make each column of a pdata.frame a pseries, see
46   `?pseriesfy` for background and useful examples. (Faster version is executed
47   if `options("plm.fast" = TRUE)` is set, see `?plm.fast` (then internally
48   using `collapse::dapply`)). Thanks to Sebastian Krantz for inspiration.
49
50### Bug Fixes:
51 * between (and hence fixef, ranef): order of output is order of *factor levels*
52   again (this reverts a change introduced in 2.4-0, there called a fix introducing
53   the order of the appearance in the data which is actually not desirable). Change
54   is relevant in specific unbalanced data constellations.
55 * fixef: for two-ways FE models, fixef does not error anymore if factor is in
56   model and not anymore in IV case ([#10](https://github.com/ycroissant/plm/issues/10)).
57 * vcovG (hence vcovHC, vcovDC, vcovNW, vcovSCC) and vcovBK: fix bug in case
58   of IV estimation with only one regressor (errored previously)
59   ([#4](https://github.com/ycroissant/plm/issues/4)).
60 * within_intercept:
61     * fix bug which caused an error for FE models with only one regressor
62     ([#4](https://github.com/ycroissant/plm/issues/4)).
63     * error informatively for IV models as not suitable.
64 * between.matrix: do not coerce result to numeric vector for n x 1 matrix
65   input (by using drop = FALSE in extraction) (prior to this fix, estimation
66   of the between model with only an intercept errored).
67 * pvcm: intercept-only models are now estimable.
68 * detect.lindep: argument 'suppressPrint' now correctly passed on/respected
69   (methods for data frame and matrix) ([#11](https://github.com/ycroissant/plm/issues/11)).
70 * has.intercept.plm: argument 'part' renamed to 'rhs', argument values
71   (integer or NULL) aligned with and correctly passed on to
72   has.intercept.Formula (with a *temporary* back-compatible solution).
73 * pcdtest: for formula method, the formula is evaluated in the parent environment.
74 * groupGenerics: no more warning in arithmetic operations on pseries when index
75   of both operands have same length but different content (e.g., something like
76   this does not warn anymore:
77   `your_pseries[1:(length(your_pseries)-1)] + your_pseries[2:length(your_pseries)]`).
78
79### Others:
80 * plm: for the nested random effect model (`effect = "nested"`), check if
81    argument `model = "random"` is set, if not, plm now warns and adjusts
82    accordingly (will become an error in the future).
83 * pgmm: printing of summary gives more information about the model estimated
84   (print.summary.pgmm).
85 * purtest: now checks for NA-values, drops any, and warns about dropping.
86 * piest: better printing (handling of 'digits' and 'subset' argument)
87     (print.piest, print.summary.piest).
88 * pwaldtest: error informatively if executed on intercept-only model
89   (also for such models: do not execute pwaldtest in summary.plm/pvcm and do
90   not print pwaldtest in print.summary.plm/pvcm).
91 * mtest:
92    * switched to combination of generic and a method for pgmm.
93    * has information about user-supplied vcov in its return value's
94      method slot (vcov information thus printed as well).
95 * various print methods now return the input object invisible (before returned
96   NULL).
97 * piest, aneweytest: now use internal demeaning framework by Within() [thus
98   benefiting from fast mode].
99
100
101### Vignettes and Other Documentation:
102 * 1st vignette:
103    * In section about panel unit root testing:
104      * added short intro with overview of available functions/tests and added
105        two example cases.
106      * added sub-section about new function phansi.
107    * added a little more information on the use of vcovXX.
108 * 2nd vignette: added formula for nested error component model.
109  * all vignettes: references updated to include Baltagi (2021), the 6th edition
110    of the textbook; fixed a few typos.
111 * pldv: man page extended a little, esp. with examples.
112 * vcovXX: man pages extended with examples how to use with plm's own summary method.
113
114
115### Dependencies:
116 * Added packages `fixest` and `lfe` to 'Suggests'.
117
118# plm 2.4-1
119
120 * lag: fix export of generic for lag (lost in 2.4-0; the panel-specific lag
121   method was executed anyway if base R's lag() encountered a pseries)
122   ([#3](https://github.com/ycroissant/plm/issues/3)).
123 * model.frame.pdata.frame: errors informatively if any index dimension has
124   NA values.
125 * pdata.frame: warns if NA in index dimension is encountered (before, only
126   a plain message was printed).
127 * Between/between/Sum/Within: Methods which rely on the index attribute
128   (\*.pseries and (if with index attribute) \*.matrix) now error informatively
129   if NA in any index dimension is encountered.
130 * Vignettes: file names renamed to start with "A_", "B_", "C_" so that the
131   Vignettes are sorted on CRAN's plm page in an order better suited for new
132   package users.
133 * checkNA.index: new non-exported helper function to check for NA in index
134   of a pdata.frame or pseries (all dimensions or a specific one).
135
136
137# plm 2.4-0
138
139### Speed up:
140Significant speed improvement (optional, for the time being): A significant
141speed-up of the package is available by a newly introduced **option** called
142'plm.fast' such that panel model estimations and others run faster. Set option
143'plm.fast' to 'TRUE' by `options("plm.fast" = TRUE)` for speed up, switch off by
144`options("plm.fast" = FALSE)` (switched off speed up is current default).
145To have it always switched on, put `options("plm.fast" = TRUE)` in your
146.Rprofile file. See documentation `?plm.fast` for more information and a
147benchmarked example.
148
149Technically, the speed gains are achieved by weaving in the fast data
150transformation functions provided in Sebastian Krantz' package 'collapse',
151which needs to be installed ('Suggests' dependency).
152
153Basic functions benefiting from speed-up are currently (used heavily in, e.g.,
154plm()): Between, between, Sum, Within.
155
156### Features:
157* within_intercept: gains argument 'return.model' (default is FALSE and the
158  functions works as previously). If set to TRUE, a full model object is
159  returned which is the input's within model with an intercept (see
160  documentation for more details).
161* fixef: gained new argument value 'effect = "twoways"' to extract the
162  sum of individual and time effect (for two-way models).
163* plm/ercomp: random effect model estimation with Nerlove's method extended to
164  unbalanced panels by weighting of the fixed effects (Cottrell (2017)).
165* Sum: is now exported.
166* DESCRIPTION file: added line BugReports pointing to a GitHub repository which is
167  currently only used for GitHub's issue tracker feature (https://github.com/ycroissant/plm/issues).
168
169### Fixes:
170* fixef: calculation for two-way models fixed; type = "dmean" for unbalanced
171  models fixed (by using weighted.mean()).
172* between.default: keeps original sequence of elements' occurrence (before,
173  compressed output was sorted by the factor's *level* order) [NB: this was
174  reverted again in plm 2.4-2].
175* Between.matrix and (internal) Tapply.matrix: ellipsis (three dots) is passed on,
176  allowing for, e.g., na.rm = TRUE (like already possible for between.matrix etc.).
177* Within.pseries/matrix: now handle na.rm argument in ellipsis.
178* index: gives warning if argument 'which' contains "confusing" values.
179  "confusing": an index variable called by user 'id', 'time', or 'group' if it
180  does not refer to the respective index (e.g., time index variable is called 'id'
181  in the user's data frame).
182* pdata.frame: input 'x' is always pruned by data.frame(x) as a clean data frame
183  is needed.
184* Access to documentation with a generic defined in another package fixed
185  (such as lag, diff, nobs, ...), so that the help systems offers to access the
186  plm-specific documentation (regression introduced when pkg plm 2.0-0 adopted
187  roxygen2 for documentation).
188* ercomp: (cosmetic) if one of theta\$id, theta\$time is 0 => theta\$total must be
189  0 and is set to 0 (before, for some data and platforms, theta$total could be a
190  very small positive or negative number, due to limited computational precision).
191  This leads to nicer printing for summary outputs as well.
192* plm: fix error when fed with a data frame with one (or more) column(s) having
193  a 'names' attribute (data frames do not have names attribute for columns!),
194  stemming from, e.g., a conversion from a tibble.
195* as.data.frame.pdata.frame: clarify argument 'row.names' a bit: FALSE will give
196  an integer sequence as row names, TRUE "fancy" row names, and (new) a character
197  will gives row names set to the character's elements (character's length is
198  required to match the number of rows).
199
200### Internals:
201* Between.\*, between.\*, and Within.\* methods: now use ave() instead of tapply().
202* between.matrix and Sum.matrix allow for non-character 'effect' argument in
203  non-index case.
204* pmg, pcce, cipstest: now use the general Between()/Within() functions of the
205  package (instead of "own" between/within transformation implemented inside the
206  respective function).
207* ercomp: now faster by saving and re-using intermediate results.
208* dhat (non-exported function used in vcovXX/vcovG with type = "HC2" to "HC4"):
209  now faster as diagonal of the quadratic form is calculated more efficiently.
210* pht(., model ="bmc") and plm(., inst.method = "bmc") now error informatively
211  (previously gave warnings) as "bms" is to be used for Breusch-Mizon-Schmidt IV
212  transformation.
213
214### Dependencies:
215 * Added package 'collapse' to 'Suggests'.
216
217
218# plm 2.2-5
219
220* Removed duplicated entries in REFERENCES.bib (dependency Rdpack 2.0 warned).
221
222
223# plm 2.2-4
224
225* ptransform (internal function): check balancedness before pseries index is
226  removed (fixes some spurious bug, e.g., when package tibble is used).
227* exported/registered again in NAMESPACE after export/registration lost in plm 2.0-0:
228  fixef.pggls, Math.pseries, Ops.pseries, Complex.pseries and deprecated
229  methods/function formula.dynformula, print.dynformula, pvcovHC.
230* Ops.pseries: use of is.vector() was too strict, now uses is.atomic() with
231  taking care for additional data types.
232* pwaldtest:
233   * non-exported function wald() now exported as method pwaldtest.pgmm.
234   * for all plm models use approach via
235     crossprod(solve(vcov(x), coefs), coefs)), not (tss-ssr)/(ssr/df2)
236     anymore.
237   * method for pvcm models now allows for pvcm's "within" specification,
238     returning a data.frame with test results for each regression.
239* pcdtest.pseries: NA values in input variable are now removed before any
240  further processing. A warning is issued in case of NA removal.
241* mtest, sargan, pwaldtest, piest, aneweytest: added for each a string for
242  alternative hypothesis.
243
244### Dependencies:
245* Removed package 'clubSandwich' from 'Suggests' as it was removed from CRAN
246  (archived) [the package was re-added to CRAN at a later point in time but
247  not made a 'Suggests' dependency for plm again].
248
249# plm 2.2-3
250
251* IGNORE_RDIFF_BEGIN/END added on tests and man pages.
252
253# plm 2.2-1
254
255* purtest:
256   * tests now support unbalanced panel data, where applicable.
257   * gained argument 'ips.stat' to select statistic for IPS test,
258     default is "Wtbar" (as before), added "Ztbar" and "tbar".
259   * if package 'urca' is available, p-values used in individual (augmented)
260     Dicker-Fuller regressions are (for applicable tests) based on
261     MacKinnon (1996) instead of MacKinnon (1994) yielding better p-value
262     approximations for tau distribution (via urca::punitroot).
263   * return value's element 'idres' contains p-values of individual
264     ADF-regressions (p.trho) and p-values printed in summary (where applicable).
265   * for Levin/Lin/Chu test, object and summary contain short-run and
266     long-run variance.
267   * for Hadri's test, summary is now applicable.
268
269* index.pindex: fixed bug when individual index variable is called "group".
270
271### Minor items:
272   * print.fixef: respects / forwards arguments supplied to generic print method.
273   * Grunfeld data doc: URL for overview of various Grunfeld data sets updated to
274     https://eeecon.uibk.ac.at/~zeileis/grunfeld/.
275
276### Dependencies:
277   * Package 'urca' added to "Suggests".
278
279
280# plm 2.2-0
281
282* Methods for plm.list were not exported, now exported.
283* lagt is changed so that it can deal with time factors which
284  cannot be coerced to numeric (ex "1950-54", "1955-59", ...).
285* cortab was not exported, now exported.
286* pvcm failed for random effect models when there are some NA coefficients for
287  some individual level OLS regressions, fixed.
288
289# plm 2.1-0
290
291* Problems with vignettes fixed (full text was in italics).
292* In test file 'test_Estimators.R', L256, tolerance lowered to 1E-04.
293
294# plm 2.0-2
295
296* vcovXX.pcce functions exported again (export was lost in plm 2.0-0).
297* summary.pcce gained argument 'vcov', summary.pcce object carries robust vcov
298  in element 'rvcov'.
299* Vignettes switched from bookdown::html_document2 to html_vignette.
300
301# plm 2.0-1
302
303* Minor update: tests updated to pacify CRAN's testing procedure with
304  OpenBLAS.
305* Bug fix in model.frame.pdata.frame: dot previously set to "separate" now set
306  to "previous".
307
308# plm 2.0-0
309
310* class 'pFormula' is deprecated and will be removed soon.
311* model.frame now has a pdata.frame method (instead of a pFormula
312    method) and model.matrix has a pdata.frame method (a pdata.frame
313    with a terms attribute). 'formula' as an argument in model.matrix
314    was unnecessary as the formula can be retrieved from the
315    pdata.frame.
316* A third vignette was added describing the plm model components
317    (plmModelComponents.Rmd).
318* plm: the informative error message about the deprecated argument
319    'instruments' is removed and this argument is no longer supported.
320* Man pages and NAMESPACE file are now generated using roxygen2.
321
322# plm 1.7-0
323
324* lag, lead, diff for pseries objects: functions now take care of the time
325    dimension when shifting observations within each individual. Previously,
326    shifting was performed row-wise within each individual (neglecting the time
327    dimension). The argument 'shift' is introduced to control shifting behaviour,
328    possible values are "time" (default) and "row" (behaviour up until and incl.
329    plm 1.6-6). Note that, however, the diff-ing performed in first-difference
330    model estimation by plm(..., model = "fd") is based on row-wise differences
331    of the model matrix per individual.
332* pbnftest: new function for (modified) BNF statistic (Durbin-Watson test
333    generalised to panels) and Baltagi/Wu's LBI statistic
334    (Bhargava/Franzini/Narendranathan (1982), Baltagi/Wu (1999)).
335* pcdtest: bias-corrected scaled LM test implemented (test = "bcsclm") as in
336    Baltagi/Feng/Kao (2012).
337* summary.plm: for all random models and for all instrumental variable models,
338    single coefficient tests are based on std. normal distribution and joint
339    coefficient (Wald) test on Chi-square distribution.
340* pwaldtest: now handles IV models correctly (Wooldridge (1990)); method for
341    random pvcm models added (and used in summary.pvcm).
342* pht: fixed estimation (plm 1.6-6 introduced a slight regression).
343* summary.pht: waldtest now uses Chi-square distribution (was F distribution).
344* Fixed first-difference models (plm(., model = "fd"), pggls(., model = "fd"))
345    to have an intercept by default again (disappeared in plm 1.6-6).
346* Between.matrix: bug fixed, so that the transformation can be correctly
347    performed for a matrix without index attribute.
348* make.pconsecutive for pseries: for consecutive pseries, the argument
349    'balanced' was not respected.
350* pwfdtest: fixed error when one individual has one observation only.
351* pmodel.response, fitted.plm, residuals.plm: for "between" and "fd" models,
352    a pure numeric is returned, not an 'illegal' pseries anymore (these models
353    compress data where having an index/pseries is useless and misleading).
354* Between and Within methods for matrices are now exported.
355* plm object: gained element 'weights' if weighted estimation was performed.
356* groupGenerics now used for 'pseries' objects, implemented as a wrapper
357    for methods in groups 'Math', 'Ops' and 'Complex' (see ?groupGeneric).
358    Thus, propagation to a higher or lower data type works correctly when
359    performed on pseries, e.g., c("pseries", "integer") is propagated
360    to c("pseries", "numeric") if an operation returns a decimal.
361* Vingettes: translated package's original vignette to Rmd format and renamed
362    to plmPackage.Rmd; added vignette plmFunction.Rmd for further explanation
363    about the estimation of error components models with the plm function;
364    in plmPackage.Rmd fixed typo in formula for cross-sectional dependence
365    scaled LM test.
366
367### Deprecated/renamed:
368* pht, plm(., model = "ht"/"am"/"bms"): both uses deprecated, better use instead
369    plm(., model="random", random.method ="ht", inst.method="baltagi"/"am"/"bms")
370    to estimate Hausman-Taylor-type models.
371* summary.plm: removed support for ill-named argument '.vcov', instead use
372    'vcov'. '.vcov' has been deprecated in plm 1.6-4 on CRAN since 2016-11-30.
373* pvcovHC: function deprecated, use vcovHC for same functionality.
374* plm: using the 'instruments' argument errors now (gave deprecation warning).
375* dynformula: the long deprecated function now gives a deprecation warning.
376* detect.lindep: previously named detect_lin_dep; renamed for consistency in
377    function naming (back-compatible solution implemented).
378
379### Minor items:
380
381* pvar: added method for pseries.
382* pgrangertest: better detection of infeasibility if a series is too short.
383* pdata.frame: fixed bug so that pdata.frames with only one column can be
384    created if drop.index = TRUE is set.
385* pgmm object: removed element 'df.residual' for now as it contained the
386    function of the same name rather than a number; fixed handling of argument
387    'lost.ts''s second element.
388* as.data.frame.pdata.frame gained argument 'keep.attributes'.
389* [.pdata.frame: in case a single column, i.e., a pseries is returned, this
390    pseries now has names (now consistent to extraction by \$.pdata.frame and
391    [[.pdata.frame).
392* is.pseries: added function to check if an object qualifies as a pseries.
393* (internal) is.index, has.index: new non-exported functions to check if an
394    object is or has a proper index (in the sense of the plm package).
395* pvcm object: element 'residuals' is now of class c("pseries", "numeric")
396    (was: "numeric" for within model); element 'coefficients' is numeric for
397    random model (was "matrix" with one column); element 'df.residuals' renamed
398    to 'df.residual' (as is standard, cf. lm, plm, ...).
399* print.pseries: prettier printing for c("pseries", "complex").
400* print.summary.plm: more informative for perfect fits (all residuals are 0).
401* plm/ercomp: informative error messages for non-estimable 'swar' and 'amemiya'
402    models when between model lacks observations ('swar') and individual or
403    time dimension lacks within variation ('amemiya').
404* plm/model.matrix.pFormula: informative error message for non-finite values.
405* summary.purtest: give informative error message when run on purtest object
406    containing result for Hadri's test.
407* pcce, pht, pmg, pggls models: proper names in printed summary's topline.
408* pcce models: pooled model's element 'coefficients' is numeric (was 1x1 matrix).
409* pwaldtest: in all cases, htest object's 'statistic' element is a numeric
410    (was 1x1 matrix for some cases).
411* Data set 'Crime' extended with pre-computed log values as in original data.
412
413### Dependencies:
414* Added to 'Suggests': knitr, rmarkdown, bookdown.
415
416
417# plm 1.6-6
418
419* ercomp:
420    * re-written to be a more general framework.
421    * (internal) returned ercomp object: component 'sigma2' is now a numeric;
422        component 'theta' is now either a numeric (balanced models) or a list with
423        numerics (unbalanced models), the numerics being of length 1 (one-way models)
424        or of length equal to the number of observations (two-ways models).
425* model.matrix.*: gained new argument 'cstcovar.rm' to remove specific columns.
426* pmodel.response: now returns object of class c("pseries", "numeric") [was "numeric"].
427* plm:
428    * random effect models: some random methods extended to unbalanced
429        two-ways case (Nerlove's method only supports balanced one-way, two-ways),
430        thanks to the more general ercomp framework.
431    * nested random effects model implemented (Baltagi/Song/Jung (2001)),
432        use effect = "nested", see example in ?plm.
433    * two-way fixed effects model for unbalanced panels is faster.
434    * new argument 'weights' added.
435    * fix backward compatibility for the (deprecated!) argument 'instruments'
436        to estimate IV models (but rather use 2-part formulae for IV models).
437    * plm gives an informative error message if all terms are dropped in an
438        estimation due to aliasing.
439    * argument 'inst.method': value "bmc" renamed to "bms" for the Breusch-Mizon-Schmidt
440        method ("bmc" was a typo, back-compatible solution implemented).
441* pht: argument 'model': value "bmc" renamed to "bms" (cf. plm).
442* purtest:
443  * for test =
444    * "madwu": Maddala-Wu test statistic used to be computed using p-values from
445               the normal distribution, fixed now, by using approximated p-values
446               for the tau distribution described by MacKinnon (1994).
447    * "hadri":
448      * fixed p-value (now based on one-sided test).
449      * fixed statistic in non-heteroskedasticity case (Hcons = FALSE).
450      * degrees of freedom correction implemented (set dfcor = TRUE).
451    * "ips", "levinlin": p-values fixed (now one-sided to the left).
452    * new tests: Choi (2001) modified P ("Pm"), inverse normal ("invnormal"),
453      logit ("logit").
454    * cosmetic: when argument 'lags' is not specified by user, the returned
455      object does not contain all three possible values in 'args\$lags' anymore.
456* cipstest: for the truncated version of the test, the constants used in the
457              calculation were mixed up for type = "none" and "trend".
458* pldv: new function to compute fixed and random effects models for truncated
459          or censored dependent variable.
460* pgrangertest: added Granger causality test for panels (Dumitrescu/Hurlin (2012)).
461* pbsytest:
462  * test = "j": [joint test by Baltagi/Li(1991)]:
463        fixed degrees of freedom (now df = 2 instead of df = 1).
464  * unbalanced version of all statistics implemented (Sosa-Escudero/Bera (2008)).
465  * new argument 're.normal' (only relevant for test = "re"): allows to compute
466        the two-sided RE test when set to FALSE (default is TRUE which gives the
467        one-sided RE test as before).
468* plm.data:
469  * use discouraged now (gives warning), use pdata.frame instead.
470  * function internally uses pdata.frame now and then adjusts
471        to get a "plm.dim" object as before. This way, plm.data
472        benefits from bug fixes made previously to pdata.frame.
473* pdata.frame:
474  * by default, the resulting pdata.frame is now closer to the original data:
475    * columns with constant values and all-NA values are not removed anymore,
476    * non-finite values are not substituted with NAs anymore,
477    * unused factor levels are not dropped anymore (except for those
478           variables serving to construct the index).
479  * arguments 'drop.NA.series', 'drop.const.series', 'replace.non.finite',
480        'drop.unused.levels' introduced to remove/replace columns/values as described
481        before (all default to FALSE).
482  * warning issued if an index variable is to be constructed that subsequently
483        overwrites an already present column of the same name ('id' and/or 'time').
484  * pacified warning in subsetting with with non-existent rows and columns due
485        to deprecation of 'structure(NULL, *)' in R >= 3.4.0.
486  * \$<-.pdata.frame: preserves storage mode and sets correct class if propagation
487                         to higher class occurred for a pseries prior to assignment
488                         (in plm 1.7-0 this was replaced by the more general approach
489                         using groupGenerics).
490* ranef: new function to calculate random effects from RE model objects, like
491           fixef for FE models.
492* aneweytest: changed to use the residuals of the one-way individual within model
493                (was: two-ways within model).
494* cortab: new function to compute cross-sectional correlation matrix.
495* pwartest, pwfdtest:
496    * statistics are labelled as F statistics.
497    * calculations now done without car::linearHypothesis().
498* diff.pseries:
499    * logicals can now be diff'ed (result is integer, mimics base::diff).
500    * does not warn anymore if argument 'lag' has length > 1.
501* difft.pseries (note the "t") implemented (non-exported), diff-ing with
502    taking the value of the time dimension into account, analogous to already
503    implemented (non-exported) functions lagt.pseries/leadt.pseries.
504* punbalancedness: extended to calculate unbalancedness measures of nested panel
505                     structures as in Baltagi/Song/Jung (2001).
506* mtest, sargan: return values gained data.name element.
507* pbltest: now accepts pdata.frames with index not in first two columns.
508* pwartest.formula (only formula interface): fixed: ellipsis ("dots") was not passed on.
509* pwaldtest: fix detection of vcovs generated by package 'clubSandwich' for models
510               with an intercept.
511* summary.pseries: better handling of characters, logicals, factors (use base methods).
512* summary.piest, summary.pht: table headings now have "z-value" and "Pr(>|z|)"
513                                as the numbers are based on standard normal distribution.
514* make.pbalanced: argument 'balanced.type':
515  * 'shared' renamed to 'shared.times' (with a back-compatible solution),
516  * 'shared.individuals' added as additional option (symmetric case).
517* print.pseries: prettier printing for integers.
518* print.summary.plm: prints information about dropped coefficients due to singularities
519                       (mimics print.summary.lm).
520* cosmetic: some print functions now have better aligned whitespacing.
521
522### Dependencies:
523  * R version >= 3.1.0 required now.
524  * 'Imports': maxLik added, function maxLik::maxLik is re-exported by
525    plm.
526  * moved from 'Imports' to 'Suggests': car.
527  * 'Suggests': added pcse, clusterSEs, clubSandwich, pglm, spdep,
528                    splm, statmod, Ecdat, pder, stargazer, texreg,
529                    foreign.
530
531
532# plm 1.6-5
533
534* pFtest: disable input model check due to reverse dependency of package AER
535    (and to allow arbitrary model comparisons); check was erroneously enabled in
536    plm version 1.6-4.
537
538
539# plm 1.6-4
540
541* Argument for supplying a variance-covariance matrix is now consistently named 'vcov'
542    across all functions. The old argument '.vcov' of summary.plm is marked as deprecated.
543    Deprecation warnings are only issued for those functions which where on CRAN with
544    the now deprecated argument '.vcov' (i.e., just for summary.plm, no warnings for
545    functions pwaldtest, fixef, within_intercept).
546* Snesp.Rd, LaborSupply.Rd: broken links fixed.
547* Vignette: updated contact details.
548
549
550# plm 1.6-3
551
552* Function Ftest renamed to pwaldtest (there was never a CRAN release with Ftest
553    exported, thus no deprecation warning).
554* summary.plm: F statistic uses adjusted df2 parameter in case of robust vcov.
555
556
557# plm 1.6-2
558
559* pcdtest optimized for speed. 'preshape()' added to pcdtest.R to take care of reshaping in wide form
560    prior to applying 'cor()'.
561
562
563# plm 1.6-1
564
565* vcovG and vcovBK: added compliance with instrumental variables models (through two-parts formulae).
566* plm.Rd: added note on the intercept in 'fd' models, and how to eliminate it.
567* make.pbalanced: gained argument 'balance.type' which allows to select whether
568    to balance by filling in NA values ("fill", like before) or (now new) also by
569    keeping only time periods shared among all individuals ("shared" [in v1.6-6 renamed to "shared.times"]).
570* pbsytest: issue warning when applied to an unbalanced model (unbalanced tests still in preparation).
571* print.summary.plm: for "between" models: print the no. of obs used in estimation
572    (like for "fd" models since 1.5-24).
573* pcdtest:
574    * returned htest object has correct data.name value now.
575    * NaN stemming from non-intersecting periods or only one shared period of
576        pairs of individuals avoided by omission from calculation.
577    * pcdtest(some_var ~ 1, data) does not error anymore.
578* NEWS file: order of entries changed: latest entries now at top of file.
579* pdim.pseries: added method.
580* is.pbalanced.*: methods added to determine balancedness for convenience. Same as pdim()\$balanced,
581    but avoids calculations performed by pdim() which are not necessary to determine (just) the
582    balancedness.
583* some functions little more efficient by using is.pbalanced() instead of pdim()\$balanced.
584
585
586# plm 1.5-35
587
588* pbltest.plm: plm interface now respects the 'alternative' argument.
589* summary.plm: summary.plm objects gained new component 'df' to mimic summary.lm objects more closely.
590* gettvalue() added as (internal) function to quickly extract one or more t values from an estimated model
591    (so one can avoid a call to summary() with all the other unnecessary computations).
592
593
594# plm 1.5-34
595
596* Ftest: support for vcovs from package clubSandwich to allow df2 adjustment in robust F test
597           (new func trans_clubSandwich_vcov added for this purpose).
598* (internal) model.matrix.pFormula: case "pooling" added to twoways/unbalanced condition;
599                                    for unknown cases, give meaningful error.
600* alias.plm, alias.pFormula: added functions to complement the generic stats::alias to detect
601                               linear dependence (much like detect_lin_dep).
602* detect_lin_dep.plm: added (complementing previously added detect_lin_dep methods from version 1.5-15).
603* plm objects gained element 'aliased' (a named logical) to indicate any aliased coefficients that are
604    silently dropped during estimation by plm (cf. summary.lm objects).
605* fix: vcovXX.plm / vcovG framework now handle plm models with aliased coefficients (linear dependent columns
606    in model matrix).
607* phtest:
608  * better support for between models.
609  * for method="aux", argument 'effect' is now extracted from dots.
610
611
612# plm 1.5-33
613
614* (internal) pdiff gained 'effect' argument and thus is more general.
615* plm: trying to estimate first-difference (FD) models with effect="time" or "twoways" is now prevented
616         with meaningful error messages; footnote 3 in vignette slightly adapted to reflect this.
617
618
619# plm 1.5-32
620
621* pcdtest: fixed p-value for cross-sectional dependence scaled LM test (pcdtest(..., test = "sclm")).
622
623
624# plm 1.5-31
625
626* fixef: return value is now class c("fixef", "numeric") ("numeric" added).
627* summary.fixef: return value is now of class c("summary.fixef", "matrix") ("matrix" added);
628                   type and df.residual added as attributes.
629    Both class additions allow easier further processing of the return values.
630
631
632# plm 1.5-30
633
634* lagt.pseries (experimental, non exported function): now handles NA values in time index.
635* pdata.frame: warning about NA in time index turned into a note being printed.
636
637
638# plm 1.5-29
639
640* print.pdata.frame: workaround to prevent error when printing pdata.frames with duplicated row names
641    (original row names are suppressed for printing in this case).
642
643
644# plm 1.5-28
645
646* phtest (regression based): if only one regressor in formula, the test does not stop anymore.
647
648
649# plm 1.5-27
650
651* model.matrix.pFormula: little speed up of within transformation in the two-ways unbalanced case.
652* model.matrix.pFormula: little speed up for some more transformations by using .colMeans instead
653                           of apply(X, 2, mean).
654
655
656# plm 1.5-26
657
658* residuals.plm: residuals extracted by residuals(plm_object) now have class c("pseries", "numeric")
659                   (was just "pseries" before).
660
661
662# plm 1.5-25
663
664* fixef:
665  * summary.fixef: t distribution is used for p-value calculation (like the heading states).
666  * fixef: for the t distribution to be applied for p-value calculation, objects of class "fixef"
667           gained a "df.residual" element.
668
669
670# plm 1.5-24
671
672* print.summary.plm: for FD models: now also prints number of observations used during estimation, because
673                       these differ from the number of observations (rows) in the model frame due to diff-ing.
674* pres: fixed handling of pggls' FD models and, thus, summary on pggls' FD models does not error anymore.
675* pbltest: now has a plm interface (besides the formula interface).
676
677
678# plm 1.5-23
679
680* make.pconsecutive: new function to make a (p)data.frame or pseries consecutive, meaning having consecutive
681                       time periods, t, t+1, t+2, ..., where t is an integer (fills in missing time periods).
682                       Optionally, by argument 'balanced', (p)data.frames or pseries can be made consecutive
683                       and at the same time also balanced.
684* make.pbalanced: new function to make a (p)data.frame or pseries balanced (but not consecutive)
685                    (fills in missing time periods).
686
687
688# plm 1.5-22
689
690* pdata.frames are now more consistent after subsetting:
691      => identical(pdataframe, pdataframe[1:nrow(pdataframe), ]) yields TRUE now
692  * fixed: after subsetting unnecessary information was added to the resulting pdata.frame.
693  * fixed: mode of index attribute was changed (unintentionally "simplified").
694* pdata.frame is now a little more informative about NA values in either individual or time index
695    (a warning is issued when such a pdata.frame is created).
696* [.pdata.frame: indexing a pdata.frame is now fully consistent to indexing a data.frame (as documented):
697  * fixed: special case of indexing by [i] (missing j) which erroneously returned rows instead of columns.
698* pdata.frame's warnings:
699  * if duplicate couples or NA values in the index variables are found
700    while creating a pdata.frame, the warning now gives users a
701    hint how to find those (table(index(your_pdataframe), useNA = "ifany").
702  * printed is now "id-time" (was: "time-id") to be consistent with
703    order of index variables.
704
705
706# plm 1.5-21
707
708* new function as.list.pdata.frame: Default behaviour is to act
709      identical to as.list.data.frame (some code relies on this, do
710      not change!).  By setting arg 'keep.attributes = TRUE', one gets
711      a list of pseries and can operate (e.g., 'lapply') over this list
712      as one would expect for operations on the columns of a
713      pdata.frame, e.g., to lag over more than one column and get a
714      list of lagged columns back, use: lapply(as.list(pdataframe[ ,
715      your_cols], keep.attributes = TRUE), lag).
716
717
718# plm 1.5-20
719
720* vcovXX.pcce methods added by copying the vcovXX.plm ones; work just
721    the same, sandwiching the appropriate "meat" in transformed
722    data. General reference is Wooldridge, Ch. 7.
723
724
725# plm 1.5-19
726
727* pcce now supports model.matrix and pmodel.response methods, extracting the transformed data so that the
728    estimator can be replicated by lm(pmodel.response(model) ~ model.matrix(model)); this is needed both for
729    vcovXX functions and for cluster bootstrapping.
730* summary.pcce outputs the R2 calculated according to Holly, Pesaran and Yamagata instead of RSS/TSS.
731
732
733# plm 1.5-18
734
735* pcdtest: small efficiency enhancement (calc only lower.tri of rhos).
736* pos.index (internal, not exported): new func to determine column numbers of index vars in a pdata.frame.
737* cosmetics:
738    * some extraction/subsetting functions doubled 'pseries' in the class of returned value (fixed now).
739    * extraction methods for pdata.frame and pseries now preserve order of attributes.
740    * class "pindex" for attribute index not lost anymore after subsetting a pdata.frame.
741
742
743# plm 1.5-17
744
745* lagt.pseries: new method respecting "content" of time periods [not yet exported due to testing].
746* is.pconsecutive: default method exported so it can be used for arbitrary vectors.
747
748
749# plm 1.5-16
750
751* plmtest:
752    * fixed p-values [for type="kw" and "ghm"],
753    * unbalanced version of all test statistics implemented,
754    * doc update with literature references to unbalanced tests,
755    * if requested, the "kw" statistic is now also calculated as one-way ("individual" or "time"),
756      albeit it coincides with the respective "bp" statistic.
757* pwtest: formula interface respects 'effect' argument, 'effect' argument now mentioned in doc.
758* data set 'Wages': factor 'sex' re-leveled to c("male", "female") to match use in original paper.
759* print.summary.plm: suppress printing of 'effects' argument in top line in case of 'pooling' model.
760* doc for between, Between, Within extended; doc for lag, lead, diff in separate file now (lag_lead_diff.Rd)
761* pdata.frame:
762    * fixed bug: do not assume a specific order of data when only individual index is supplied,
763    * resulting pdata.frame is ordered by individual, then time index,
764    * when duplicate couples (id-time) are created, a warning is issued,
765    * new argument 'stringAsFactors'.
766* pvar:
767  * fixed warning about var on factor variable (var on factors is deprecated as of R 3.2.3),
768  * fixed corner case with one group being all NA and other non-varying,
769  * print.pvar: better handling of NA values.
770* lag/lead: fixed bug with dropped factor levels, added testfile tests/test_lag_lead_factor_levels.R.
771* is.pconsecutive:
772    * new function to check if time periods are consecutive per individual,
773    * better NA handling by added argument 'rm.na.tindex'.
774* pgmm: fixed bugs affecting the instrument matrix in the following cases:
775    * gmm instruments are collapsed and restricted in lag length;
776    * first lags are used as gmm instruments;
777    * gmm instruments are collapsed in system GMM;
778    * gmm instruments are restricted in lag length in system GMM.
779* punbalancedness: data frame interface gains 'index' argument.
780* within_intercept: new function to calculate an overall intercept along its standard error for FE models
781                      a la Stata and gretl, accepts argument '.vcov' for user defined vcov.
782* added help topic on package as a whole (?`plm-package`) for sake of completeness.
783* summary.plm:
784  * argument '.vcov' can also be a function (before, only matrix was possible).
785  * internal: the furnished vcov is saved in the summary.plm object in
786                             object\$rvcov (vcov function name in
787                             attr(object\$rvcov, which="rvcov.name").
788* Ftest:
789  * gained '.vcov' argument, which enables robust F test and chi-sq
790         test computations [robust versions not yet weaved in
791         summary.plm].
792  * now exported and has documentation (.Rd file).
793  * returned htest object has vcov's name in 'method' element (if vcov was supplied).
794  * Ftest later renamed to pwaldtest (in version 1.6-3).
795* (internal) vcovXX functions: furnished vcovs gain attribute
796                                 "cluster" which give info about
797                                 clustering, e.g., "group" or "time".
798* fixef: gains new argument '.vcov'.
799
800
801# plm 1.5-15
802
803* punbalancedness: new function for unbalancedness measures for panel data as
804    in Ahrens/Pincus (1981); added doc and testfile for punbalancedness.
805* DESCRIPTION: added URLs for package on CRAN and package on R-Forge.
806* model.matrix.pFormula and plm.fit: include 'assign' and 'contrasts' attributes (if any) in model fit
807* Vignette: summary(lme_mod)\$coef\$fixed -> summary(lme_mod)\$coefficients\$fixed to avoid
808    partial matching of 'coef' to 'coefficients' by "\$" operator.
809* r.squared: adjusted R squared fixed (at least for models with intercept).
810* model.matrix.pFormula and pmodel.response: ensured that 'data' gets reduced to the corresponding
811    model frame if not already a model frame (now mimics stats::model.matrix in this regard);
812    fixes corner cases with specific NA patterns when model.matrix.pFormula or pmodel.response are
813    called directly and 'data' not being a model frame (despite being required so)
814    [see tests/test_model.matrix_pmodel.response_NA.R].
815* detect_lin_dep: new function as a little helper function to detect linear dependent
816    columns, esp. in model matrices; incl. doc with two examples about how linear
817    dependent columns can be induced by the within transformation.
818* doc pFormula.Rd extended (especially examples) and split up in two files to better accommodate
819    different return values and input values in the documentation
820    (new file added: man/model.frame_model.matrix.Rd).
821
822
823# plm 1.5-14
824
825* mylm: added commented (i.e., inactive) warning about dropped coefficients in estimation.
826* fitted.plm: added commented (i.e., inactive) warning in about dropped coefficients in
827    estimated model compared to specified model.matrix.
828* added testfile tests/test_fitted.plm.R (some of those test currently do not run
829    (commented, i.e., inactive)).
830* pmodel.response.pFormula: make sure supplied formula is a pFormula before we continue
831    (coerce to pFormula), fixes "bugs" (rather unexpected, but documented behaviour) like:
832      pmodel.response.pFormula(regular_formula, data = dat, model = "pooling")
833       # Error in names(y) <- namesy :
834       # 'names' attribute [482] must be the same length as the vector [0]
835* some testfiles: fixed wired encodings.
836* lag.pseries: modified to handle negative lags (=leading values).
837* lead.pseries: added function as a wrapper for lag.pseries(x, k = -1) for convenience,
838    i.e., lag(x, k = -1) == lead(x, k = 1).
839* diff.pseries: prevented negative lags as input to avoid confusion.
840* doc for pseries functions are made available under their name, e.g., ?lag now displays helpfile for
841    lag.pseries in the help overview (besides, e.g., stats::lag).
842* pdim.default: make error message "duplicate couples (time-id)" printed as proper error message
843    (removed cat() around the message in stop(), was printed as regular string on screen before).
844* plm.data: slight improvement for printed outputs (spelling and spacing).
845* indexes: fixed return value (was always NULL).
846* doc updates: ?pdim: added section about possible different return values for pdim(pdata.frame) and
847    pdim(panelmodel_object); others: linkage to base functions enabled, spelling.
848
849
850# plm 1.5-13
851
852* fixed bug in vcovHC(..., method="white") from degenerating diag() if any group has
853    only 1 element.
854* vcovG framework: reintroduced "white2" method.
855
856
857# plm 1.5-12
858
859* dataset Produc: added variable 'region' as 3rd column and fixed variable
860    descriptions: 'pcap' is public capital (not private) while 'pc' is private
861    capital (not public).
862* added importFrom as per CRAN check for submission.
863
864
865# plm 1.5-11
866
867* added RiceFarms to datasets to eliminate non-CRAN dependencies, (temporarily) removed
868    'pder' from suggested, uncommented (fixed) example in pdwtest.Rd.
869
870
871# plm 1.5-9
872
873* fixed bug in vcovG for lagged White terms (make pseudo-diagonal in E(u,v)); affected vcovNW.
874
875* documentation updates (mostly text books of Baltagi and Wooldridge to latest editions,
876    references are also more specific now).
877
878* pbgtest: fixed/enabled type="F" (F test of lmtest::bgtest) in wrapper pbgtest() and
879    fixed/enabled passing of argument 'order.by' [additional argument in
880    lmtest::bgtest] [tests/testpbgtest.R added, docs updated and extended].
881
882* phtest(., method="aux") [Hausman regression-based test]: fixed bug when data contain more
883    cases than there are used in model estimation (due to NA values); avoid calc. of RE model
884    a second time; phtest now also works with between model correctly (fixed degrees of freedom)
885    tests/test_phtest_Hausman_regression.R added.
886
887* plm(): original row names of input data are preserved in plm_object\$model,
888    so functions like pmodel.response(), model.frame(), model.matrix(), residuals()
889    return the original row names (and thus fancy row names if those were to be computed by
890    pdata.frame)
891
892* as.data.frame.pdata.frame(): respects 'row.names' argument.
893
894
895# plm 1.5-8
896
897* introduced new phtest (Hausman test) allowing for robust vcov.
898* fixed bugs in pdwtest.
899
900
901# plm 1.5-6
902
903* pruned 'require' calls to 'lmtest', 'car', 'lattice' and substituted them with proper
904    entries in NAMESPACE.
905
906* temporarily commented problematic examples in pbgtest and pdwtest.
907
908
909# plm 1.5-5
910
911* fixed bug affecting vcovG on unbalanced datasets (thx Liviu Andronic) from propagation
912    of NAs in final by-group matrix multiplication.
913
914
915# plm 1.5-4
916
917* fixed testErrors.R with plm.data instead of pdata.frame.
918
919
920# plm 1.5-3
921
922* reintroduced plm.data eliminated by mistake.
923
924
925# plm 1.5-1
926
927* fixed "already a pdata.frame" bug in pcdtest.formula.
928
929* implemented fixef() method for objects estimated by pggls().
930
931
932# plm 1.5-0
933
934* added generic building block and high-level wrappers vcovNW and vcovDC to the namespace.
935
936* dataset Parity added to /data.
937
938
939# plm 1.4-0
940
941* substituted vcovHC, vcovSCC with the new framework based on vcovG and wrapper functions.
942
943
944# plm 1.3-1
945
946* a 'subset' argument is added to print.summary.plm and summary.pht
947    so that a subset of coefficients may be selected.
948
949* fixed a small problem on the printing of the typology of the
950    variables for pht models.
951
952* the "name" of the tests is now the formula truncated so that it
953    prints on only one line.
954
955* 'restrict.matrix' argument added to deal with linear restrictions.
956
957* a 'vcov' argument is added to summary.plm so that a variance matrix can be supplied.
958
959* the deviance method for panelmodel objects is now exported (12/02).
960
961* the Hausman-Taylor now supports the Amemiya-MaCurdy and the Breusch-Mizon-Schmidt version.
962
963* a small bug is fixed on the var2lev function to deal the case when there are no factors.
964
965
966# plm 1.3-0
967
968* an update method for panelmodel objects is provided.
969
970* the Wages example is removed from the pvar man page because it's time consuming.
971
972
973# plm 1.2-10
974
975* for unbalanced Hausman-Taylor model, the printing of the error
976    components was wrong, it is now fixed.
977
978* the printing of the removed variables (cst or NA) is improved.
979
980* the pgmm function has been improved to deal correctly with holes
981    in the cross-sections ; a 'collapse' argument is added to limit the
982    number of gmm instruments.
983
984* the CoefTable element of summary.pgmm objects is renamed to
985    coefficients, so that it can easily be extracted using the coef method.
986
987* the default value for robust is now TRUE in the summary.pgmm method.
988
989* a new argument 'lost.ts' is added to pgmm to select manually the
990    number of lost time series.
991
992* almost null columns of instruments are removed (this happens when
993    within/between transformation is performed on between/within series.
994
995* plm now accepts three part formulas, the last part being for
996    instruments introduced only in the within form.
997
998* the predict method for panelmodel objects is now exported.
999
1000* plm now estimates systems of equations if a list of formulas is
1001    provided as the first argument.
1002
1003
1004# plm 1.2-9
1005
1006* the pccep function, estimating CCEP models a la Pesaran, has
1007    been added together with summary and print.summary methods. The
1008    function generates objects of a class of their own ("pccep"), much
1009    like 'pggls', together with 'panelmodel'.
1010
1011* the pmg function, estimating MG, DMG and CCEMG models a la
1012    Pesaran, has been added together with summary and print.summary
1013    methods. The function generates objects of a class of their own
1014    ("pmg"), much like 'pggls', together with 'panelmodel'. In the
1015    future must consider possible merger with 'pvcm'.
1016
1017* the new cipstest function performs a second-generation CIPS test
1018    for unit roots on pseries objects.
1019
1020* the new (non-exported) function pmerge is used internally by cipstest
1021    to merge lags and differences of a pseries into the original
1022    pdata.frame. Will possibly be added to the user space in the future.
1023
1024
1025# plm 1.2-8
1026
1027* an index method is added for panelmodel, pdata.frame and pseries.
1028
1029* a bug in the typology of the variables in pht is fixed.
1030
1031* a bug in vcovBK (matrices degenerating into vectors) is fixed
1032    (thx to David Hugh-Jones for bug report).
1033
1034* the Between function now returns a pseries object.
1035
1036* the resid and fitted method now return a pseries object.
1037
1038* the pgmm method has been rewritten; the data frame is first
1039    balanced and NAs are then overwritten by 0s.
1040
1041
1042# plm 1.2-7
1043
1044* a typo is corrected in the man page of plm.data.
1045
1046* package AER is now suggested.
1047
1048
1049# plm 1.2-6
1050
1051* a bug in mtest for pgmm models with effect="individual" and
1052    transformation="ld" *and* for the wald test for time.dummies for
1053    model with effect="twoways" and transformation="ld" is fixed by
1054    modifying namest in pgmm.
1055
1056* there was a bug in pgmm for models with different lags for gmm
1057    instruments. The number of time series lost is now the min (and
1058    not the max) of the first lags for gmm instruments.
1059
1060* some parts of summary.pgmm only worked correctly for models with
1061    time-dummies. It now deals correctly for models with 'individual'
1062    effects.
1063
1064* the *.rda files are now compressed.
1065
1066* p-values for the two-tailed versions of plmtest() were wrong and
1067    have been fixed. They were divided by 2 instead of multiplied.
1068
1069
1070# plm 1.2-5
1071
1072* fixed error in pggls, model="within" (FEGLS). Added model="fd" (FDGLS).
1073
1074* changed dependency from package 'kinship' to 'bdsmatrix' (as suggested by
1075    Terry Therneau after his reorganization of the packages).
1076
1077* fixed DESCRIPTION and NAMESPACE accordingly.
1078
1079* fixed the example in pggls.Rd.
1080
1081
1082# plm 1.2-4
1083
1084* bug corrected in pgmm: ud <- cbind(ud, td.gmm.level) is
1085    relevant only for twoways models.
1086
1087* in fitted.plm, the extraction of the index is updated.
1088
1089* the residuals.plm method now has a 'model' argument.
1090
1091* new function r.squared introduced.
1092
1093* pmodel.response.plm is modified: no explicit 'effect' and 'model'
1094    arguments anymore (like in model.matrix.plm).
1095
1096
1097# plm 1.2-3
1098
1099* lag.pseries now returns relevant names for the returned factor.
1100
1101* pFormula is modified so that it can handle correctly Formula
1102    objects, and not only formula.
1103
1104* pgmm has been completely rewritten with a new 'Formula'
1105    interface. Old formula and dynformula interfaces are kept for
1106    backward compatibility but won't be maintained in the future.
1107
1108* 'subset' and 'na.action' are added to the list of arguments of pgmm and oldpgmm.
1109
1110* lag.pseries is now able to deal with vector arguments for lags,
1111    e.g., lag(x, c(1,3)).
1112
1113* suml(x) is replaced by Reduce("+", x).
1114
1115
1116# plm 1.2-2
1117
1118* the documentation has been improved.
1119
1120* the pvalue for purtest(..., type = "madwu") was in error (by a
1121    factor of 2).
1122
1123* in formula(dynformula), a bug is fixed so that the endog
1124    variable doesn't appear on the RHS if there are no lags.
1125
1126* in pgmm, the extract.data has been rewritten and is *much* faster.
1127
1128* two new functions vcovBK and vcovSCC have been added.
1129
1130* a 'model' argument is added to pgmm.sys and pgmm.diff
1131    (previously, the model name was extracted from the call).
1132
1133* in pgmm, Kt is fixed to 0 when effect="individual".
1134
1135
1136# plm 1.2-1
1137
1138* a new purtest function to perform panel unit root tests.
1139
1140* [[.pdata.frame is modified so that NULL (and not an error
1141    message) is returned if an unknown column is selected.
1142
1143
1144# plm 1.2-0
1145
1146* the as.matrix and print methods for pserie objects are now
1147    exported.
1148
1149* in summary.plm, the p-value is now computed using a Student
1150    distribution and not a normal one.
1151
1152* the lag.pserie method is modified so that it deals correctly
1153    with factors, and not only with numeric vectors. The diff.pserie
1154    method returns an error if its argument is not numeric.
1155
1156* the instruments-"backward compatibility" stuff in plm is
1157    simplified thanks to the new features of Formula.
1158
1159* 'pserie' is renamed 'pseries'.
1160
1161* a THANKS file is added.
1162
1163* the `[.pdata.frame` function is modified so that [, j] returns a
1164    pseries and not a pdata.frame when j is a single integer, and a
1165    backward compatibility feature is added for the "index" attribute.
1166
1167
1168Change since version 1-1.4
1169
1170* an 'args' argument is added to plm objects, and the internal
1171    function relies now on it (and not on the call as previously).
1172
1173* more attention is paid when one of the estimated components of
1174    the variance is negative (warning or error messages result).
1175
1176* pdata.frame objects are re-introduced. They are used to compute
1177    model.frames. Extraction from pdata.frames results in 'pserie'
1178    objects which have an index attribute.
1179
1180* the print method of ercomp is now exported.
1181
1182* the first argument of pgmm may now be a formula. A lag.form must
1183    be provided in this case.
1184
1185* Hausman-Taylor estimation is now performed by the pht
1186    function. For backward compatibility reasons, it is still
1187    possible to estimate this model with plm.
1188
1189
1190# plm 1-1.3
1191
1192* a relevant error message is added when a within model is
1193    estimated with no time-varying variable.
1194
1195* the formula method for dynformula objects is now exported.
1196
1197* a misleading notation was corrected for plm.ht model.
1198
1199* the definition of sigma2\$id for unbalanced ht model is
1200    corrected, a harmonic mean of Ti being used.
1201
1202* the definition of tss.default is simplified.
1203
1204* the fitted.values element was missing for plm objects and has
1205    been added.
1206
1207
1208# plm 1-1.2
1209
1210* the /inst directory was missing, it has been added again.
1211
1212
1213# plm 1-1.1
1214
1215* part of the "details" section of the fixef.plm man page is
1216    removed.
1217
1218* a fitted.value method is now available for plm objects. It
1219    returns the fitted values of the untransformed response.
1220
1221* in pdiff, a drop=FALSE is added. This omission was responsible
1222    for a bug while estimating a model like plm(inv~value-1, data =
1223    Grunfeld, model = "fd").
1224
1225* the lev2var is changed so that it doesn't result in an error
1226    when the data.frame contains no factor: this was responsible for a
1227    bug in plm.ht.
1228
1229
1230# plm 1-1.0
1231
1232* in fixef, the 'effect' argument default is now NULL:
1233    fixef(model_with_time_effect) now works correctly.
1234
1235* in pFtest, the error message "the arguments should be a within
1236    and a pooling model" is removed so that two within models may be
1237    provided.
1238
1239* for backward compatibility reasons, function pvcovHC is reintroduced.
1240
1241* for backward compatibility reasons, argument 'test' of pbsytest
1242    may be indicated in upper case.
1243
1244* we switched back to old names for two arguments of plm ercomp ->
1245    random.methods ivar -> inst.method -> ivar.
1246
1247* amemiya method is not implemented for unbalanced panels: an
1248    error message is now returned.
1249
1250
1251# plm 1-0.1
1252
1253* the plm function has been completely rewritten.
1254
1255* the names of some arguments have changed (random.methods ->
1256    ercomp, inst.method -> ivar), the old names are accepted with a
1257    warning.
1258
1259* the 'instruments' argument is removed, instrumental variable
1260    estimation is performed using extended formula. The 'instruments'
1261    argument is still accepted with a warning.
1262
1263* the 'model' element of plm objects are now ordinary data.frame,
1264    and not data.frame with elements y and X. Moreover, this
1265    data.frame contains untransformed data.
1266
1267* the data sets which are relevant for panel data estimation that
1268    where previously in the 'Ecdat' package are now in the plm package.
1269
1270* in pvcm a bug when the estimation was made on a subset is fixed.
1271
1272* ercomp is a stand alone function which returns the estimation of
1273    the components of the variance of the errors.
1274
1275* the estimation of two-ways within model is now implemented for
1276    unbalanced panels.
1277
1278* the fixef method is much improved, the fixed effects may be
1279    computed in levels, in deviation from the first level or in
1280    deviation from the overall mean.
1281
1282* in pbsytest, the arguments test are now in lowercase.
1283
1284* the pvcovHC function is replaced by suitable vcovHC methods for
1285    panelmodel and pgmm models.
1286
1287
1288# plm 1-0.0
1289
1290* lag and diff methods for pseries are now exported and therefore
1291    behave correctly.
1292
1293* for two-ways within models with instrumental variables, K is
1294    replaced by K+1 for the computation of the overall mean matrix of
1295    the instruments. Time fixef are now computed. The error message
1296    "impossible ..." is removed.
1297
1298* a bug in the time random effect model is corrected.
1299
1300* a model.matrix method for panelmodel is provided.
1301
1302* models without intercept (-1 in the formula) should now be
1303    consistently estimated with plm, pggls and pvcm.
1304
1305* plm depends now on the 'Formula' package which provides useful
1306    tools for formula with two parts.
1307
1308
1309# plm 0-3.2
1310
1311* a lot of typos of the man pages have been fixed.
1312
1313* functions pcdtest, pcdres have been added.
1314
1315* for Hausman-Taylor model, summary now prints the variables
1316    and not the effects.
1317
1318* the estimation of a model with only one explanatory variable
1319    using plm with method = "fd" is now working correctly.
1320
1321
1322# plm 0-3.1
1323
1324* in plm.formula, [int.row.names] is replaced by
1325    [as.character(int.row.names)].
1326
1327* the degrees of freedom for a within time effect model was wrong
1328    and has been corrected.
1329
1330* the arguments 'type' and 'weights' in pvcovHC.panelmodel are renamed
1331    to 'method' and 'type', respectively. The default method (type in previous
1332    versions) is "arellano"" and not "white1".
1333
1334* honda is now the default option for plmtest.
1335
1336
1337# plm 0-2.2
1338
1339* the coefficients method for objects of class pgmm is now
1340    exported.
1341
1342* a bug in the plm method of plmtest has been fixed.
1343
1344* in plmtest, for argument 'effect' value "id" is renamed "individual".
1345
1346* three testing functions are added : pbsytest (Bera,
1347    Sosa-Escudero and Yoon test), pARtest (Breusch-Godfrey test) and
1348    pDWtest (Durbin-Watson test) (later renamed to pdwtest), pwartest,
1349    pBGtest (later renamed to pbgtest), pwtest, and pbltest.
1350
1351* plm, pvcm and pggls now have arguments "subset" and "na.action".
1352
1353* phtest, pFtest, plmtest now have a formula method.
1354
1355* a bug is fixed for the vcov of the within model.
1356
1357* the pdata.frame function and class is suppressed. The package
1358    now use ordinary data.frames.
1359
1360
1361# plm 0-2.1
1362
1363* pdata.frame is much faster thanks to a modification of the pvar
1364    function.
1365
1366* series with only NA values or with constants values are now
1367    removed by pdata.frame.
1368
1369* observations are ordered by id and time by pdata.frame.
1370
1371* a pfix function is added to edit a pdata.frame.
1372
1373* a as.data.frame function is provided to coerce a pdata.frame to
1374    a data.frame.
1375
1376* the dependency to the 'Matrix' package has been removed and pgmm
1377    is much faster now.
1378
1379* phtest has been fixed to return only positive values of the
1380    statistic.
1381
1382* pgmm objects now inherit from panelmodel like other estimators
1383    and print correctly.
1384
1385* a bug in summary.pgmm has been fixed.
1386
1387
1388# plm 0-1.2
1389
1390* Models with only one explanatory variable resulted in an
1391    error. This has been fixed.
1392
1393* Estimation methods are now available with these four functions :
1394    plm, pvcm, pggls, and pgmm instead of one (plm) in the previous version.
1395
1396* pvcm is a new function which estimates variable coefficients
1397    models. The "nopool" model is now part of it.
1398
1399* pggls is a new function which enables the estimation of general
1400    FGLS.
1401
1402* pgmm is a new function for general method of moments estimator.
1403
1404* for all estimation functions, the first four arguments are now
1405    'formula', 'data', 'effect', 'model'.
1406
1407* robust inference is now provided by the pvcovHC function.
1408