CHANGES IN VGAM VERSION 1.1-10 NEW FEATURES o Doubly-constrained RRVGLMs are partially implemented. They have class "drrvglm". More checking is needed to iron out all problems. o plotvgam(..., main = letters[1:3]) will work by having 3 different 'main's. o chisq() has 'squared' for the chi distribution. o New family functions: extbetabinomial(dpqr), gensh(dpqr). o New functions: asinlink(), sqrtlink(), alogitlink(), sloglink(), lcalogitlink(), lcsloglink(), cloglink(), log1plink(). o Argument 'ynames = FALSE' added to multinomial(), acat(), [cs]ratio(), propodds() and cumulative(), which can make the output more readable. Thanks to Daniel Smith for the suggestion. o New functions: CM.symm[01](), CM.equid(), CM.free(), CM.ones(), CM.qnorm(). o negbinomial(vfl = FALSE) has been added. o Tested okay on R 4.3.2. BUG FIXES and CHANGES o acat(), cumulative(), cratio(), propodds(), sratio() handles argument 'Thresh' which can be assigned 'symm1', 'symm0', 'free', 'qnorm', etc. o All remnants of is.R() removed, for R 4.4.0. o Some fortran code now avoids some warnings found by a Debian C compiler. o dgaitdplot() stop()s when the parameters are outside the parameter space. o demo() examples have been updated to run fully. o "rrvglm" objects have new slots "A.est" and "C.est" which simplifies the code. o "rrvglm" objects are estimated using the "alternating" 'Algorithm' only, and the "derivative" method withdrawn. o For RR-VGLMs and DRR-VGLMs, 'kill.all' changed to 'omit123'. o rrvglm.control() has some of parameters changed (for more stringent convergence). o Some argument shuffling: genpoisson[12](). That is, the order has been changed. o summary.rrvglm() swapping of pasting block matrices according to 'fixA' was wrong. o replace.constraints() renamed to replaceCMs(). o dtruncpareto1() no longer returns 0 at lower and upper. Thanks to Jason Li for picking this up. o summaryvgam() and summarypvgam() calls summaryvglm(HDEtest = FALSE) to simplify things and avoid unnecessary complications. o expected.betabin.ab renamed to Ebbin.ab. o Deprecated: gordlink(), pordlink(), nbordlink(), nbord2link(). CHANGES IN VGAM VERSION 1.1-9 NEW FEATURES o Soon: VGAM will require R >= 4.4.0 because plot.profile will move from \pkg{MASS} to \pkg{stats}. Sorry! o Yettodo: modify dgaitdlog() to be like dgaitdpois() in terms of safeguarding against too much deflation and inflation (to return NaN). Ditto to dgaitdzeta() and dgaitdnbinom(). Ditto for the p-type functions. o New family functions: gammaff.mm(), hurea(d). o New generic and/or methods functions: cops(). o acat(), cumulative(), cratio(), propodds(), sratio() handles argument 'thresholds' equalling 'symmetric1' and 'symmetric0'. Note from version 1.1-8 that 'equidistant' was added. o Tested okay on R 4.3.0. BUG FIXES and CHANGES o wald.stat(..., orig.SE = TRUE, values0 = values0) assumed that values0 == 0. o [rq]zinegbin() did not handle the case 'munb = NULL' when 'prob' was specified. Thanks to Giuseppe D for finding this bug. o acat(), cumulative(), cratio(), propodds(), sratio() must have an intercept term. o For vglm.fit(), slot "middle" is now "middle1", "fini" is now "fini1", and a new "start1" slot added. o bigamma.mckay() moved into VGAMdata 1.1-9. o nakagami() has a zero = "shape" argument. o [dp]gaitdpois() have more range checking, e.g., for too much deflation and inflation. o For more speed, several slow-checking .Rd files have been changed by using \dontrun{}. o summary(posbernoulli.tb()) failed to print the confidence interval. Thanks to Carl Schwarz for picking this up. o DFLOAT() changed to DBLE() in some .f files. CHANGES IN VGAM VERSION 1.1-8 NEW FEATURES o Warnings from R-devel addressed. o acat(), cumulative(), cratio(), sratio() have arguments 'thresholds', 'Tref', 'Treverse'. o hdeffsev() has been edited. o margeff() works for poissonff(), negbinomial() and posnegbinomial() objects. o multilogit() did not handle 1-row arguments correctly when 'inverse = FALSE'. Now vglm(y, multinomial) handles a 1-row y, as well as acat and cumulative and [cs]ratio. o rrvglm.fit() is more robust with respect to 'one.more'. o plot.vgam() issues an error if sm.os()/sm.ps() is used with deriv.arg > 0. o New data set: budworm. BUG FIXES and CHANGES o rainbow.sky has a new green. o zoabetaR() handles the argument 'constraints'. Thanks to Riccardo Lo Martire for helping to find the bug. CHANGES IN VGAM VERSION 1.1-7 NEW FEATURES o Slot 'rqresslot' added to VGAM family functions, for implementing randomized quantile residuals. Available in about 50 family functions such as poissonff() currently. o Slot 'rqresslot' added to VGAM family functions, for implementing o Argument 'label.it' added to model.matrixvlm(). o New generic and/or methods functions: rqresid(), rqresiduals(). o New data set: lpossums. o Tested okay on R 4.2.1. BUG FIXES and CHANGES o cumulative() has been replaced by its version prior to 2021-05. Evidently some so-called improvements created some bugs. Thanks to Johanna Neslehova for alerting me to this. o bistudentt() was documented wrong; thanks to Iago Gine Vazquez for finding this. o fill() now deprecated; replaced by fill4(). CHANGES IN VGAM VERSION 1.1-6 NEW FEATURES o Most of the GAIT regression code have new arguments 'd.mlm' and 'd.mix' but mainly only the dpqr-type functions work! Some other functions should work such as gaitdpoisson() and dgaitplot(). Also, is.deflated() and goffset() are new. o New family function: gaitdnbinomial(). o Upgraded family functions: gaitpoisson() becomes gaitdpoisson(), gaitlog() becomes gaitdlog(), gaitzeta() becomes gaitdzeta(). o New generic and/or methods functions: KLD(), Pheapseep(). o Some colours are pre-defined for GAITD regression, and the default colour scheme has changed. o trim.constraints() has a new 'intercepts = TRUE' argument. o Many family functions have a 'dpqrfun' component in the @infos slot. Useful to tie in the modelling function with its density, etc. o binormal() has a new 'rho.arg' argument. o Some link functions handle deriv = 4: e.g., loglink(), logitlink(). o vglmfit@misc$history gives the convergence history. o Improvements to clogloglink() at the boundary 1. o hdeff.vglm() has a new argument 'theta0'. o wald.stat() cleaned up internally. o Tested okay on R 4.1.2. BUG FIXES and CHANGES o All GAIT regression code has arguments 'alt.mlm' changed to 'a.mlm', 'inf.mix' changed to 'i.mix', etc. Colours have changed. [dpqr]gaitpois() have been renamed to [dpqr]gaitdpois(), and gaitpoisson() to gaitdpoisson(). o [dpqr]zanegbin() no longer supports argument 'prob'. o hdeff() makes a recursive call if any NAs are in the answer and fd.only == FALSE. So the answer should then be a 'proper' one. o Code involving anova() for VGLMs/VGAMs changed to avoid an error when loading in \pkg{semTools}. o spikeplot(..., use.table = TRUE) failed wrt x.use and y.use. o vcov() slightly faster for "vglm" objects. Thanks to Frank Harrell for comments that led to this. o linkfun.vglm() changed to linkfunvglm(). CHANGES IN VGAM VERSION 1.1-5 NEW FEATURES o New functions: meangait(), spikeplot(), trim.constraints(). o iam(i, 1:M, M = M) now works, for selecting a whole row, and similarly for a column. o Tested okay on R 4.0.3. BUG FIXES and CHANGES o gait[log,poisson,zeta](): arguments llambda.[ai] and lshape.[ai] equal llambda.p and lshape.p by default. This means only one argument needs be assigned in order to change them all. o [dpqr]genpois[12]() has argument 'mean' changed to 'meanpar'. o gait[log,zeta]() bug fixed wrt missing 'allprobs'. o qfoldnorm() now uses the bisection method. Thanks to Mauricio Romero for a suggestion that led to this. o gait[log,poisson,zeta]() compute the sandwich formula explicitly for the working weights; this has speed gains. Their @deriv avoids nested for() loops too. Their initial value grids have become coarser. o Functions moved to VGAMdata 1.1-5: yip88, bellff(dr), tikuv(dpqr). CHANGES IN VGAM VERSION 1.1-4 NEW FEATURES o Functions score.stat() and wald.stat() offer greater flexibility by some new arguments, and 'as.summary' changed to 'orig.SE'. o Influence() computes the influence functions of a "vglm" object. o Methods functions hdeff.matrix() and hdeff.numeric() are new. o Family function slot genpoisson()@ weight was updated with the EIM derived by Easton Huch, and after major changes, genpoisson() was renamed to genpoisson0(). o New functions: [dpqr]gaitnbinom(), [dpqr]gaitgenpois[012](), [dpqr]gaitbinom(), dgaitplot(), plotdgait.vglm(), Trunc(). o New family functions: genpoisson[12](dpqr), gaitpoisson() so that gaitpoisson.mix() and gaitpoisson.mlm() were removed, gaitlog() so that gaitlog.mix() was removed, gaitzeta() so that gaitzeta.mix() was removed. o Tested okay on R 4.0.3. BUG FIXES and CHANGES o Deprecated: dgenpois(), genpoisson(), [dpqr]gaitnbinom.m[ix,lm](). gatnbinomial.m[ix,lm](dpqr), [dpqr]gaitbinom.mlm(), gaitpoisson.mix(), gaitpoisson.mlm(), gabinomial.mlm(), gtbinomial(). o 'lhs.prob' changed to 'cdf.max.s'. o Argument changes for all GAIT code, e.g., 'alter' changed to 'alt.mix' or 'alt.mlm', 'byrow.arg' to 'byrow.ai', etc. o Functions moved to VGAMdata 1.1-4: oalog, oilog, otlog, oapospois, oipospois, otpospois, oazeta, oizeta, otzeta, oizipf, oiposbinomial(dpqr), [dpqr]posbinom, [dpqr]pospois, [dpqr]posnegbin. o Pearson residuals no longer printed by default in a summary of a "vglm" object: presid = FALSE. o Some changes made to plot(vgam()) code for changes in R 4.0.0, especially if the covariate is a character/factor. Now avoids "coercing argument of type 'double' to logical" warning. o negbinomial(lmu = "nbcanlink") had an error relating to "newemu". CHANGES IN VGAM VERSION 1.1-3 NEW FEATURES o New functions: [dpqr]gaitpois(), [dpqr]gaitlog(), [dpqr]gaitzeta(), dextlogF(). o New family functions: gatnbinomial.mix(dpqr), gaitlog.mix(dpqr), gaitpoisson.mix(dpqr), gaitpoisson.mlm(dpqr), extlogF1(d). o New generic and/or methods functions: altered(), inflated(), truncated(), specialsvglm(), fix.crossing(), is.crossing(). o Coef.vlm() handles models with contiguous "multilogitlink"s, e.g., gaitpoisson.mlm(). o get.offset() is now defined as a generic function (returns the n x M matrix of offsets by default). o Some .f files have been pruned of unnecessary code. o New data set: V2. o Tested okay on R 4.0.0. BUG FIXES and CHANGES o Another attempt to .Deprecated() all link function names which do not end in "link", e.g., loglink() replaces loge(), logitlink() replaces logit(). o gatpoisson.mix() (now merged into gaitpoisson.mix()) reorders its linear/additive predictors and now handles length(alter) == 0 (default, so equivalent to poissonff()) and length(alter) == 1. Ditto for gatnbinomial.mlm(), etc. o Three argument mismatches found in .f and .c code. o qlog() and qyules() buggy wrt interval selection prior to applying bisection. o 'Rank mismatches' flagged by gfortran10 fixed, by not calling two subroutines. o [dpqr]gaitpois.mlm() and [dpqr]gaitpois.mix() have been combined into [dpqr]gaitpois(). CHANGES IN VGAM VERSION 1.1-2 NEW FEATURES o New generic and/or methods functions: add1.vglm(), dfterms(), drop1.vglm(), extractAIC.vglm(), rootogram4vglm() [based on \pkg{countreg}], step4vglm(). o New family functions: gabinomial.mlm(), gatnbinomial.mlm(dpqr), gatpoisson.mix(dpqr), gatpoisson.mlm(dpqr). o New functions: [dpqr]zipfmb(), [dpqr]gaitbinom.mlm(), [dpqr]gaitnbinom.mlm(), [dpqr]gaitpois.mlm(), [dpqr]gaitnbinom.mix(), [dpqr]gaitpois.mix(). Note that the naming conventions have changed somewhat, especially regarding the negative binomial distribution. o Decommissioned functions: gapoisson(), gtpoisson(), [dpqr]gabinom(), [dpqr]gapois(), [dpqr]gibinom(), [dpqr]gipois(), [dpqr]gtbinom(), [dpqr]gtpois(). o eta2theta() should be able to handle links for, e.g., gatpoisson.mlm(), gibinomial(). o posbernoulli.t() has a 'type.fitted' argument. o gtpoisson.mlm() supports type.fitted = "Pobs.a", gipoisson.mlm() supports type.fitted = "Pstr.i". o New data set: backPain2. o Cleve Moler added to DESCRIPTION as a contributor, to reflect the use of LINPACK. o Tested okay on R 3.6.1. BUG FIXES and CHANGES o Use of old link function names now result in a call to .Deprecated(), except for a selected few such as logit() and probitlink()---this will only be allowed for a limited time. o negbinomial()@initialize bug fixed for "nbcanlink()" and multiple responses; thanks to Victor Miranda. o cens.poisson() gave a warning upon a summary(). Thanks to Jens Heumann for picking this up. o bisection.basic() returns a warning, not an error, if it cannot find an interval which covers the root. o Rank() has an improved implementation and documentation. o anova.vglm() had some bugs---thanks to Thamron Keowmani for finding them. o posnormal() failed when 'constraints' was inputted---thanks to Michael Zamo for picking this up. o Improvements to yules(dq). CHANGES IN VGAM VERSION 1.1-1 NEW FEATURES o New family functions: gentbinomial(dpr), gentpoisson(dpr), genapoisson(dpr), genipoisson(dpr). o New functions: [dpr]genabinom(), [dpr]genibinom(), care.exp2(). o Argument 'parallel' added to benini1(), gamma1(), maxwell(), rayleigh() and topple(). o Argument 'parallel = TRUE' for exponential() does not apply to the intercept now. o New link function: loglogloglink(). o New variable: rainbow.sky. o Some family functions now support 'type.fitted = "Qlinks"' (quantile link functions in \pkg{VGAMextra}), e.g., benini1(), gamma1(), exponential(), maxwell(), rayleigh(), topple(). o Tested okay on R 3.5.3. BUG FIXES and CHANGES o All link function names now end in "link", e.g., loglink() replaces loge(), logitlink() replaces logit(). Backward compatability holds for older link function names, probably for quite a while. o gaussianff() reinstated but is effectively deprecated; it calls uninormal() instead after a warning. o Documentation for lerch.Rd improved, as well as zeta() (thanks to Jerry Lewis). o rrar.control(summary.HDEtest = FALSE) is now set. o anova.vglm() gives an error message if it operates on a model with just a single factor as explanatory, when type = 2 or 3. o "summary.vglm" and "summary.vgam" prints out the names of the linear/additive predictors by breaking the output into lines that are not too long. Number of "Fisher scoring" iterations printed. o posbernoulli.tb(ridge.constant = 0.0001) now, it was ridge.constant = 0.01 for a long time. The adjustment is now multiplicative rather than additive. CHANGES IN VGAM VERSION 1.0-6 NEW FEATURES o New functions: [dr]bell(), bellff(), [dr]trinorm(), trinormal(), o New functions: anova.vglm(), R2latvar(), ordsup(). And residualsvglm(..., type = "stdres") is implemented for 'VGAMcategorical' models and "poissonff" and "binomialff" models. Thanks to Alan Agresti suggesting all these. anova.vglm() works for 'type = "II"' (default) and "I" and "III". o calibrate() has argument 'lr.confint' for likelihood ratio based confidence intervals (for Rank == 1 "rrvglm" and "qrrvglm" objects only). Wald vcov matrix returned in vcov list component for poisson and binomial. calibrate() has argument 'cf.confint' for characteristic function based confidence intervals (for Rank == 1 "rrvglm" and "qrrvglm" objects only). o margeff() works for tobit() objects. o A .control() function for a VGAM family function allows the 'HDEtest' argument in summaryvglm() to be FALSE by default, e.g., zanegbinomial.control(summary.HDEtest = FALSE) means that summary(zanegbinomialfit) does not conduct any HDE tests. o vcov() for "qrrvglm" objects (but assumes C is given). o New functions: attr.assign.x.vglm(). o New documentation: residualsvglm(). o Tested okay on R 3.5.1. BUG FIXES and CHANGES o By default, dbetabinom() now behaves like dbinom() wrt 'size' and 'prob', since rho = 0. This is done by 'limit.prob'. Thanks to S. A. Mousavi for picking this up. The functions [dr]betabinom() have also been modified accordingly to behave like the binomial distribution, by default. o pbetabinom.ab() did not handle negative values of 'q' correctly; NAs now replaced by 0s. o vglm()@predictors did not contain the offsets; now they do. Hence predict() will be affected. o pzeta() was incorrect if the first argument was greater than c.12. Thanks to Mitchell Newberry at the University of Pennsylvania for picking this up. o profilevglm() did not call constraints() correctly. o Deprecated: quasibinomialff(), quasipoisonff(), gaussianff(). The models fitted now have a log-likelihood that fully specifies the model. o nbcanlink() has a cosmetically improved label. o lambertW() documentation improved; thanks to Jan Somorcik for this. o dirmultinomial()@validparams had M unassigned [thanks to Feng Zeng]. o For model.matrix() for "qrrvglm" objects, model.matrix(type = "lm") is new and returns what used to be model.matrix(type = "vlm"). And now model.matrix(type = "vlm") returns the big model matrix of the CQO given the constrained coefficients C. o For uninormal(), if var.arg = TRUE then zero = "var", i.e., then "sd" remains intercept-only by default even if var.arg = TRUE. CHANGES IN VGAM VERSION 1.0-5 NEW FEATURES o extlogit() now handles 'deriv = 3'. o Generic function hdeff() implements an analytic solution for the following families: borel.tanner(), felix(), lindley(). For almost all other families, finite-difference approximations to derivatives means that first and second derivatives can be computed, even with models with 'xij' terms. o Generic function wald.stat() implements Wald tests with SEs evaluated at the null values, not at the original MLE, so do not suffer from the Hauck-Donner effect. o "vglm" objects have a new "charfun" slot, for the characteristic function. o "summary.vglm" and "summary.vlm" objects have new "coef4lrt0", "coef4score0", "coef4wald0" slots, for storing the 'Wald table' equivalent of LRTs, score tests and modified Wald tests. The latter has its SEs computed at the null values with the other coefficients obtained by further IRLS iterations, etc. Function summaryvglm() has arguments 'lrt0.arg', 'score0.arg', 'wald0.arg'. o TIC() is new, for the Takeuchi's Information Criterion. Thanks to Khedhaouiria Dikra for suggesting this. o mills.ratio() and mills.ratio2() are exported. o New functions: lrt.stat(), score.stat(), wald.stat(), which.etas(), which.xij(). o cauchy1() and cauchy() handle multiple responses and have been modernized a bit. o Tested okay on R 3.4.3. BUG FIXES and CHANGES o Setting 'deriv.arg' a positive value in plotvgam() when there are no s() terms results in a warning. Thanks to Barry Goodwin for detecting this. o cens.poisson() can better handle large lambda values, at least for left and right censored data (but not for interval-censored data yet). Thanks to Eugenie Hunsicker for picking up deficiencies in the code. o In multinomial.Rd, it was stated that setting parallel = TRUE did not make the intercepts the same. It does make them the same. Thanks to Stuart Coles for picking this up. o binomialff(multiple.responses = TRUE) returned an incorrect deviance. o bilogistic() uses SFS rather than BFGS as its algorithm. o Deprecated: lrp(), normal1() [use uninormal() instead]. CHANGES IN VGAM VERSION 1.0-4 NEW FEATURES o This package is now Renjin compatible. o gengamma.stacy() handles multiple responses, and some of its arguments have had their default values changed. o calibrate() has a methods function for "rrvglm" objects. o "vglm" objects have a new "hadof" slot. o "vglm" objects will soon have a new "charfun" slot. o constraints(vglmfit, matrix = TRUE) is now embellished by rownames, by default. o New generic and methods function: hdeff(), lrp(). o Many link functions accommodate 'deriv = 3' and sometimes a bit higher. More safety when 'deriv' is assigned out-of-range values. o fitted() and predict() with lms.???() fits, such as lms.bcn(), now handles inputting new 'percentiles' values. Thanks to Sven Garbade for picking up this obvious deficiency. o New function(s): d3theta.deta3(). o Tested okay on R 3.4.1. This package now requires R 3.4.0 or higher (not R 3.1.0 as before). BUG FIXES and CHANGES o [dqpr]gengamma.stacy() have no default value for 'd' and 'k' args. o negbinomial(lmu = "nbcanlink") now works properly; thanks to Victor Miranda for much help and picking up 3 bugs. o perspqrrvglm() called @linkinv() without passing in @extra. o fisherz(theta, inverse = TRUE, deriv = 1) was out by a factor of 2. o multilogit() did not handle 1-row arguments correctly when 'inverse = TRUE' and 'refLevel' was neither 1 or M+1. o Several C and Fortran functions renamed, for R 3.4.0. CHANGES IN VGAM VERSION 1.0-3 NEW FEATURES o vgam() with sm.os() and sm.ps() terms allows G2-VGAMs to be fitted. o plotvgam() has a "shade" argument. o Almost all family functions have been "validparams"-enabled, for greater reliability. o confint() implements the profile likelihood method (in addition to the Wald method). o New family functions: diffzeta(dpqr), oilog(dpqr), oiposbinomial(dpqr), oizeta(dpqr), oizipf(dpqr), otlog(dpqr), otpospoisson(dpqr), otzeta(dpqr), oalog(dpqr), oapospoisson(dpqr), oazeta(dpqr), topple(dpqr). o New functions: [pqr]zeta(), [qr]zipf(). o Argument 'zero' now accepts "" or NA and interprets these as NULL, i.e., no linear or additive predictors are intercept-only. o Significance stars added to summary(rrvglm.object), for very crude inference. o zeta() can return the Hurwitz zeta function, via the 'shift' argument. o show.summary.vglm() will only print out any dispersion parameter that is not equal to 1. o type.fitted = "quantiles" is available for gevff(), negbinomial(), poissonff(). o Tested okay on R 3.3.2. BUG FIXES and CHANGES o mills.ratio1() in tobit() did not handle very negative 'x' values correctly. Thanks to Christoph Nolte for detecting this. o Renamed arguments: zetaff(d) use 'shape', not 'p'. o betabinomialff()@infos was buggy wrt 'lshape1' and 'lshape2'. Thanks to Xiaodong for detecting this. o leipnik() uses logoff(offset = -1) as the default link for lambda now, not "loge". o logff(dpqr) uses 'shape' instead of 'c' as the parameter name. o yules(dpqr) uses 'shape' instead of 'rho' as the parameter name. o hzeta(dpqr) uses 'shape' instead of 'alpha' as the parameter name. o felix(dpqr) uses 'rate' instead of 'a' as the parameter name. o dbetabinom.ab() handles large values of shape1 and shape2 better, via the dbinom() limit. Thanks to Micha Schneider for picking up the bug. o [dpqr]posnegbin() have been improved a little. o logLik(summation = TRUE): prior weights 'w' have been converted to a vector when passed in; this is likely to make it less likely to give an error. o Labelling of the colnames of the fitted values have changed for many family functions, including those for multiple responses, e.g., gevff(). Also "mean" had a bug or two in gevff()@linkinv. CHANGES IN VGAM VERSION 1.0-2 NEW FEATURES o vglm.fit() has been simplified and handles half-stepping better. o AR1() implements the EIM of Porat and Friedlander (1986); this is the work of Victor Miranda. It is specified by type.EIM = "exact" (the default). o Function gevff() replaces egev(). It handles multiple responses like any other ordinary VGAM family function. o A rudimentrary plotvglm() plots the Pearson residuals, firstly versus the predicted values, and secondly, against the hat values. o The 'refLevel' argument of multinomial() accepts a character string, e.g., multinomial(refLevel = "European") for xs.nz$ethnicity as a response. o New family function: oipospoisson(dpqr), zoabetaR(). o New functions: grid.search[23](), [dpqr]oiposbinom(). o is.buggy() is called by vgam() immediately after estimation; it gives a warning if any constraint matrix corresponding to an s() term is not orthogonal. BUG FIXES and CHANGES o vglm.fit() did not handle half-stepping very well. o Some families for counts (i.e., [pos,z[ai]]negbinomial[ff]()) have been "validparams"-enabled in order to make estimation near the boundary of the parameter space more stable, especially when a Poisson approximation is suitable. o Other families that have been "validparams"-enabled: gev(), gpd(). o Actuarial or statistical size distributions families have been modified with respect to initial values, e.g., sinmad, dagum, [inv.]lomax, [inv.]paralogistic, [gen]betaII(). o rep_len() replaces rep() where possible. o Function gev() has been changed internally and arguments such as 'gshape' have changed. o Function rzipois() may not have handled 0-deflation properly but it does so now. o Function plotvgam() had a bug testing for variable names when the xij facility was used. o multinomial() and multilogit() use "(Last)" to signify the last level of a factor; it used to be "last". o qposbinom() returned 0 (incorrect), and not 1 (correct), for p = 0. o zipoisson() and zipoissonff() no longer store fitted values such as pstr0 in the misc slot. They can be obtained by, e.g., fitted(fit, type.fitted = "pstr0"). o Renamed functions: egumbel() is now called gumbelff(). [dqpr]ozibeta() is now called [dqpr]zoabeta(). o Renamed parameter names: zetaff() uses 'shape', not 'p'. o qzibinom() did not handle arguments lower.tail and log.p correctly. o Tested okay on R 3.3.0. This package now requires R 3.1.0 or higher (not R 3.0.0 as before). CHANGES IN VGAM VERSION 1.0-1 NEW FEATURES o Argument 'zero' has been programmed to handle (a more intuitive) a character vector. Each value of this vector is fed into grep() with fixed = TRUE. Many VGAM family functions have an equivalent default character value of 'zero'. o New slots: "validparams" and "validfitted" for providing more opportunities for half-stepping. o The "infos" slot of most family functions have a component called "parameters.names", and also "Q1" and "M1". o margeff() works for cratio(), sratio() and acat() models, and is generic (with S4 dispatch). For this, "vcategorical" replaced by "VGAMcategorical", and "VGAMordinal" is also a virtual class. And margeffS4VGAM() is generic. o summaryvglm() calls the generic summaryvglmS4VGAM() in order to compute useful quantities, and it is printed by showsummaryvglmS4VGAM(). Specific examples include the binom2.or() and cumulative() families. o Similarly, show.vglm() calls the generic showvglmS4VGAM() in order to print extra potentially useful output. Ditto for , show.vgam() which calls showvgamS4VGAM(). o Similarly, predictvglm() calls the generic predictvglmS4VGAM() in order to allow for family-function-specific prediction. o logitoffsetlink() is new. o [dpqr]ozibeta() and [dpr]ozibetabinom() and [dpr]ozibetabinom.ab() are new; by Xiangjie Xue and Thomas Yee. o coef(..., type = c("linear", "nonlinear")) is available for "vgam" objects. o The following have new 'weights' slots (based on negbinomial()@weight): posnegbinomial(), zanegbinomial[ff](), zinegbinomial[ff](). It is based on the expectation of a difference between 2 trigamma function evaluations being computed using pnbinom(lower.tail = FALSE) and variants. Both functions have some argument defaults tweaked. o log1mexp() and log1pexp(), based on Martin Maechler's 2012 paper, is 'new'. o Many zero-altered and zero-inflated families have additional 'type.fitted' choices. Initial values for such families hav been improved (via Init.mu()). o expint(), expexpint(), expint.E1() allow the computation of the first few derivatives. o Tested okay on R 3.2.4. BUG FIXES and CHANGES o Order of arguments changed: binom2.rho(lmu, lrho), negbinomial(), posnegbinomial(), zanegbinomial(), zinegbinomial(). o pzanegbin() could return -.Machine$double.eps. Thanks to Ryan Thompson for notifying me about this. o pbinorm() used to have a bug wrt Inf and -Inf values in its arguments. Thanks to Xiangjie Xue for picking this up. o plota21() used qchisq(0.95, df = 1) instead of qchisq(0.95, df = 1) / 2 for LRT confidence intervals. Thanks to Russell Millar for picking this up. o A new function Init.mu() is used to initialize several family functions, especially those based on the negative binomial and Poisson distributions. The default for Init.mu() is suitable for 0-inflated data. o The fitted value of polya() was wrong (wasn't the mean). o Default value of argument 'zero' has changed for: bisa(), gumbelII(). o zibinomialff()@weight had a bug when calling iam(). o [dpqr]nbinom(..., size = Inf) was buggy; it produced many NaNs. Thanks to Martin Maechler for promptly fixing this, for R 3.2.4. o The arguments of interleave.VGAM() have changed: from interleave.VGAM(L, M) to interleave.VGAM(.M, M1, inverse = FALSE). The is a compromise solution with respect to my book. The 'inverse' argument is due to Victor Miranda. o summaryvglm() evidently evaluated the weights slot of an object twice. Now it is only done once. CHANGES IN VGAM VERSION 1.0-0 NEW FEATURES o Official version that goes with the just-released book "Vector Generalized Linear and Additive Models: With an Implementation in R" by T. W. Yee (2015), Springer: New York, USA. o gengamma.stacy() implements a grid search wrt all its parameters. o New functions: [dp]lms.bcn(). o New family function: weibull.mean(). o triangle.control() slows down the speed of the iterations towards the MLE, because the regularity conditions do not hold. o New arguments: AR1(nodrift = FALSE). o binormal has arguments eq.mean and eq.sd which now operate independently. o confint() should work for objects that are "vglm"s. Thanks to Tingting Zhan for suggesting this. o Tested okay on R 3.2.2. o Methods functions for responseName() and term.names() and has.intercept(). BUG FIXES and CHANGES o Link functions have changed a lot!!! They return different values when deriv = 1 and deriv = 2, coupled with inverse = TRUE and inverse = FALSE. Type ?Links to see examples. The first derivatives become reciprocals of each other when inverse = TRUE and inverse = FALSE, however the 2nd derivatives are no longer reciprocals of each other. Also affected are dtheta.deta() and d2theta.deta2(), etc. o 'show()' added to importMethods('methods') in NAMESPACE. o The following currently do not work: golf(), nbolf(), polf(). o AA.Aa.aa() used the OIM and worked for intercept-only models, but now it uses the EIM. o logneg("a", short = TRUE) has been modified. o posnormal(): the first and second derivatives have been modified for both SFS and ordinary FS, and the default is zero = -2 now ('sd' is intercept-only). Several other improvements have been done. o binomialff()@deviance is assigned all the time now. o dbetabin.ab() better handles extremes in the shape parameters (very close to 0 and larger than 1e6, say). Thanks to Juraj Medzihorsky for picking this up. o Family functions: zigeometric()@weight and zigeometricff()@weight had one element incorrect. o logit("a+b", short = FALSE) was labelled incorrectly, etc. o Family function tobit()@weights implements Fisher scoring entirely. And it handles observations whose fitted values are (relatively) large and positive; thanks to Victor Champonnois for picking up this bug. o S3 methods function df.residual_vlm() also called by df.residual.vlm(). This is to avoid a bug picked up by car::linearHypothesis(). Ditto for vcovvlm() by vcov.vlm(). Also model.matrix() and formula(). Thanks to Michael Friendly and John Fox for help here. CHANGES IN VGAM VERSION 0.9-8 NEW FEATURES o Tested okay on R 3.2.0. o is.buggy() tests to see if a fitted VGAM object suffers from known bugs, e.g., a vgam() object with at least one s() term whose constraint matrix does not have orthogonal columns. o New family function: AR1(d). o New function: dgenpois(). o The package has been updated to reflect the new J. Stat. Soft. paper by Yee, Stoklosa and Huggins. A vignette based on this paper is now included. o dgenbetaII() has now been written; and genbetaII() improved, and about 8 special cases of genbetaII() have all been modernized to handle multiple responses and a default grid search over all the parameters (arguments 'gscale' and 'gshape1.a', etc.). These families are based on Kleiber and Kotz (2003). BUG FIXES and CHANGES o Family function genpoisson() has been modernized, and should give correct results wrt AIC() etc. o Argument 'init.alpha' renamed to 'ialpha', for the brat(), bratt(), and dirmul.old() families. o Calls to N.hat.posbernoulli() used Hlist = constraints rather than Hlist = Hlist; this failed for RR-VGLMs. o Family function tobit() obtains initial values even in the case when it would otherwise fit an underdetermined system of equations. Thanks to McClelland Kemp for picking this up. CHANGES IN VGAM VERSION 0.9-7 NEW FEATURES o Tested okay on R 3.1.2. o linkfun() and nparam() are new generic functions. o betabinomialff() replaces 'lshape12' with 'lshape1' and 'lshape2'. Arguments 'i1' and 'i2' are now 'ishape1' and 'ishape2'. o ABO() has more arguments. o Arguments lower.tail and log.p have been added to quite a few pq-type functions (work done by Kai Huang). BUG FIXES and CHANGES o Argument 'mv' has been renamed to 'multiple.responses'. This applies to about 10 family functions such as binomialff(). o Argument 'lss' added to betaII(), dagum(), fisk(), genbetaII(), inv.paralogistic(), paralogistic(), sinmad(). Note that the order of the arguments of these functions will change in the near future, and consequently the order of the parameters. The [dpqr]-type functions of all these distributions have arguments that have been rearranged. o All d-type functions handle 'x = Inf' and 'x = -Inf'. Much help from Kai Huang here. Thanks to Ott Toomet for alerting me to this type of bug. o vsmooth.spline() has 2 argument name changes, and a little reordering of its arguments. o More p-type functions handle 'q = Inf' and 'q = -Inf'. More q-type functions handle 'p = 0' and 'p = 1'. Much help from Kai Huang here. o AA.Aa.aa() and A1A2A3() handled 'inbreeding' the wrong way round. o pposnorm() returned wrong answers. o ptobit(log.p = TRUE) was incorrect, as well as some other bugs in [dpqr]tobit(). The dtobit(Lower) and dtobit(Upper) have changed. o negbinomial() now computes the EIM wrt the 'size' parameter based on a finite approximation to an infinite series (provide the mu and size parameter has values lying in a certain range). This may be time- and/or memory-hungry, but the user has control over this via some arguments such as max.mu, min.size and chunk.max.MB. o Renamed functions: elogit() is now called extlogit(), fsqrt() is now called foldsqrt(). CHANGES IN VGAM VERSION 0.9-6 NEW FEATURES o All r-type functions handle the 'n' argument the same way as runif(). This was done with the help of Kai Huang. BUG FIXES and CHANGES o Slot "res.ss" changed to "ResSS". o Some argument reference errors found by valgrind have been fixed. CHANGES IN VGAM VERSION 0.9-5 NEW FEATURES o Tested okay on R 3.1.2. o New argument 'lss' appears on some family functions. This is important because it changes the order of the parameters. o New functions: QR.Q(), QR.R(), [pq]rice() (thanks to Benjamin Hall for pointing that these are based on the Marcum-Q function). o exponential() has a new loglikelihood slot. Thanks to Neyko Neykov for picking this up this omission. o Constraint matrices in process.constraints() are checked that they are of full column-rank. o New family functions: better.exponential(), polyaR(). o New functions: qvplot() is preferred over plotqvar(), [dpqr]levy(). o summary() applied to a "vglm" object now prints out the table of estimates, SEs, test statistics and p-values very similarly to glm() objects. In particular, two-tailed p-values in the 4th column are new; these correspond to the z ratio based on a normal reference distribution. o gev(), egev(), and gpd() have a 'type.fitted' argument, which should be set to "mean" if the mean is desired as the fitted values. gpd() has a stop() if the data is negative. o AA.Aa.aa() and A1A2A3() have a 'inbreeding = TRUE' argument. If 'inbreeding = TRUE' then an extra parameter is estimated. If 'inbreeding = FALSE' then the inbreeding coefficient is 0 by definition, and not estimated. G1G2G3() is now renamed to A1A2A3(). o Decommissioned VGAM family functions: AAaa.nohw(), matched.binomial(). o deviance() applied to a "qrrvglm" or "rrvgam" object now has a 'history' argument. o binomialff(mv = TRUE) is no longer restricted to responses having 0 and 1 values. o New data sets: flourbeetle. o The 'constraints' argument accepts a list with functions as components, that compute the constraint matrices. BUG FIXES and CHANGES o Renamed the order of arguments and linear predictors (now, 'location'-type precedes 'scale'-type, and 'scale'-type precedes 'shape'-type parameters): benini1(dpqr) bisa(dpqr) gumbelII(dpqr) makeham(dpqr) nakagami(dpqr) perks(dpqr) riceff(dpqr) genrayleigh(dpqr) expexpff1(), expexpff() exppoisson(dpqr) gammaR() o Renamed parameter names: poissonff() has "lambda", not "mu", binomialff() has "prob", not "mu". o Renamed functions: plot.vgam() plots "vgam" objects, not plotvgam(). Use plot(as(vglmObject, "vgam")) to plot vglm() objects as if they were vgam() objects. plot.vgam(): the user has total control over 'xlim' and 'ylim' if specified. o Renamed functions: cm.zero.vgam() has become cm.zero.VGAM(), cm.nointercept.vgam() has become cm.nointercept.VGAM(), cm.vgam() has become cm.VGAM(), process.categorical.data.vgam to process.categorical.data.VGAM, process.binomial2.data.vgam to process.binomial2.data.VGAM. o Link loge() returns "loge" as its tag, not "log" anymore. o Class "cao" changed to "rrvgam". o dbilogis4() was faulty. o Renamed arguments: 'location' is now 'scale' in [dpqr]pareto(), and paretoff(). o gev() and egev() handle working weights better when sigma is close o gev(zero = 3) has changed to gev(zero = 2:3), by default, and egev(zero = 3) has changed to egev(zero = 2:3), by default. That is, only the location parameter is now modelled as functions of covariates, by default; the scale and shape parameters are intercept-only. o bigamma.mckay(zero = 1) has changed to bigamma.mckay(zero = 2:3), by default. o rlplot() works for gev() model fits now. o Renamed functions: subsetc() has become subsetcol(), my1 has become sc.min1(), my2 has become sc.min2(), stdze1() has become sc.scale1(), stdze2() has become sc.scale2(), mlogit() has become multilogit(). o Decommissioned VGAM family functions: AB.Ab.aB.ab2() o Renamed VGAM family functions: OLD NAME: NEW NAME: amh() biamhcop() bigumbelI() bigumbelIexp() fgm() bifgmcop() gammahyp() gammahyperbola() morgenstern() bifgmexp() plackett() biplackettcop() benini() benini1() cgumbel() cens.gumbel() cenpoisson() cens.poisson() cennormal() cens.normal() double.cennormal() double.cens.normal() recnormal() rec.normal() recexp1() rec.exp1() invbinomial() inv.binomial.exp1() invlomax() inv.lomax.exp1() invparalogistic() inv.paralogistic.exp1() koenker() sc.studentt2() frechet2() frechet() hypersecant.1() hypersecant01() gengamma() gengamma.stacy() beta.ab() betaR() betabinom.ab() betabinomialR() gamma2.ab() gammaR() [see note about reordered arguments] logistic2() logistic() lgammaff() lgamma1() lgamma3ff() lgamma3() SUR() SURff() expexp() expexpff() expexp1() expexpff1() weibull() weibullR(lss = FALSE). Also 'zero' has changed. o Functionality has changed: weibull() weibullR(lss = FALSE). Also 'zero' has changed. o Data sets renamed: mmt renamed to melbmaxtemp. o lms.bcn(): changes in the arguments. o [log]alaplace[123](): changes in the arguments, e.g., 'parallelLocation' changed to 'parallel.locat'. o Argument 'reference' has been changed to 'refResponse' for CQO objects. o Argument 'shrinkage.init' has been changed to 'ishrinkage'. o Argument 'matrix.arg = TRUE' has been changed to 'drop = FALSE' in fittedvlm(). o Bug in dbort(). Thanks to Benjamin Kjellson for picking this up. o vglm.control()$save.weight changed to vglm.control()$save.weights. vgam.control()$save.weight changed to vgam.control()$save.weights. o "ccoef" has been replaced by "concoef". o Some documentation regarding qvar(se = TRUE) was wrong. o Argument "alpha" in several bivariate distributions have been replaced by "apar", for association parameter. o Arguments "optima" replaced by "optimums", "maxima" replaced by "maximums", "logmaxima" replaced by "log.maximums". o Function getMaxMin() renamed to grid.search(). o lognormal3() withdrawn. o dfbeta() returns the difference between the coeffs. o negbinomial(deviance = TRUE) works when fitting the NB-2, provided criterion = "coef" or half.step = FALSE. o Argument "a" replaced by "rate" in maxwell(dpqr). o Arguments "x1" and "x2" replaced by "q1" and "q2" in pbinorm(). CHANGES IN VGAM VERSION 0.9-4 NEW FEATURES o New data sets: cfibrosis, lakeO, wine. o New functions: Select(). o negbinomial(deviance = TRUE) works, provided criterion = "coef" is used too. o simulate() works with binomialff(), poissonff(), rayleigh() and several other families. See help(simulate.vlm) for a current listing. o coef(colon = FALSE) works for VLM objects. o pslash() has a 'very.negative = -4' argument. Thanks to Tiago Pereira for picking this up. o Some family functions have a 'summation = TRUE' argument in the loglikelihood slot. Can be accessed using, e.g., logLik(fit, summation = FALSE). See ?logLik.vlm. Similarly for deviance(fit, summation = FALSE). o Tested okay on R 3.1.0. BUG FIXES and CHANGES o bs(), ns(), scale() and poly() are no longer smart, but they will handle simple terms such as bs(x) and scale(x). The smart version of those functions have been renamed to sm.bs(), sm.ns(), sm.scale(), sm.poly(); these will handle complicated terms such as sm.bs(sm.scale(x)). o Renamed functions: identity() has become identitylink(). o Argument names changed: 'ITolerances' renamed to 'I.tolerances' thoughout, 'EqualTolerances' renamed to 'eq.tolerances' thoughout. o Bug in mix2normal() fixed in @initialize. Thanks to Troels Ring for finding the bug. o Upon loading the package, no warnings (such as masking) is given. o multinomial(parallel = TRUE) now applies the parallelism constraint to the intercept. o If a factor response is ordered then a warning is issued for multinomial(). o predict(fit, newdata = zdata2, type = "response") used to fail for z[ai][poisson][,ff]() and z[ai][negbinomial][,ff]() families. Thanks to Diego Nieto Lugilde for picking this up. o A bug with offsets and coefstart has been fixed. Thanks to Giuseppe Casalicchio for picking this up. o Variables "Blist" replaced by "Hlist". o Expression new.s.call no longer used in vglm.fit() and vgam.fit(). Musual has been replaced by M1. o Variable names changed: prinia, Huggins89table1, Huggins89.t1. o Memory leaks found by valgrind have been patched. CHANGES IN VGAM VERSION 0.9-3 NEW FEATURES o New argument: posbinomial(omit.constant = FALSE), set to TRUE if comparing M_0/M_h models with M_b/M_t/M_tb/M_bh/M_th/M_tbh. o rcim() works with family = multinomial; in conjunction with arguments M and cindex to be specified. rcim() also had additional arguments and new defaults. o New arguments: positive Bernoulli functions have 'p.small' and 'no.warning' arguments. o AICc() is new. o family.name() generic is new. o New data sets: prinia. o logLik() methods function for "qrrvglm" objects. AIC() methods function for "qrrvglm" objects is corrected. AIC() methods function for "cao" objects is new. BUG FIXES and CHANGES o vgam() with nontrivial constraints is giving incorrect predict(vgam.object) and fitted(vgam.object). Not yet fixed up but will try soon! Thanks to Zachary Kurtz for picking this up. o Argument 'which.lp' changed to 'which.linpred'. Argument 'which.eta' changed to 'which.linpred'. Argument 'lapred.index' changed to 'linpred.index'. Argument 'whichSpecies' changed to 'which.species'. Argument 'plot.it' changed to 'show.plot'. Argument 'intervalWidth' in plotqvar() changed to 'interval.width'. o Decommissioned VGAM family functions: cennormal1(). o posbinomial() returns @extra$N.hat and @extra$SE.N.hat if the number of trials is constant across observations. o calibrate() restored to working order. o Argument names changed: 'szero' renamed to 'str0' thoughout, 'allowable.length' renamed to 'length.arg' in is.Numeric(). o Function uqo() has been withdrawn. Reasons: (i) It needs to be rewritten in C but unfortunately am too busy... (ii) It is a very difficult optimization problem, probably too difficult to solve in general efficiently. o Arguments in rcqo() have changed. o Data set Perom withdrawn, but deermice remains. o Argument 'zero' in binom2.or() had a bug. CHANGES IN VGAM VERSION 0.9-2 NEW FEATURES o New family functions: logF(d), biclaytoncop(dr), binormalcop(dp), bistudentt(d), and a basic normal.vcm(), zabinomialff(), zageometricff(), zanegbinomialff(), zapoissonff(), zibinomialff(), zigeometricff(), zinegbinomialff(). o cao.control()suppress.warnings == TRUE is new, and it suppresses warnings (esp. lack of convergence) by default. o The convergence criterion now takes into consideration the sample size, somewhat. It should stop premature convergence for very large data sets. o New functions: dpois.points(), log1pexp(), expint(), expexpint(), expint.E1(), dbinorm(), rbinorm(), kendall.tau(), qvar(). Also, depvar(type = c("lm", "lm2")) has a 'type' argument. Also, aux.posbernoulli.t() is new. o New link functions: logneg(). o New data sets: beggs, corbet, deermice, machinists, prats, V1. o Argument 'form2' added to vgam(), so vgam.fit() has been modified too. o posbernoulli.tb() seems correct, and works for any number of sampling occasions. And posbernoulli.[b,t,tb]() have more argument choices. o BIC() is now available, it is based on AIC(..., k = log(nobs(object))). But users need to use it with care. Also, AICvlm() has a 'corrected = FALSE' argument. o fittedvlm() now has a 'type.fitted' argument that allows different fitted values to be computed from a vglm()/vgam() object. Several family functions such as zi*() [e.g., zipoisson()] and za*() [e.g., zapoisson()] have a 'type.fitted' argument that matches it. BUG FIXES and CHANGES o Default arguments have changed, esp. wrt 'zero' for: zibinomial(), zinegbinomial(). o cao() used to crash due to memory problems and segment faults. o Syntax such as parallel = TRUE ~ 1 is now supported. Hence argument 'apply.parint' has been removed. o posbernoulli.b() has a new and superior parameterization, & faster . o Printed output when trace = TRUE has been improved, especially for large data sets. o For ordination methods "lv" has been generally replaced by "latvar". "latvar()" is supported, "lv()" will become fully deprecated soon. But "lvplot()" is retained. Also, this applies to most argument names and list component names returned, e.g., OLD NAME: NEW NAME: isdlv isd.latvar varlvI varI.latvar lvOrder latvar.order OptimumOrder Optimum.order maxfitted max.fitted SD.Ainit sd.Ainit SD.Cinit sd.Cinit SD.sitescores sd.sitescores o For ordination methods "ccoef" has been generally replaced by "concoef". This applies to most methods functions. Attributes have changed too, from "ccoefficients" to "con.coefficients". o VGAM now suggests \pkg{VGAMdata}. o Renamed VGAM family functions: OLD NAME: NEW NAME: normal1() uninormal() bivgamma.mckay() bigamma.mckay() cennormal1() cennormal() dcennormal1() double.cennormal() dexpbinomial() double.expbinomial() explogarithmic() explogff() frank() bifrankcop(dpr) [dpr]frank() [dpr]bifrankcop() fnormal1() foldnormal() [dpqr]fnorm() [dpqr]foldnorm() gumbelIbiv() bigumbelI() mbinomial() matched.binomial() mix2normal1() mix2normal() mix2normal1.control() mix2normal.control() nidentity() negidentity() normal1() uninormal() nloge() negloge() pnorm2() pbinorm(dpr) pareto1() paretoff() poissonp() poisson.points() powl() powerlink() recnormal1(d) recnormal() rig() rigff() skewnormal1() skewnormal() [dr]snorm() [dr]skewnorm() tpareto1() truncpareto() wald() waldff() o Decommissioned functions: OLD NEW dnorm2() dbinorm() pnorm2() pbinorm() o Renamed internal functions: OLD NEW lv.cao() latvar.cao() o Renamed arguments: OLD NEW equalsd eq.sd o Internally, variables identifiers with "_" have been replaced by a ".", e.g., X_vlm becomes X.vlm. Saved component names follow this change too, e.g., @extra$ncols_X_lm becomes @extra$ncols.X.lm. o Improved: fgm() has its explicit EIM programmed in. o summary() applied to a "rcim0" or "rcim" object now works. o Family functions which have changed: zigeometric(). o Slotname "rss" changed to "res.ss". o zinegbinomial()@weight continues to use Fisher scoring until not all the random variates are zeros or nonzeros. o loglinb2(zero = 3) and loglinb3(zero = 4:6) are defaults now (used to be zero = NULL). o Data sets moved: wffc, wffc.nc, etc. moved to \pkg{VGAMdata}. o stats::print.anova() no longer called directly by lrtest(). CHANGES IN VGAM VERSION 0.9-1 NEW FEATURES o A companion package, called \pkg{VGAMdata}, is new. Some large data sets previously in \pkg{VGAM} have been shifted there, e.g., xs.nz and ugss. In \pkg{VGAMdata} there is (new) oly12 and students.tw. o pnorm2() argument names have changed from 'sd1' to 'var1', etc. and 'rho' to 'cov12'. See documentation. Warning given if it returns any negative value. o Introduction of g-type arguments for grid search. o Improved initial values for: lomax(). o Argument 'bred' works for poissonff(). o latvar() generic available, identical to lv(). But the latter will be withdrawn soon. o Rank() generic available for RR-VGLMs, QRR-VGLMs, CAO models. o New function: pgamma.deriv(), pgamma.deriv.unscaled(), vlm2lm.model.matrix(). o New VGAM family functions: posbernoulli.b(), posbernoulli.t(), posbernoulli.tb(tau = 2 or 3). These provide estimates of N as well as its standard error. Also, truncgeometric() and truncweibull() are new. Also, SUR() is new. Also, binom2.rho.ss() does not work yet. o New argument 'matrix.out = FALSE' for constraints.vlm(). o cm.vgam() has a few more arguments to provide more flexibility. But there should be no changes for VGAM users at this stage. o Renamed functions: confint_rrnb() is now renamed to Confint.rrnb() and confint_nb1() is now renamed to Confint.nb1(). o Some changes to component names returned by Confint.rrnb() and Confint.nb1(): $CI. and $SE. are uppercase. o Some zero-inflated VGAM family functions return a "vglm" object with @misc$pstr0 for the estimated probability of a structural zero. o New data set: olym12. Note that Students.tw is earmarked for \pkg{VGAMdata}. o Data sets renamed: olympic renamed to olym08. o Qvar() has a 'which.eta = 1' argument specifying which linear predictor to use. So quasi-variances are now available to models with M > 1 linear predictors. o Tested okay on R 3.0.0. BUG FIXES and CHANGES o VGAM now depends on R >= 2.15.1. o Fortran array bounds problems (picked up by AddressSanitizer) have been fixed. o All "no visible binding for global variables" warnings have been suppressed. o vgam() with a s(spar = myspar) term should run, and if myspar is extracted from a previous vgam() model then the two models should effectively be the same. o summaryvgam() did not calculate or print out all the p-values for testing linearity. o fnormal1()@initialize was faulty wrt lm.wfit(). o zageometric() and zigeometric() handle multiple responses. o mlogit(inverse = TRUE) and mlogit(inverse = FALSE) were switched. Now multinomial() makes use of mlogit(). mlogit() now calls care.exp() to avoid overflow and underflow; this stops multinomial() from returning a NA as a fitted value if abs(eta) is very large. o arwz2wz() introduced to simplify multiple responses working weight matrices (wrt construction). o Renamed functions: dhuggins91() is now dposbern(), huber() is now huber2(), ei() is now eifun(), eij() is now eijfun(), rss.vgam() is now ResSS.vgam(). o fisherz(theta) was wrong. Corrected, then replaced by atanh(theta). o [dpq]dagum(x), [dpq]lomax(x), [dpq]sinmad(x), etc. handled correctly for x = 0, Inf, -Inf, NaN, NA. o qdagum(x) failed due to 'Scale' [thanks to Alena Tartalova]. o Arguments renamed: 'intercept.apply' renamed to 'apply.parint', 'Norrr' renamed to 'noRRR' (warning/error message issued), 'nowarning' renamed to 'noWarning' in vglm.control(). o seq2binomial()@loglikelihood includes the binomial lchoose() constants. o qgev() bug [thanks to Alex Cannon], and qgpd(). o cao() produces less error/warning messages usually. o Data sets corrected for errors: chinese.nz. o Data set changes: gew had incorrect y1 and y2 values, and variables x1 to x4 have been renamed to value.g, capital.w, etc. The year variable has been added. CHANGES IN VGAM VERSION 0.9-0 NEW FEATURES o Major change: VGAM family functions no longer have arguments such as earg, escale, eshape, etc. Arguments such as offset that used to be passed in via those arguments can be done directly through the link function. For example, gev(lshape = "logoff", eshape = list(offset = 0.5)) is replaced by gev(lshape = logoff(offset = 0.5)). The @misc slot retains the $link and $earg components, however, the latter is in a different format. Functions such as dtheta.deta(), d2theta.deta2(), eta2theta(), theta2eta() have been modified. Link functions have been simplified somewhat. The casual user will probably not be affected, but programmers will. Sorry about this! o New VGAM family functions: [dpqr]gompertz(), [dpqr]gumbelII(), [dpr]lindley(), [dpqr]makeham(), [dpqr]perks(). o df.residual() supports a new formula/equation for 'type = "lm"'. o garma("reciprocal") supported. o is.parallel() for constraint matrices summary. o Improved family functions: these can handle multiple responses: benini(), chisq(), erlang(), exponential(), gamma1(), geometric(), gpd(), inv.gaussianff(), logff(), maxwell(), rayleigh(), yulesimon(), zetaff(). o New data set: hormone [http://www.stat.tamu.edu/~carroll/data/hormone_data.txt]. o If a factor response is not ordered then a warning is issued for acat(), cratio(), cumulative() and sratio(). o New dpqr-type functions: [dpqr]perks(), [dpqr]mperks(), [dpqr]mbeard(). o Argument 'parallel' added to gamma2(). o New link functions: mlogit(). BUG FIXES and CHANGES o zibinomial() had 1 wrong element in the EIM; one of the corrections of VGAM 0.8-4 was actually incorrect. o zibinomial() blurb was wrong: previously was "(1 - pstr0) * prob / (1 - (1 - prob)^w)" where prob is the mean of the ordinary binomial distribution. Now is "(1 - pstr0) * prob". o betaff() no longer has "A" and "B" arguments; they ar extracted from "lmu = elogit(min = A, max = B)". o binom2.rho() has "lmu" as a new argument 2. o logistic2() has has zero = -2 as default, and can handle multiple responses. o gengamma() returned the wrong mean (picked up by Andrea Venturini): not b * k but b * gamma(k + 1 / d) / gamma(k). o tobit.Rd nows states vector values for 'Lower' and 'Upper' are permitted. Also, the @misc$Lower and @misc$Upper are matrices of the same dimension as the response. o constraints.vlm(type = c("vlm", "lm")) has been changed to constraints.vlm(type = c("lm", "term")) [respectively]. o Rcam() renamed to Rcim(), and rcam() renamed to rcim(). Class "rcam" changed to "rcim". o Days changed from "Monday" to "Mon" in all crash data frames, etc. o w.wz.merge() written to handle the working weights for multiple responses. w.y.check() written to check the integrity of prior weights and response. o Argument 'sameScale' changed to 'eq.scale', 'quantile.probs' in negbinomial-type families changed to 'probs.y'. o No more warnings: dirmultinomial(). o Renamed arguments: benini(earg <- eshape), binormal(equalmean <- eq.mean), binormal(equalsd <- eq.sd), o dirmultinomial() can handle a 1-row response [thanks to Peng Yu]. o weibull() gives improved warnings re. the shape parameter wrt regularity conditions. o The 12 most time-consuming examples have been placed in a \dontrun{} to save time. o Argument "prob.x" renamed to "probs.x". o Argument "hbw" removed from iam(). o Argument 'name' is passed into .C and .Fortran() [in dotC() and dotFortran()] is now okay because the first argument is unnamed. CHANGES IN VGAM VERSION 0.8-7 NEW FEATURES o Modified VGAM family functions: genbetaII()@initialize has been improved, as well as those special cases of that distribution (such as sinmad, lomax, paralogistic, dagum, etc.). o Argument 'lapred.index' added to model.matrix(). o npred() is now defined as a generic function (returns M). o hatvalues() and hatplot() written for vglm() objects. o The argument 'qr.arg' is set TRUE now by default in vglm(). o df.residual() supports the argument 'type = c("vlm", "lm")'. o Argument 'nowarning' added to vglm.control(). o New data set: ucberk. o Improved functions: rposbinom(), rposgeom(), rposnegbin(), rpospois(). o Tested okay on R 2.15.0. BUG FIXES and CHANGES o Labelling of the linear predictors for sratio(), cratio() etc. was faulty. o pbetabinom.ab() did not recycle shape1 correctly [found by David Venet]. o Arguments lower.tail and log.p not supported (temporarily) in pposbinom() and qposbinom(). CHANGES IN VGAM VERSION 0.8-6 NEW FEATURES o Modified VGAM family functions: sinmad()@initialize has been improved. BUG FIXES and CHANGES o VGAM now depends on R >= 2.14.0. o Trying to eliminate some residual errors with the NAMESPACE. CHANGES IN VGAM VERSION 0.8-5 NEW FEATURES o New VGAM family functions: negbinomial.size(), zabinomial(dpqr), zageometric(dpqr), [dpqr]posgeom(). o New link functions: nbcanlink(). o Modified VGAM family functions: posnegbinomial(), zanegbinomial() and zinegbinomial() use the nsimEIM argument; zipoisson() handles a matrix response; all [dpqr]zi-type functions handle zero-deflation, normal1() can model the variance too as the 2nd parameter. o Rudimentary methods functions for lrtest() and update(), based on packages lmtest and base. o The VGAM family functions for genetic models have been improved wrt initial values. o New data sets: xs.nz. BUG FIXES and CHANGES o In anticipation for R version 2.15.0, VGAM imports from stats4 'coef', 'plot', 'summary', 'vcov'. Calls to 'print' have been replaced by 'show' since VGAM uses S4 methods. Numerous NAMESPACE changes have been made. No more warnings during checking and installation! o Labelling in summary() of vglm() objects changed. It now closely follows glm(). In particular, it has changed from c("Value", "Std. Error", "t value") to c("Estimate", "Std. Error", "z value"). Note that "z value" might change later to, e.g., "Wald". o Zero-inflated and zero-altered functions have renamed and reordered arguments. Ouch! These include 'pstr0' for probability of a structural 0 [zero-inflated], and 'pobs0' for probability of an observed 0 [zero-altered]. For example, argument lpstr0 replaces lphi in zipoisson(). The order of these arguments, including the respective dpqr-type functions, may have changed too. o zapoisson() now implements Fisher scoring. o zipoissonff() had the wrong sign for the non-diagonal EIM element. o nobs() is now defined as a generic function (needed for older versions of R---versions 2-12.2 or earlier, actually). o Data sets renamed: uscrime and usgrain renamed to crime.us and grain.us; bminz renamed to bmi.nz, nzc renamed to chinese.nz, nzmarital renamed to marital.nz. o Improved family functions: genbetaII(), betaII(), sinmad(), dagum(), lomax(), invlomax(), fisk(), invparalogistic(), paralogistic(); wrt fitted values (range checks in place now). These functions have many argument names changed, e.g., link.a is now lshape1.a, init.a is now ishape1.a. Also, some default initial values have changed from 1 to 2. o Argument names changed (Ouch!): q.lag.ma changed to q.ma.lag in garma(). CHANGES IN VGAM VERSION 0.8-4 NEW FEATURES o VGAM family functions renamed (Ouch!): 1. 'betabinom.ab' renamed to 'betabinomial.ab'. o Other functions renamed (Ouch!): 1. '[dpr]betabin' renamed to '[dpr]betabinom' etc.; 2. '[dpr]betabin.ab' renamed to '[dpr]betabinom.ab' etc.; o Slot names changed (Ouch!): 1. 'link' renamed to 'linkfun' for class "vglmff"; 2. 'inverse' renamed to 'linkinv' for class "vglmff". o Extra arguments added to freund61(). o New VGAM family functions: abbott(), zigeometric(dpqr), huber1(). o New functions: [p]polono(), depvar() generic for the dependent (response) variable, Qvar() and explink() for quasi-variances. o Improved functions: [d]polono(), [dr]betabin() handles rho = 0 (suggested by Peng Yu). o Improved family functions: normal1() handles matrix 'weights'. o Defaults changed: [dr]betabin(rho = 0). o New methods functions: nobs(), nvar(), depvar(). o Renaming: fitted.vlm() is now fittedvlm(), persp.qrrvglm() is now perspqrrvglm(), predict.qrrvglm() is now predictqrrvglm(), predict.vglm() is now predictvglm(). o New data sets: finney44. o VGAM now depends on R >= 2.11.1. o Tested okay on R 2.14.0. BUG FIXES o zibinomial() had 2 wrong elements in the EIM, thanks to Alan Welsh for picking this up. o margeff() for cumulative() was faulty. o blurb slot of binormal() was faulty. o betabinomial() did not return the estimated rho in @misc$rho as did betabinomial.ab(). o kumar() did not initialize well with non-integer prior weights. o rdagum() did not handle the 'scale' argument correctly. o codes() in s() is defunct so it has been replaced. CHANGES IN VGAM VERSION 0.8-3 NEW FEATURES o Argument names changed (Ouch!): 1. 'method.init' renamed to 'imethod'; 2. 'k' renamed to 'size' in negbinomial(), zanegbinomial(), posnegbinomial(), and zinegbinomial(): e.g., 'lk' renamed to 'lsize', 'ik' renamed to 'isize', etc. o New data sets: hued, huie, huse, ugss, uscrime; usagrain renamed to usgrain. o The "prior.weights" slot is now a "matrix", not "numeric". o [dpr]betabin.ab() now handles size = 0. Thanks to Robert Wolpert for picking up this bug. o New VGAM family functions: [d]binormal(), [dr]huggins91() but this is not working properly, [dpqr]explogarithmic(), polya(). o New functions: [dpqr]tobit(). o Improved family functions: tobit() implements the proper EIM for the standard model, dcennormal1() has some new arguments [and renamed], cennormal1(), cenrayleigh() renamed. o VGAM now depends on R >= 2.10.0. o Rcam(), moffset(), etc. for RCAMs have been improved and modified. o VGAM family functions currently withdrawn: frechet3(). o Tested ok on R 2.13.0. BUG FIXES o tobit()@loglikelihood had omitted the constant in dnorm(). Also, tobit() uses simulated Fisher scoring (for nonstandard model). o moffset() was buggy. o ABO() is a little more robust. o dirichlet()@loglikelihood miscalculated. Ditto for gaussian()@loglikelihood (constants were omitted). Thanks to Arne Henningsen for picking up these bugs. o zipoissonff() did not initialize correctly and labelling was wrong with matrix responses. CHANGES IN VGAM VERSION 0.8-2 NEW FEATURES o Objects of class "vglmff" have a "infos" slot to give information about the family. o New functions: lambertW(), rcam(), wffc.P3(), wffc.P3star(), confint_rrnb(), confint_nb1(). o New VGAM family functions: binom2.Rho(), [dpqr]expgeometric(), [dpqr]genrayleigh(), [dpqr]huber(), [dpqr]koenker(), studentt[23](), zipoissonff(). o Argument 'imethod' changed to 'method.init' for some families, e.g., cnormal1(), tobit(), weibull(). o Improvements have been made to binom2.rho(). o Improved family functions: negbinomial() has a new argument 'parallel', micmen() has more initial value choices and fitting algorithms, kumar(), studentt() and studentt2() now implement the EIM, normal1() can handle multiple responses. o Argument names changed: 'init.rho' renamed to 'irho' in binom2.rho(), 'a' renamed to 'scale' in rayleigh(), 'Structural.zero' renamed to 'szero' thoughout. o zapoisson() permutes the linear/additive predictors. o Several families such as negbinomial(), z[ai]negbinomial(), zapoisson(), gamma2(), handle zero = c(-2, 3), say, i.e., negative and positive values. o New data sets: about half a dozen road crash data frames of 2009 NZ data. o constraints(vglmfit) now has a 'type' argument that can be fed into the original fit (type = "lm") as the constraints argument. o vchol() takes drastic action to avoid infinite looping: it sets the working weights to be proportional to the order-M diagonal matrix. o lognormal() and lognormal3() now have zero = 2 as the default (was zero = NULL). o Some variable names within grc() changed, e.g., Row. and not Row. o The smartpred package within VGAM has updated poly(), ns(), bs() and scale() for R version 2.12.0 (2010-10-15). Calls to smartpredenv are now VGAM:::smartpredenv. BUG FIXES o VGAM:::VGAMenv is used now to avoid problems locating this environment. o Input of the mustart, etastart and coefstart arguments at the solution should results in only one iteration being needed. o binomialff() and categorical familes (e.g., multinomial) only accept a factor or non-negative counts as the response. This allows the 'weights' vector to have any value really. In the past the denominator of a sample proportion was allowed via the 'weights' argument. o wffc.P1() had some rounding problems, e.g., with 0.280 m. CHANGES IN VGAM VERSION 0.8-1 NEW FEATURES o Most of the Fortran 77 code has been converted to C. This change will be largely hidden from most users but there may be the occasional bug not detected. Much of the heavy work was done by Alvin Sou. o lms.bcn()@loglikelihood incorporates the constants in the log-likelihood. o Also, no more F90 code! This means less portability/platform problems. o bivgamma.mckay, formerly mckaygamma2(), has been modified substantially. o Improvements have been made to simplex() and [dr]simplex() have been written. o Expectile functions for the uniform, normal and exponential distributions: [dpqr]-type functions. o cqo() has EqualTolerances = TRUE and ITolerances = FALSE as the default now. The result is that cqo() should work without the environmental variables being scaled. If it is scaled then setting ITolerances = TRUE will result in greater speed and requiring less memory. o Families that deal with proportions, such as binomialff() and betabinomial(), incorporate weights separately from the weights generated by the response/counts. So the weights argument can now have any positive values. o rrvglm(..., Norrr = NULL) can be used so that the reduced-rank regression is applied to every variable including the intercept. o Renaming: ggamma() is now gengamma(), etc. o Improved functions: negbinomial() has a few new arguments. BUG FIXES o Deviance.categorical.data.vgam did not handle small fitted probabilities. o binom2.rho() could produce small negative fitted probabilities. o seq2binomial() did not initialize 'mvector'. o zeta() crashed on some platforms. o cqo() appears to be working again with the new C code. o cao() still not working with the new C code. o zapoisson() did not implement the elambda argument correctly. o Tested ok on R 2.11.1. CHANGES IN VGAM VERSION 0.7-10 NEW FEATURES o Surv() renamed to Surv4(), class "SurvS4" renamed to "Surv4". o coef(summary(vglmObject)) returns a 3-column matrix of estimates, standard errors and Wald statistics, rather than coef(vglmObject) in the past. o Improved VGAM family functions: fff() uses simulated Fisher scoring now and has slightly better initial values. o New VGAM family functions: propodds(reverse) is equivalent to cumulative(parallel=TRUE, reverse=reverse) (for convenience only). o Compatible with R 2.10.1 and the article "The VGAM package for categorical data analysis," Journal of Statistical Software, 2010. A vignette based on this paper is included. o Argument w.als renamed to w.aml in amlnormal(). BUG FIXES o VGAM family functions: fff() had poor initial values. o betabinomial()@loglikelihood required 'ycounts' to be integer. o [dpqr]betanorm() were written but not in the NAMESPACE. CHANGES IN VGAM VERSION 0.7-9 NEW FEATURES o New functions: margeff() for marginal effects of a vglm() "multinomial" or "cumulative" model. o Almost all VGAM family functions now have a "loglikelihood" slot that incorporates any constants in the density function. Hence the fitted likelihood may differ by a constant from previous results. In particular, models such as multinomial(), cumulative() and binom2.or() have this new feature. o vglm() now has a modified 'xij' argument which implements eta-specific covariates. Usage now involves the form2' argument, and the 'xij' argument does not interfere with constraint matrices. Documentation is supplied on the VGAM website, in particular, http://www.stat.auckland.ac.nz/~yee/VGAM/doc/xij.pdf o cases.names() and variable.names() methods functions written for vglm()/vgam() objects. o cumulative() has improved initial values, especially for long data format, i.e., when each row of the data frame is an observation rather than inputting a matrix of counts. o rrvglm() handles a factor response without giving a warning. o New data: olympic. o testf90.f90 has been renamed to testf90.f95. This may decrease the incidences of compiler problems on some platforms (f95 seems more popular than f90). o For cqo() objects: AIC(), resid() have been written. o Improved functions: negbinomial() default initial values are more robust to outliers in the response, betabinomial() and betabin.ab() have better initialization and "loglikelihood" slot matches dbetabin.ab(log=TRUE). o Renamed VGAM family functions: alsqreg() becomes amlnormal(). o Renamed arguments: lmu replaces link.mu in zibinomial(). o dzeta(p) has changed wrt 'p'. o The functions summary.lms() and summary.rc.exponential() are no longer distributed to avoid a warning wrt S3 vs S4 methods dispatch. o The VGAM family functions for genetic models have been improved, e.g., some basic error checking. Also some changes in the names of the parameters, e.g., "q" to "pB" for ABO(), plus some switching of the order of the arguments. BUG FIXES o VGAM interferes much less in regard to generic functions such as predict(), fitted(), resid(), wrt other packages and also including base's lm(), glm(), etc. o AIC() method for rrvglm() objects was wrong (did not account for argument 'Structural.zero'). o dzibinom(log=TRUE) was wrong. CHANGES IN VGAM VERSION 0.7-8 NEW FEATURES o [dpqr]benf() written for Benford's distribution. o plog() and dlog() improved. o multinomial() now has a refLevel argument to specify the reference or baseline level of the factor. o binom2.or() has a new argument 'morerobust'. o Renamed arguments in mix2normal1(). o DeLury() written. o [dpqr]-type functions related to the negative binomial distribution have changed wrt argument names and order. o [pq]posnegbin(), [dpqr]zapois(), [dr]zanegbin() written. o [dpqr]zinb() renamed to [dpqr]zinegbin(). o lms.bcn(), lms.bcg(), lms.yjn() have zero=c(1,3) as the new default. This will increase the chances of successive convergence. o Renamed arguments in lms.bcn(), lms.bcg(), lms.yjn(), e.g., link.sigma is now lsigma. Some new arguments added too, e.g., llambda. o Works for R 2.5.0 and later (not 2.4.0 and later). Compatible with R 2.7.2. o Contains Fortran 90 code (since 0.7-7, actually). This will cause problems on older Linux machines without such a compiler. Actually, removing the .f90 file(s) will not be too much of a problem as there is very little F90 code in use by the package at the moment. o New functions: dbinom2.rho(), rbinom2.rho(), dposnegbin(). o New data: wffc, wffc.indiv, wffc.teams, wffc.nc. o Improved functions: binom2.rho(), micmen(), negbinomial(), poissonff(), posnegbinomial(), zanegbinomial(), o A new form2 argument has been added to vglm(). VGAM family functions such as micmen() have the regressor inputted using form2 now, rather than the regressor argument. The resulting usage is a more elegant. Fitted objects have a few more slots and formulas put in set places on the object. o AIC() methods functions has been modified. BUG FIXES o The big bug whereby vgam(... ~ s(x), ... ) did not work under Windows was due to a single array element that was not initialized. Evidently, Linux compilers seemed to have set it to zero. Funny, the code has worked for decade or so... o dposbinom() was buggy at x=0. Also it now handles size=0 and prob=0 or prob=1. o pzipois() was buggy at x<0. o dbetabin.ab(log=T) was incorrect outside its support. o zipf() did not handle 0 < s < 1. o data(ruge) was faulty. o summary(rrvglmObject) failed. o persp.cao(ylim=) did not work. o plotvgam() failed when se=TRUE and which.cf was specified. CHANGES IN VGAM VERSION 0.7-7 NEW FEATURES o Labelling changes: binom2.or() uses "oratio" instead of "OR" (stands for the odds ratio). o New VGAM family functions: zipebcom(). o New functions: dbinom2.or(), rbinom2.or(). o binom2.or() has new arguments 'imu1, 'imu2' and 'ioratio' for inputting optional marginal probabilities and odds ratio. The third element of the score vector uses a new formula. o [dpqr]zinb() has arguments prob and munb set to NULL by default. o Compatible with R 2.7.0. BUG FIXES o gaussianff()@loglikelihood was buggy. o all(trivial.constraints(Blist)) changed to all(trivial.constraints(Blist) == 1) to avoid a warning in R 2.7.0. Ditto for 'all(findex)' and 'any(diff(Alphavec))'. o qtriangle(0.3, theta=0.3) used to fail. o gharmonic() handles a negative argument s. CHANGES IN VGAM VERSION 0.7-6 NEW FEATURES o dpolono() has a new argument 'bigx' which implements an approximation. It is for handling large values of x. o vglm() and vgam() now create the response and model matrices etc. in the same way as glm(). A consequence is that the response does not have to be "numeric" as in lm(), e.g., a factor response is now permitted. o New VGAM family functions: alaplace1(), alaplace2(), alaplace3(dpqr), amlbinomial(), amlexponential(), amlpoisson(), amh(), lqnorm(), mbinomial(), scumulative(). o Other VGAM family functions with argument names changed or added: lms.yjn2(). o These VGAM family functions have been improved: alsqreg() [parallel option, w argument can be a vector, link function for the expectiles]. o The data set "aml" has been renamed "leukemia". o Previously laplace(zero=NULL), now laplace(zero=2). BUG FIXES o deplot() applied to a "lms.yjn2" object gave an unnecessary warning. o In the leukemia and toxop data sets 1L is replaced by 1 and 2L by 2 etc. CHANGES IN VGAM VERSION 0.7-5 NEW FEATURES o New VGAM family functions: betaff(), cardioid(dpqr), cauchy(), felix(d), fnormal1(dpqr), invbinomial(), kumar(dpqr), lms.yjn2(), mix2exp(), plackett(dpr), riceff(dr), skellam(dr), zinegbinomial(dpqr). o These VGAM family functions have been improved: frank(), genpoisson(), hzeta(), mix2normal1(), mix2poisson(), pospoisson(), studentt(). o These VGAM family functions have had their default arguments changed: genpoisson(), mix2normal1(). o New documentation: borel.tanner(dr). o expm1() used whenever possible. o Renamed VGAM family functions: betaff() changed to beta.ab(). o cauchy1() now returns the location estimates as the fitted values instead of NA (for the mean). BUG FIXES o cumulative(), sratio(), cratio(), acat() had response-matrix column names which got lost. o lms.yjn() failed if there was not enough data. CHANGES IN VGAM VERSION 0.7-4 NEW FEATURES o weibull() does not handle any censored observations at all. The function cenweibull(), which will handle censored observations, is currently being written and will use Surv() as input; it should be distributed with version 0.7-5 of VGAM. o bisa() now implements full Fisher scoring. No numerical integration is needed. o Certain functions from the smartpred package are no longer distributed with the VGAM package. These are lm, glm, predict.lm, predict.mlm, predict.glm. This is done because many users have found they interfere with the VGAM package in unpredictable ways. o The following VGAM family functions have improved initial values: betabinomial(), cauchy1(), mccullagh89(), negbinomial(), tpareto1(), zipoisson(). o New family functions: alsqreg(), dexpbinomial(), laplace(), poissonp(), seq2binomial(), triangle(dpqr). o VGAM family functions currently withdrawn: cexpon(). o A new class called "SurvS4" has been prepared. It will be used later to handle VGAM family functions beginning with "cen" that use Surv() as input. o log1p() used whenever possible. BUG FIXES o bisa() did not make use of ishape. o cao(..., family=gaussianff) failed. It now works, although the dispersion parameter is computed using a slightly different formula. CHANGES IN VGAM VERSION 0.7-3 NEW FEATURES o gpd() now does not delete any data internally. The user should use the subset argument of vglm() and vgam() in order to select any subset of a data frame. o zapoisson() has a zero argument, and this can be assigned a negative value. o "partial for" is added to the ylabel of linear terms of a vgam() object when it is plotted. o When a vgam() object is plotted with se=TRUE and if there are linear terms then the mean of x is added to the plot (this makes the standard error curves meet there). o This package has been tested (somewhat) under R 2.5.0. BUG FIXES o plotvgam() did not work for vgam() objects using the subset argument. o cao() objects would not show() or print(), at least under R 2.4.1. o summary(vgam.object) failed if vgam.object was a totally linear model (i.e., no s() term in the formula). Now the "R" slot is assigned for all vgam() objects. o preplotvgam() had a bug regarding $se.fit of an atomic pred$se.fit. CHANGES IN VGAM VERSION 0.7-2 NEW FEATURES o Almost all VGAM family functions now have an earg-type argument to support each link function. This allows parameters specific to each link to be passed in, e.g., VGAMfamilyfunction(link="logoff", earg=list(offset=1)) o rinv.gaussian() is new. o New VGAM family functions: morgenstern(), fgm(), gumbelIbiv(), ordpoisson(). o New documentation: powl(), fsqrt(). BUG FIXES o zanegbinomial()@last had wrong names in misc$link. o summary(vgam.object) failed to print the anova table. o summary(cao.object) failed. CHANGES o binom2.or() has argument names changed from "lp" to "lmu" etc. This is partly to make it in keeping with other VGAM family functions for binary responses. o Other VGAM family functions with argument names changed: frank(). o lms.bcn(), lms.bcg(), lms.yjn() arguments have changed order. o hyper() renamed to hyperg(). o plotvgam() uses ylim if it is inputted. CHANGES IN VGAM VERSION 0.7-1 NEW FEATURES o VGAM family functions now require full (name) specification of parameter link functions. For example, binomialff(link=probit) is ok, as is binomialff(link="probit"), but binomialff(link="pr") isn't. VGAM family functions no longer offer a fixed set of link functions but the user can invoke any, as well as write their own link function. o Working residuals for vglm() objects are now the default. They used to be deviance residuals but they are not defined for most VGAM family functions. In the future the default may become "pearson" residuals. For safety, use the type argument, e.g., resid(vglmobject, type="response"). o ITolerances=TRUE is now the default for qrrvglm.control(), consequently, equal tolerances CQO models are fitted. The rationale for this change that setting ITolerances=TRUE provides the fast computational speed as well as the easiest interpretation of the results. Also, rcqo() matches this by having EqualTolerances=TRUE as its default. However, having an equal tolerances assumption should be checked. o New VGAM family functions: tikuv(dpqr), [dpqr]naka(), [dpr]log(), [dpqr]tpareto1(), betabinomial(). o VGAM family functions which have been renamed (and often improved): New name Old name -------- -------- dirmultinomial() dirmul() negbinomial() negbin.mu() negbinomial.ab() negbin.mn() posnegbinomial() posnegbin.mu() zanegbinomial() zanegbin.mu() rposnegbin() rposnegbin.mu() gamma2() gamma2.ab() gamma2mu() gamma2() o New functions: lerch(), rcqo(). o In the smartpred package smart.mode.is(mode.arg) now requires mode.arg, if given, to be exactly one of 3 character strings. Also, is.smart(object) handles object being a smart function or a fitted object. o The VGAM package comes with modified lm, predict.lm, predict.glm, predict.mlm, glm functions---these implement smart prediction, and are current to R version 2.3.1 (2006-06-01). o The order of the linear/additive predictors for expexp() have been switched. o weibull(zero=2) is the default now. o negbin.mu(), posnegbin.mu(), zanegbin.mu: these have a few added arguments for further flexibility, and some arguments have changed names, e.g., 'k.init' has been changed to 'ik' and 'link.mu' to 'lmu'. o Negative binomial random variates are now generated using rnbinom() in the stats package rather than rnegbin() in the MASS package. o binom2.or() and binom2.rho() have more choices for some arguments such as lor and lrho. o Initial values have been improved for logff(), zipf() and zetaff(). o This package should work for R 2.4.0 after additional tweaks to handle changes in show(). BUG FIXES o pbetabin() had a bug. o studentt() has a mean of 0 only if df > 1. o garma() failed for link="loge". It now works for binary data with the "logit" link. o Internally, wz <- matrix(NA, ...) changed to wz <- matrix(as.numeric(NA), ...). Ditto for rep(NA, ...) to rep(as.numeric(NA), ...). o tobit() had a bug in the initialize slot. o rposnegbin.mu() now calls the MASS library function rnegbin() explicitly. o gammaff() now works. o Working residuals for cao() objects were wrong. o lvplot() for cao() objects have a whichSpecies argument which allows selective plotting of the species' curves. o gaussianff() did not work with rrvglm(). It now has a loglikelihood slot, and returns deviance residuals for M>1. CHANGES o gaussianff(), studentt() have the order of its arguments changed. o eta2theta(), theta2eta(): if these have a matrix "theta" then it no longer calls the VGAM link function one column at a time. Hence VGAM link functions must handle matrix "theta" using one value of "earg" argument. o The earg argument has changed for many VGAM link functions. It is now a list, with component names that are specific to each link function. See the online help files for the list component names. Soon, every VGAM family function that allows a link function will have an earg argument to match it, thus giving maximum flexibility. CHANGES IN VGAM VERSION 0.6-9 NEW FEATURES o New VGAM family functions: lino(dpqr), recexp1(), posnormal1(dpqr), betageometric(dpr), [dr]polono(), [dpr]betabin(), gamma2mu(), bisa(dpqr), zipf(dp). There is a new dirmul() (the old one is renamed to dirmul.old()) but it hasn't yet be completed. o Renamed VGAM family functions: beta2() changed to betaff(). o Renamed VGAM functions: is.a.number() changed to is.Numeric(). o The Windows crossbuild was done under R 2.3.0. BUG FIXES o Family functions lognormal(), lognormal3() now include the 1/sqrt(2*pi) constant in @loglikelihood because of its use of dnorm(..., log=TRUE) and dlnorm(..., log=TRUE). o [dpqr]lognormal() withdrawn as they exist in R already. o Documentation for betaff() contained mistakes. o summary() of a betabin.ab() object used to fail. o The assign statement has been removed from some FORTRAN code. CHANGES IN VGAM VERSION 0.6-8 NEW FEATURES o New VGAM family functions: recnormal1(), recexp1(), paretoIV(dpqr), paretoIII(dpqr), paretoII(dpqr), gammahyp(), benini(dpqr). However, the fitted value (mean) for benini() may be faulty. o Decommissioned VGAM family functions: gpdold(), ogev(), zipoissonX(). o gumbel.block() renamed to gumbel(), and gumbel() renamed to egumbel(). o Argument names and defaults have changed for: gpd(), egev(), gev(), ogev(), cgumbel(), egumbel(), gumbel(), and weibull(). Also, gpd(), gev() and egev() have some improvements done internally. Also, rlplot() is new. o Several family functions have been converted to a new convention whereby ilocation, iscale, ishape arguments are used, and also llocation, lscale, lshape arguments for the link functions etc. o New link function: nidentity(theta) for negative-identity: -theta. o New argument "untransform" in predict() and vcov() for VGLMs. o For intercept-only models, Coef(fit) returns more user-friendly labelled output. BUG FIXES o ppareto() had a bug. o gpd() had an incorrect second derivative. CHANGES IN VGAM VERSION 0.6-7 NEW FEATURES o New VGAM family functions: bilogistic4(dpr), frechet2(), frechet3(), freund61(), frank(dpr), mccullagh89(). o For cao(), df1.nl has a default of 2.5, changed from 2.0 before. o For vglm(), vgam() etc., diagonal elements of the working weight matrices that are less than .Machine$double.eps^0.75 are replaced by this value. The arguments checkwz and wzepsilon support this feature. o More documentation on: fill() [re. the xij argument], cauchy1(). o logistic2() now uses Fisher scoring. o Argument init.method changed to method.init in several family functions. o Any non-smart-prediction use of smartpredenv has been changed to VGAMenv. BUG FIXES o rayleigh() was not in NAMESPACE. o logistic1() and logistic2() had wrong first derivatives and loglikelihood function. logistic1() offers some choice of link function for the location parameter. CHANGES IN VGAM VERSION 0.6-6 NEW FEATURES o New functions: zibinomial(), zibinom(dpqr), posbinom(dpqr), mix2normal1(), mix2poisson(), dsnorm(), rsnorm(), cexpon(), cgumbel(), cnormal1(), hyper(). o New generic functions: is.bell() works for RR-VGLMs, QRR-VGLMs and RR-VGAMs (CLO, CQO and CAO, respectively). o normal1() has a new (first) argument: lmean for the mean. o Documentation for skewnormal1() and snorm(dr). BUG FIXES o tobit() now implements Fisher scoring properly. o Coef.vlm() needed to test for trivial constraints. o skewnorm1() had a bug in it. It has been fixed and renamed to skewnormal1(). o cao() had a problem with the variable "usethiseta" when it had possible NAs. o An appropriate error message is given if residuals=TRUE in the call to @loglikelihood, for all VGAM family functions. o Two unneeded lines in rgam.f have been removed. CHANGES IN VGAM VERSION 0.6-5 NEW FEATURES o New functions: guplot(), meplot(), ggamma(dpqr), fff(), vonmises(), lgamma3ff, lgamma(dpqr), prentice74, tobit, zipoisson(dpqr), [dpqr]pospois(), [dpqr]laplace but there is no laplace(). o cqo() has been largely rewritten. It now sports a new algorithm for ITolerances=TRUE. It can handle large data sets (e.g., 1000 sites with 100 species). Compared to other cqo() options, it is the fastest. There are a few things to learn though to take full advantage of the new algorithm, e.g., centering the variables. o Windows version is cross built with R 2.2.0. The Linux version has been tested with R 2.2.0. o cao() has been largely rewritten. It now should not hang in the the windows cross build version. o .Init.Poisson.CQO() has been renamed .Init.Poisson.QO(), and also improved (however, it uses more memory by default). o Modelling functions such as vglm(), vgam() and cao() have qr.arg=FALSE now. This means object sizes can be a lot smaller. o The functions positive.poisson(), positive.binomial() etc. have been renamed pospoisson(), posbinomial() etc. o The functions [dpqr]gpd now have a location=0 argument. o Some VGAM family functions will be adapted later to use the BFGS quasi-Newton update for their working weight matrices. o The link function logoff() now works, for constant offsets. Link functions had the argument "extra"; now called "earg" to avoid confusion with the argument "extra" used in vglm() etc. Also, elogit() is new, which allows a parameter to lie between two values (A,B), say. BUG FIXES o plotvgam() was incorrect if one of the terms (but not the first) was "x" or a function of "x" such as bs(x). o smart.expression now handles multiple 'arguments' by choosing the first, which is the smart function name. o lv(rrvglm.object) failed. CHANGES IN VGAM VERSION 0.6-4 NEW FEATURES o New family functions: betabin.ab(), betaprime(), dcnormal1(), erlang(), expexp(), inv.gaussianff(), maxwell(), mckaygamma2(), nakagami(), pareto1(), rayleigh(), wald(). Of these, Pareto, Rayleigh and Maxwell have random number generation etc. o If criter="coef" and trace=TRUE, then the number of decimal places used to print the estimated coefficients at each iteration is proportional to the control constant epsilon. o tanl() has been named to cauchit(), and appropriate family functions reflect this change, i.e., link="cauchit" instead of link="tanl". o size.binomial() has been improved. o Documentation for gamma1(), gamma2(). BUG FIXES o The documentation for the reverse argument in cumulative(), cratio(), etc. was incorrect. o vcov() didn't work on the windows version. o cao() still hangs under the windows version, so hopefully this bug will be fixed soon! CHANGES IN VGAM VERSION 0.6-3 NEW FEATURES o Built with R 2.1.0 for the .zip file (Windows version) and deposited in the right directory at www.stat.auckland.ac.nz. o More documentation, e.g., fitted(), yeo.johnson(), dirmul(). o zeta() and zetaff() have been improved and/or corrected. o The family functions binomial, poisson, quasibinomial, quasipoisson, gaussian, inverse.gaussian, Gamma have been withdrawn because of inteference with glm(). CHANGES IN VGAM VERSION 0.6-2 NEW FEATURES o model.frame() and model.matrix() are roughly working for objects that inherit from "vlm"s, e.g., "vglm" objects. Both of these methods functions accept a "data" argument etc. Also, for these, smart prediction works. o A methods function for the generic function weights() has been written for VGLM objects. It returns either the prior or working weights. BUG FIXES o The Crow1positive argument in cao() did not function correctly. o The family functions dagum, fisk, lomax, invlomax, paralogistic, invparalogistic, lognormal were not exported in the NAMESPACE file. o Functions in gaut.c and mux.c used "long" to represent integers. In R, these should be "int". Although these are equivalent on 32-bit machines, they differ on 64-bit machines and crash. The files are now renamed to gautr.c and muxr.c in R. o summary(cao.object) failed. CHANGES IN VGAM VERSION 0.6-1 NEW FEATURES o New functions: cao() for "constrained additive ordination", and uqo() for "unconstrained quadratic ordination". Both of these are unfinished but will hopefully be completed in the forseeable future. o The function cgo() has been renamed to cqo(). Ouch! CQO stands for "constrained quadratic ordination", and is better than the old name cgo(), for canonical Gaussian ordination. o The inverse() link function has been renamed to reciprocal(). o More documentation: loglinb2() and loglinb3(). o zipbipp() renamed to zapoisson(), where "za" stand for "zero-altered". This is more in line with the literature. New families: zanegbin.mu, positive.negbin.mu. New random variates: rposnegbin.mu, rpospois. o negbin.mu() works now for cgo(). The subsequent methods functions have been adapted to work on it too. However, negbin.mu() is not recommended because maximum likelihood estimation of the index parameter is fraught numerically. It is better to use quasipoissonff(). o cgo() now uses the function .Init.Poisson.CGO() to obtain initial values for the canonical coefficients, C. The argument Use.Init.Poisson.CGO in qrrvglm.control() now controls this feature. o Lazy loading has been enabled for the VGAM package. o Name spaces has been introduced into the VGAM package. The consequencies of this might be far reaching for code heavily based on the internals of the VGAM package. o The application of name spaces means "ff" can be dropped from certain family functions. In particular, poisson() can be used instead of poissonff(), and binomial() instead of binomialff(). Ditto for quasipoissonff() and quasibinomialff(). o names.of() changed to namesof(). Many other function names have been changed, particularly those of the S3 classes such as coef. something, e.g., coef.vlm to coefvlm. In general, S3 methods functions such as print.summary.vlm have the first "." deleted, but classes such as "summary.vlm" retain the ".", and the function is printsummary.vlm. BUG FIXES o Some documentation regarding the negative binomial distribution was wrong. o The digamma function in FORTRAN was buggy. o gumbel.block() now handles a vector response (equivalently, a one column matrix) and the deviance has been decommissioned. Instead, the log-likelihood is computed. CHANGES IN VGAM VERSION 0.5-24 NEW FEATURES o zipbipp() and zipoissonX() are new alternatives to yip88(). They fit a zero-inflated Poisson distribution. Both can handle covariates for both parameters (p0 or phi, and lambda.) zipbipp() is recommended over the others. zipoissonX() is experimental at this stage and should be used with caution. rpospois() is new. o More documentation: rhobit and binom2.rho. o binom2.or() now has lp1 and lp2 arguments, which allow a different link function for each of the two marginal probabilities. o bratt() is a new family function. It fits the Bradley Terry model with ties. o flush.console() is used if it exists. This will make Windows version more nicer for large data sets and when trace=TRUE is used. o wweights() extracts the working weights of an object. Used to be called vweights(). CHANGES IN VGAM VERSION 0.5-23 NEW FEATURES o The package works under the latest version, viz. 2.0.0. There are fewer warning messages when checking :) o persp() for CGO objects now handles Rank=1 models. CHANGES IN VGAM VERSION 0.5-22 BUG FIXES o plot.vgam(..., overlay=TRUE, which.cf=1:2) was incorrect. NEW FEATURES o demo files now are avaible for VGAM. These include lmsqreg, distributions, and cgo. More will be added later. CHANGES IN VGAM VERSION 0.5-21 BUG FIXES o .Rd files adapted to reflect new changes in the library names. o persp.qrrvglm() argument whichSpecies was faulty. o gpd()@inverse returned erroneous centiles. o Coef(cgo(..., FastAlgorithm=TRUE)) produced wrong results. NEW FEATURES o cgo(..., FastAlgorithm=TRUE) has been fined-tuned to give greater speed and accuracy. o lms.yjn() uses FORTRAN code to implement the Gauss-Legendre algorithm. This results in greater accuracy. o More documentation, especially for family functions for extreme values modelling. CHANGES IN VGAM VERSION 0.5-20 BUG FIXES o vglm(y ~ x, binomialff(link=tanl)) used to fail. o The CHECK command failed previously, but now it only gives 5 warnings. NEW FEATURES o persp.qrrvglm() has been written to apply persp() to a rank-2 CGO model. o cgo(..., FastAlgorithm=TRUE) now has a logical argument GradientFunction, which if TRUE (default), computes the derivatives by using finite-difference approximations. The default will cause the speed to generally increase. CHANGES IN VGAM VERSION 0.5-19 BUG FIXES o garma() did coerce the model matrix into the correct class o fisherz() could not work out the inverse. NEW FEATURES o trplot() is a new generic function, and for objects of class "qrrvglm" (a cgo() object), it produces a trajectory plot for species. o vcov.qrrvglm() now computes standard errors and returns the variance-covariance matrix for rank-1 QRR-VGLMs. o A new fast algorithm is implemented for cgo(..., FastAlgorithm=TRUE) which only works under windows. It is a new undocumented algorithm. o New family functions: lognormal(), lognormal3(), weibull(). o New family functions: genbetaII(), betaII(), sinmad(), dagum(), lomax(), invlomax(), fisk(), invparalogistic(), paralogistic(). Additionally, d*, r* p* and q* forms of the density/random-generation etc. functions for all of these except for betaII and genbetaII. o New link function for (0,1) parameters: tanl() for tan link. It has a heavier tail and corresponds to a Cauchy distribution (cf. probit for normal). o New family function: brat() for the Bradley Terry model (intercept model only). CHANGES IN VGAM VERSION 0.5-18 NEW FEATURES o I've changed deplot.lmscreg() so that the "at" argument is now "y.arg", and the density is returned with name "density" instead of "y". That is, "at" is now "y", and "y" is now "density". o lvplot.rrvglm() and biplot.rrvglm() have been merged and are now equivalent. CHANGES IN VGAM VERSION 0.5-17 BUG FIXES o Bestof argument in cgo() and rrvglm() was faulty. o Bug in plot.vgam(type.resid) fixed. NEW FEATURES o Updated to work under R 1.8.1 o logLik() and AIC() methods functions supported for many VGAM objects. o lms.bcn.control(), lms.bcg.control(), lms.yjn.control() now have trace=TRUE because monitoring LMS quantile regression models is a good idea. o lms.bcn(), lms.bcg(), lms.yjn() now improved. CHANGES IN VGAM VERSION 0.5-16 BUG FIXES o biplot.rrvglm() had a internal bug with @C. o Runs under R 1.8.0 now, having a fix with "qr" slot. o etastart, coefstart, mustart arguments were not functional in vgam(). o vchol() did not replace the correct elements; sometimes the index was out of subscript range. o residuals.vlm() tried to evaluate a deviance slot in a "vglmff" object even when it was empty. o Documentation links to functions in other packages now work. NEW FEATURES o lvplot.qrrvglm() has been renamed biplot.qrrvglm(). Argument Equal.tolerances changed to EqualTolerances. Argument Circular changed to ITolerances. rrvglm.control() now split into qrrvglm.control() and itself. o cgo() now performs canonical Gaussian ordination. CHANGES IN VGAM VERSION 0.5-15 BUG FIXES o Coef.qrrvglm() failed wrt Equal.tolerances and Circular when Rank>2. NEW FEATURES o gco() is now an easier interface for fitting Gaussian canonical ordination models. gco(...) is essentially rrvglm(..., Quadratic=TRUE). o Documentation for deplot.lmscreg(), qtplot.lmscreg(), cdf.lmscreg() and related functions. Also for positive.poisson(), positive.binomial() and yip88(). o lvplot.qrrvglm() improved to handle non-diagonal tolerance matrices, and a new Rotate option is available for QRR-VGLMs. o By default, QRR-VGLMs now have the constraint that the latent variables are uncorrelated and have unit variances, i.e., their variance-covariance matrix is diag(Rank). Also, the Crow1positive argument allows ordinations to be reflected across axes. CHANGES IN VGAM VERSION 0.5-14 BUG FIXES o vgam() with s() terms and subset= used to give a bug because the attributes of s() were lost. o summary() of a gaussianff was faulty because control.gaussianff() was called gaussianff.control(). NEW FEATURES o install.packages("VGAM", CRAN="http://www.stat.auckland.ac.nz/~yee") now works for PC and Linux/Unix, i.e., the distribution of the VGAM package allows for this type of download. o poissonff(), quasipoissonff(), binomialff() and quasibinomialff() now handle multiple dispersion parameters when mv=TRUE and onedpar=FALSE. o Generic function predictx(), with methods function for "qrrvglm" objects. This solves (with limited functionality) the calibration problem. o predict.qrrvglm() and predict.rrvglm() written (but don't work 100%) o Coef.rrvglm() now returns an S4 object, which can be printed nicely. o summary.qrrvglm() has been improved. o Documentation for poissonff(), quasipoissonff(), binomialff() and quasibinomialff(). CHANGES IN VGAM VERSION 0.5-13 BUG FIXES o Code with T and F now use TRUE and FALSE. NEW FEATURES o Documentation for lms.bcn(), lms.bcg(), lms.yjn(), and bmi. Additionally, the overall documentation has been improved throughout. o print.Coef.qrrvglm prints the contents of Coef(qrrvglm.object) in a nicer format. It uses S4 features. CHANGES IN VGAM VERSION 0.5-12 BUG FIXES o The package now works under R 1.7.1. This includes the smart prediction library. o dirichlet(), skewnorm1(), geometric(), gamma2() and erlang() had a bug that has been fixed. NEW FEATURES o documentation for beta2(), and dirichlet(). o Easier installation; use something like "R CMD INSTALL -l ./myRlibs VGAM_0.5-12.tar.gz" for a local library. CHANGES IN VGAM VERSION 0.5-11 BUG FIXES o The code has been upgraded to work under R 1.7.0 because of the calls to LAPACK and object oriented features. NEW FEATURES o levy() added, plus grc() documentation. o constraints added to binomialff() and poissonff() since they both handle multivariate responses. CHANGES IN VGAM VERSION 0.5-10 BUG FIXES o Many univariate family functions had a faulty loglikelihood slot. o negbin.mu() was faulty causing very slow convergence. o Coef.vglm() had a bug due to "fit" rather than "object" NEW FEATURES o logff() added. o The undocumented backchat facility now works for Splus 6.x. This should increase the efficiency of vglm() in particular. Thanks to Insightful and Dr J. Chambers for helping to get it going under the S4 engine. CHANGES IN VGAM VERSION 0.5-9 BUG FIXES o binomialff() had a bug in @weight. o binomialff(mv=T) used to fail. o gev(), ogev() and egev() had @loglikelihood that was faulty. NEW FEATURES o .Rd documentation included for vglm(), vgam(), rrvglm(), and associated control and class functions, plus smart prediction. CHANGES IN VGAM VERSION 0.5-8 NEW FEATURES o rrvglm() now has a Quadratic argument to implement the class of Quadratic Reduced-rank VGLMs, which gives maximum likelihood solutions to Gaussian canonical ordination problems. Documentation is in rrvglm.pdf CHANGES IN VGAM VERSION 0.5-7 NEW FEATURES o vglm() now has a xij argument which implements eta-specific covariates. Documentation is supplied on the VGAM website. o grc() has been written for Goodman's RC association model for a contingency table. Documentation is in rrvglm.pdf