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