Changes: ver 1.0-6 (2021-04-22)
1) varimp: new function for variable importance indices
* Calculates importance index for each term in smooth model
* Partitions importance into parametric and nonparametric components
2) bin.sample: new function for bin sampling observations (for spline knots)
* Bin multidimensional data and randomly sample w/in each bin
* Options to return bin indices and/or breaks defining bins
3) sm and gsm knot sampling changes (improvements) for all options
* Now uses type = 2 quantiles for continuous predictors (instead of type = 7)
* Unless knots are provided, bin.sample generates knots for 13 or fewer predictors
4) Added "ridge" parameterization for all basis functions
* Basis matrix is post-multiplied by inverse square root of penalty matrix
* Penalty matrix is identity matrix when using ridge parameterization
5) plotci improvements
* Added col argument (for lines and points)
* Can now add factors without axes warning
6) theta.mle and gsm improvements for NegBin with unknown theta
* Stabilized iterative algorithm to avoid Inf estimates
* Estimated theta now must be less than .Machine$double.xmax
7) More flexibility for names of basis and penalty functions
* Now can use "." instead of "_" for any basis or penalty function
* Ex: basis.poly() is equivalent to basis_poly()
Changes: ver 1.0-5 (2020-11-30)
1) Bug fix for summary.gsm regarding p-values for smooth terms
* Previously returned incorrect chi-square and p-values
* Now uses correct chi-square (or F-test) and p-values
2) Bug fix for penalty_tps with two-dimensional predictor
* Previously used is.na() instead of is.infinite() resulting in NaN
* Thanks to Joseph Antonelli at Florida for discovering the bug
3) Improvements to pseudo-significance testing for smooth terms
* Previously allowed for df < 1, which could result in artificially
small p-values for effect functions with df < 1
* Now uses pmax(df,1) for significance tests to avoid this issue
4) New argument "df" for the "sm" function (supplement to "spar" and "lambda").
* Fits a smooth with a specified equivalent degrees of freedom.
* Equivalent degrees of freedom = the trace of the smoother matrix.
5) New argument "bernoulli" to the "basis_poly", "penalty_poly" and "ss" functions
* If TRUE (default) uses scaled Bernoulli polynomials for kernel
* If FALSE produces classic definition of smoothing spline
6) Internal improvements for "gsm" with family = NegBin and unknown theta
* Previously used nlm function to optimize the log-likelihood
* Now uses theta.mle function, which is faster and more stable
7) Internal improvements for "psolve" when checking symmetry of a
* Previously used isSymmetric(a) to check for symmetry
* Now uses isSymmetric(unname(a)) to check for symmetry
8) Added DOI hyperlink for Helwig (2020+) JCGS
Changes: ver 1.0-4 (2020-08-09)
1) Bug fix in "gsm" with family = NegBin regarding SE calculation
* Previously multiplied the se.lp by sqrt(1/theta)
* Now correctly uses dispersion parameter of one
2) Bug fix in "gsm" with family = NegBin and user supplied spar/lambda
* Previously resulted in error due to lack of defining est.theta
* Now correctly estimates theta with a fixed lambda
3) Added more tuning possibilities for "gsm" function
* PQL (penalized quasi-likelihood) tuning is now available
* GACV and ACV tuning are now available for non-canonical links
4) Internal improvements to "gsm" for family = NegBin
* Added suppressWarnings() to eliminate warnings from nlm
* Added use of tryCatch to handle any errors product by nlm
5) Added new reference: Helwig (2020+) JCGS
Changes: ver 1.0-3 (2020-07-06)
1) Bug fix in "gsm" with user supplied weights
* Previously used weights for likelihood evaluation but not fitting
* Now uses correct weights for IRPLS algorithm fitting
2) Bug fix in "check_control"
* Previously only allowed for searching spar between 0 and 1
* Now allows for any bounds that satisfy lower < upper
3) Bug fix in "print" for models with fixed spar / lambda
* Previously didn't save method and printed GCV criterion
* Now prints correct criterion when spar / lambda is provided
4) Bug fix in "summary.gsm" for models with nominal variables that have 2 levels
* Previously resulted in an error during the SE calculation
* Now correctly calculates SE for nominal variables have 2 levels
5) Post-processing of GCV and OCV for "gsm" with gaussian response
* Previously returned non-constant portion of GCV / OCV
* Now matches "sm" output: cv.crit.new = 2*cv.crit.old + mean(y^2)
6) Internal computational improvements to "gsm" function
* Previously tuned model and then refit w/ optimal parameters
* Now tuning returns all relevant output w/o refitting
7) Slight update to package name (to clarify "nonparametric regression")
* Previous name: Nonparametric Regression
* Updated name: Nonparametric Regression via Smoothing Splines
Changes: ver 1.0-2 (2020-05-04)
1) Bug fix in "summary.gsm" for models with null space dimension of one
* Previously resulted in an error during the SE calculation
* Now correctly calculates the null space SE with nsdf == 1
2) Bug fix in "summary.gsm" for binomial with factor response variable
* Previously resulted in an error when calculating deviance residuals
* Now correctly calculates deviance residuals with factor responses
3) Bug fix in "predict.sm" and "predict.gsm" for multi-dimensional thin-plates
* Previously resulted in an error when checking new data
* Now correctly checks new data and creates predictions
4) Bug fix in "pred_rkhs" (internal function) which affected TPS predictions
* Previously resulted in error due to lack of initializing Qcont
* Now correctly initializes Qcont, which avoids the error
5) Improvements to "plotci" function for plotting 'x' as a factor
* Previously converted factors to integers for plotting
* Now plots factors with points and error bars (default)
6) Updates to references (added details for Helwig SAGE RMF entry)
Changes: ver 1.0-1 (2019-12-09)
1) Improvement to "gsm" function for binomial responses
* Now allows the response variable to be a factor
* First level is a failure, and others are successes
2) Bug fix in "build_rkhs" for parametric effects of factors
* Previously provided incorrect namespace to model.matrix
* Now correctly forms model.matrix for parametric factors
3) Bug fix in "sm" and "gsm" for tprk = FALSE and rank deficient knots
* Previously produced an error if 1 unique knot per predictor
* Now correctly computes solution in such cases
4) Bug fix in "summary.gsm" for deviance residuals
* Previously was returning working residuals from fit object
* Now correctly outputs the deviance residuals from summary
5) Bug fix in "ss" and "summary.ss" for models with m = 1 and/or and periodic = TRUE
* Previously resulted in an error during post-processing
* Now correctly post-processes the result with m = 1 and/or periodic = TRUE
6) Improvement to knot selection method for "ss" when all.knots = FALSE
* Previously used quantiles of x (instead of observed x)
* Now uses the observed x values to ensure a "true" smoothing spline
7) Bug fix in "sm" and "summary.sm" for models with null space dimension of one
* Previously resulted in an error during post-processing
* Now correctly post-processes the result with nsdf == 1
8) Improvement to "plot.ss" for models with non-equidistant x values
* Previously fit and CI were plotted at observed x values
* Now fit and CI are plotted at equidistant x values
9) Updates to references (added Helwig SAGE RMF entry)