NEWS
survey 4.5 (2026-02-24)
- (experimental, may contain nuts)
Wilson ('score test') confidence intervals in svyciprop (from Stas Kolenikov)
svydesign() gives a clearer error message when there are more stages in
fpc= than in id= (for Stephanie Zimmer)
svrepdesign(type="ACS") now uses mse=TRUE unless mse=FALSE is explicitly
given, in which case it warns (for Anthony Damico)
svystat,svrepstat objects lose their variance attribute and class on
math operations so the standard errors don't end up misleading. Use
svycontrast() to get transformed versions with SEs
(for Pavel Krivitsky)
The $aic component of svyglm objects, which is undocumented and meaningless,
is now set to NA. If this breaks your code, your code was already wrong.
(for Michael Reiss)
svyby(covmat=TRUE) now works for estimators where subset() doesn't actually
drop rows
svydesign(.., weights=1) now works, though it's still not recommended. Attempts
to recycle a weights vector that isn't of length 1 get an error
for replicate-weight designs with user-forced degrees of freedom, the
degrees of freedom shouldn't change under subsetting
(because that's computationally expensive). For Joel Barnes, Isabelle Michaud
clarify that calibrate() can take margins specified in either of the formats
that rake() accepts
rake() now handles much larger sets of margins (from Ben Schneider)
The results may be different if too loose a tolerance was specified or if
zeroes make the true optimum non-unique.
confint(withReplicates()) assigns names when there aren't any,
rather than failing (from Ben Schneider)
degf<-.svyrep.design() to allow the user to modify the degrees of freedom
if they specified it by hand
a bit more detail on svyciprop(type="xlogit") (from Ben Schneider)
Bell-McCaffrey standard errors (from Stas Kolenikov)
remove spurious warning in svyvar for replicate-weights with mse=TRUE
(Ben Schneider)
change deprecated arma::is_finite to standard::isfinite
Add option na_weights. If "allow" or "warn", svydesign will drop any
records with NA weights before setting up the design.
The default, "fail", will give an error.
For database-backed designs it is currently only possible to have "fail"
but this may change in the future (for Stephanie Zimmer and David Wilson)
survey 4.4-3
- (for Richard Li, Durga Nagori)
Initial version of multiframe() for dual-frame sampling and
reweight() for optimising frame weights. Methods for svytotal,
svymean, svyglm, svyvar, svychisq, update, subset
Initial version of withCrossval() for cross-validation
withPV with action=fun and rewrite=TRUE wasn't working
add "pps_spec" virtual class for all the PPS sparse matrix things
support calibration to the influence functions of a phase-1 model in calibrate.twophase and
calibrate.twophase2 (currently only with simple random sampling at phase 1)
added svychisq.twophase2 (for Yilin Zhang)
twophase2 objects now print the call that created them better
?svystat and ?svrepstat now point to ?surveysummary, which describes the structure
(for Terry Therneau)
predict.svyglm will impute zero for NA coefficients (Terry Therneau).
With se.fit=FALSE, predict.svyglm returns a numeric vector rather than a
svystat object
survey 4.4-2 (2024-03-20)
- Updated small-area vignette (Peter Gao)
survey 4.4-1 (2024-03-08)
survey 4.4
- A PPS variance matrix can now be specified as phase two of a two-phase design.
This includes poisson_sampling() as a model for non-response (for Pam Shaw, Jasper Yang)
svysmoothUnit() and svysmoothArea() as an interface to the SUMMER package for small-area
estimation (Peter Gao, Jon Wakefield, Richard Li)
survey 4.3
- by options(survey.use_rcpp), which defaults to TRUE
error in scaling Pearson residuals for svyrepglm led to confint.svrepglm with
likelihood profiling not finding the ends of the interval (Stephanie Zimmer)
svyolr with rank deficiency and subsetting of cases in raked designs was overwriting
the 'keep' variable (Justin Wishart)
print.svyciprop() was printing fewer digits for the upper CI limit than the
lower limit.
C++ code issues fixed
degrees of freedom for score F-test in loglinear models fixed (Thomas Loughin)
correct the scale in the F-distributed score test (Keiran Shao)
allow user to specify degf= in svrepdesign to avoid needing to compute it
(for Ben Schneider)
warn if svychisq() is used with a single variable (for Isabelle Michaud)
fix svyglm(rescale=FALSE) for replicate weights
survey 4.2-1 (2023-05-03)
- (Justin Wishart)
null_has_intercept was being ignored for AIC in linear regression
svycontrast() now works with the output of svyvar(),
eg to compute correlations from covariances
survey 4.2
- functions must supply one for every observation it was given in its input:
use 0 for observations removed by subsetting. (for Guilherme Jacob)
regTermTest(method="LRT") required the two models to use the same observations
(of course), but didn't check, so IT WAS WRONG.
It now subsets properly. (for Keiran Shao)
This will probably be the *last* interpreted-R-only version of survey. Future
versions will likely incorporate C++ code for faster variance computation and
for small-area estimation.
deffs in svyglm.svyrep.design (Ben Schneider)
svynls() allows for prior (eg precision) weights (for Gary Nelson)
improved names in svyquantile.svyrep.design (Ben Schneider)
trimWeights() could get into an infinite recursion (Ingmar Sturm)
data(myco) from Rao, Scott, and Skinner (originally from Clayton & Hills)
as.svrepdesign now throws an error with post-stratified/raked/calibrated
designs -- create replicates *first*, then calibrate (for Lauren Kennedy)
trimWeights now works with replicate-weights designs
score tests for svyglm (with Keiran Shao)
svyby(), and thus svyboxplot(), didn't handle the new quantile functions
correctly when standard error/ci weren't requested (Stephanie Zimmer, Raymond Pan)
svycontrast() threw an error on the output of svyby() with return.replicates=TRUE
(Alena Stern)
Fix regTermTest for svycoxph for the methods lookup changes in R 4.0
(and consequential change to marginpred)
We don't provide model.matrix.svycoxph any more;use the inherited
survival:::model.matrix.coxph
Recent survival::coxph() switches to robust variances with non-integer weights
so check for model$naive.var before model$var
Disable the pass-through from predict.svycoxph to predict.coxph for type="expected"
(Bryan Shepherd)
svyby( svyvar) would throw an error on domains with only one observation
(for Dirk Schumacher)
svyvar() computes sample size 'n' in the same way for na.rm=TRUE as for a domain
(for Raymond Pan)
xdesign() for crossed designs (which aren't strictly surveys, but are basically similar)
removed redundant loop in saddlepoint approximation to pchisqsum (Qiaolan Deng)
fix in summary(svyivreg) for variances (Chandler McClellan)
svyolr() didn't run for subsets of raked/calibrated designs (Antony Damico)
add predict.svyolr (for Vincent Arel-Bundock)
add anova.svycoxph (for Bryan Shepherd)
add stringsToFactors=TRUE to svyby to ensure factors have same levels in domains
(for various people including Stephanie Zimmer)
more complicated svyby example in ?svycontrast
svyranktest() gave an error for multiple groups with replicate weights (Kasuki Yoshida)
Additional chisquared test for tables with zeros (CrossValidated question #571328)
svydesign() has a 'calibrate.formula' option to tell R that your weights have
already been calibrated/raked/post-stratified (for Tobias Schoch)
svycontrast() didn't work on svrepglm objects without replicates (Thomas Loughlin)
error in svycoxph with rescale=FALSE (Jing Zhang)
error in vcov.svyrep.design with mse=TRUE (shows up in svyVGAM)
svyquantile() didn't pay attention to interval_type for replicate weights (David Jorquera Petersen)
svyquantile() qrules 5 to 9 now return the single data value when there's
just one (David Jorquera Petersen)
regTermTest() on svyolr() objects created in a function now finds the
design object more reliably. (for Pedro Baldoni)
regTermTest() will now test against null models in svycoxph()
Fixes to svyquantile: https://github.com/bschneidr/r-forge-survey-mirror/pull/7
(Ben Schneider)
anova.svyloglin was broken by change to anova.glm(test=NULL)
(Brian Ripley)
One-sample svyttest() on logical variable now tests for P(TRUE==0) not P(FALSE==0)
(Stephanie Zimmer)
rename svykm.fit to svykm_fit because CRAN tests
survey 4.1-1 (2021-07-19)
survey 4.1
- as oldsvyquantile() (for David Eduardo Jorquera Petersen)
svycontrast()'s improvements for statistics with replicates are now also there with
svyby(), for domain comparisons (Robert Baskin)
svyttest() now gives an error message if the binary group variable isn't binary
(for StackOverflow 60930323)
confint.svyglm Wald-type intervals now correctly label the columns (eg 2.5%, 97.5%)
(for Molly Petersen)
svyolr() using linearisation had the wrong standard errors for intercepts
other than the first, if extracted using vcov (it was correct in summary() output)
svyglm() gave deffs that were too large by a factor of nrow(design). (Adrianne Bradford)
svycoxph() now warns if you try to use frailty or other penalised terms, because they
just come from calling coxph and I have no reason to believe they work correctly
in complex samples (for Claudia Rivera)
coef.svyglm() now has a complete= argument to match coef.default(). (for Thomas Leeper)
summary.svyglm() now gives NA p-values and a warning, rather than Inf standard errors,
when the residual df are zero or negative (for Dan Simpson and Lauren Kennedy)
In the multigroup case, svyranktest() now documents which elements of the 'htest'
object have which parts of the result, because it's a bit weird (for Justin Allen)
svycontrast() gets a new argument add=TRUE to keep the old coefficients as well
twophase() can now take strata= arguments that are character, not just factor
or numeric. (for Pam Shaw)
add reference to Chen & Lumley on tail probabilities for quadratic forms.
add reference to Breslow et al for calibrate()
add svyqqplot and svyqqmath for quantile-quantile plots
SE.svyby would grab confidence interval limits instead of SEs if vartype=c("ci","se").
svylogrank(method="small") was wrong (though method="score" and method="large" are ok),
because of problems in obtaining the at-risk matrix from coxph.detail. (for Zhiwen Yao)
added as.svrepdesign.svyimputationList and withReplicates.svyimputationList
(for Ángel Rodríguez Laso)
logLik.svyglm used to return the deviance and now divides it by -2
svybys() to make multiple tables by separate variables rather than a joint table
(for Hannah Evans)
added predictat= option to svypredmeans for Steven Johnston.
Fixed bug in postStratify.svyrep.design, was reweighting all reps the same (Steven Johnston)
Fix date for Thomas & Rao (1987) (Neil Diamond)
Add svygofchisq() for one-sample chisquared goodness of fit (for Natalie Gallagher)
confint.svyglm(method="Wald") now uses t distribution with design df by default.
(for Ehsan Karim)
confint.svyglm() checks for zero/negative degrees of freedom
confint.svyglm() checks for zero/negative degrees of freedom
mrb bootstrap now doesn't throw an error when there's a single PSU in a stratum
(Steve White)
oldsvyquantile() bug with producing replicate-weight confidence intervals for
multiple quantiles (Ben Schneider)
regTermTest(,method="LRT") didn't work if the survey design object and model were
defined in a function (for Keiran Shao)
svyglm() has clearer error message when the subset= argument contains NAs (for Pam Shaw)
and when the weights contain NAs (for Paige Johnson)
regTermTest was dropping the first term for coxph() models (Adam Elder)
(this was in R>=4.0)
svydesign() is much faster for very large datasets with character ids or strata.
svyglm() now works with na.action=na.exclude (for Terry Therneau)
extractAIC.svylm does the design-based AIC for the two-parameter Gaussian model, so
estimating the variance parameter as well as the regression parameters.
(for Benmei Liu and Barry Graubard)
svydesign(, pps=poisson_sampling()) for Poisson sampling, and ppscov() for
specifying PPS design with weighted or unweighted covariance of sampling indicators
(for Claudia Rivera Rodriguez)
survey 4.0 (2020-04-03)
- called with a survey.design2 object and the influence=TRUE option. These allow
svyby() to estimate covariances between domains, which could previously only be
done for replicate-weight designs, and so allow svycontrast() to do domain contrasts
- svymean, svytotal, svyratio, svymle, svyglm, svykappa
Nonlinear least squares with svynls() now available
Document that predict.svyglm() doesn't use a rescaled residual mean square
to estimate standard errors, and so disagrees with some textbooks. (for Trent Buskirk)
survey 3.38
- and calculates the variance, rather than calculating the variance then using the
delta method. Allows geometric means to exactly match SAS/SUDAAN (for Robert Baskin)
vcov.svyrep.design to simplify computing variances from replicates (for William Pelham)
svykm() no longer throws an error with single-observation domains (for Guy Cafri)
Documentation for svyglm() specifies that it has always returned
model-robust standard errors. (for various people wanting to fit relative risk
regression models).
survey 3.37 (2020-01-21)
- Use the DBI-compatible 'odbc' package
set scale<-1 if it is still NULL after processing, inside svrepdesign()
[https://stats.stackexchange.com/questions/409463]
Added withPV for replicate-weight designs [for Tomasz Żółtak]
svyquantile for replicate-weight designs now uses a supplied alpha to get
confidence intervals and estimates SE by dividing confidence interval length
by twice abs(qnorm(alpha/2)). [For Klaus Ignacio Lehmann Melendez]
All the svyquantile methods now take account of design degrees of freedom and
use t distributions for confidence intervals. Specify df=Inf to get a Normal.
[For Klaus Ignacio Lehmann Melendez]
svyivreg() for 2-stage least-squares (requires the AER package)
warn when rho= is used with type="BRR" in svrepdesign [for Tomasz Żółtak]
Add "ACS" and "successive-difference" to type= in svrepdesign(),
for the American Community Survey weights
Add "JK2" to type= in svrepdesign
Warn when scale, rscales are supplied unnecessarily to svyrepdesign
More explanation of 'symbolically nested' in anova.svyglm
Link to blog post about design df with replicate weights.
Chase 'Encyclopedia of Design Theory' link again.
survey 3.36 (2019-04-27)
survey 3.35-3
- to BRR (Stas Kolenikov)
More fixes to svymle() with linear predictors for multiple parameters
(no change to results, but gets rid of warning)
allow svyby() to have a vector as the first argument
force character vectors to factor in id= argument of svydesign (fixes Stack Overflow 54239063)
survey 3.35-2
- for multiple parameters. (reported by Beat Hulliger)
survey 3.35-1 (2019-01-29)
- such as CHIS. (Elizabeth Purdom)
empty factor levels in the strata= argument to svydesign() no longer create strata
The twophase() function gave errors when the first phase of sampling had multiple
stages (reported by Pedro Luis Baldoni)
survey 3.35 (2018-12-17)
- interface; you can use ODBC connections with the DBI-compatible 'odbc' package
Some instances of deparse() needed to be paste(deparse(), collapse=""), notably in svyciprop() (Boris Fazio)
Fix to svycontrast had broken the no-names case (Brian Miner)
More helpful error message with missing values in replicate weights (Antony Damico)
svyglm() now uses match.call() rather than sys.call() for storing the call (for Michael Laviolette)
svystandardize() now takes over=~1 for the whole population (for Michael Laviolette)
svycralpha() does Cronbach's alpha (for Franziska Kößler)
many tests based on the printed output are moved to tests/testoutput because they
differ trivially between platforms and so aren't CRAN-compliant.
survey 3.34 (2018-10-12)
- fix match.names() for the case of all the same names in different order (Sebastien Lucie)
make rescaling of weights optional in svyglm and svycoxph (Greg Ridgeway)
USER VISIBLE CHANGE: default rescaling of weights in svyglm and svycoxph with replicate
weights is now mean=1, as it always was with svydesign objects, rather than sum=1.
This does not affect estimates or tests or comparisons, but the AIC and its effective
degrees of freedom will look more plausible, as will the deviance.
Fix handling of missing data for calibrated designs in svyranktest (for Brad Biggerstaff)
handle empty subsets in onestage, because svyby(). (for Greg Freedman)
allow offset() in svymle() (Patrick Brown)
svyhist() returns the same as hist(), plus when freq=TRUE a component
count_scale giving the scale factor between counts and density (for Ward Kingkade)
example of geometric means added to ?svycontrast (for Irene van Woerden)
move check for missing repweights later in the function to pick up more cases (Anthony Damico)
fix printing of predicted values from predict.svrepglm (for Anthony Damico)
added minqa::newuoa and minqa::bobyqa as options for svymle(), and made 'newuoa'
the default when a gradient is available
survey 3.33-2 (2018-03-12)
- partial fix in start= argument for svyglm() [still doesn't work inside function]
survey 3.33-1
survey 3.33 (2018-01-22)
- calibrate() now displays differences between sample and population names (for Stas Kolenikov)
cal_names() displays what the auxiliary variable names will be for a formula
regTermTest() now does Rao-Scott-type Wald tests, which I think are the same as SUDAAN's
"Satterthwaite Adjusted Wald Tests" (but I don't have an example to verify).
survey 3.32-2
- Add AIC method for svycoxph
survey 3.32-1 (2017-06-22)
- Add cal.sinh for the hyperbolic sine distance function (used in CALMAR2) with code from Maciej Beręsewicz
Coerce tbl_dfs to data frames in svydesign, svrepdesign, twophase, because they aren't actually a drop-in replacement.
survey 3.32 (2017-06-07)
- Sparse matrix support
- Heteroscedasticity parameters
- more flexible boundary constraints
Update references to AIC/BIC paper, Statistical Science review paper
More information on accuracy of pchisqsum methods
svyglm() didn't work with missing values in database-backed designs (Anthony Damico)
survey 3.31-8
- Remove the tests that don't produce character-identical output on all platforms (for CRAN)
survey 3.31-7
- Add psrsq() for pseudo-R^2 statistics (for Ward Kinkade)
survey 3.31-6
survey 3.31-5 (2016-12-01)
- guess the right factor levels when they aren't supplied in newdata= (for @thosjleeper)
fix return() without parentheses in svykm.R
survey 3.31-4
survey 3.31-3
- Added reference for svylogrank
Added example from YRBS for software comparison
Copied some names from NEWS into THANKS
survey 3.31-2 (2016-09-23)
survey 3.31-1
survey 3.31 (2016-08-05)
- explicitly :: or import ALL THE THINGS.
mse option for svrepdesign.character and svyrepdesign.imputationList was ignored (Antony Damico)
confint works on output of svycontrast (for Michael Laviolette)
denominator df fixed in confint.svyglm (Joey Morris)
svyboxplot rule for which lower-tail points are outliers was wrong (David Collins)
calibrate() with variable-specific epsilons and zero sample totals didn't work (Alex Kowarik)
document that regTermTest(method="LRT") can't handle models with a start= argument
and document how to use anova.svyglm instead. (Brad Biggerstaff)
update tests output for new formatting in current R.
survey 3.30-4
- as PREDMARG in SUDAAN (for Thomas Yokota and Anthony Damico)
- for the Wald method (Jared Smith)
survey 3.30-3 (2014-08-15)
- estimated (eg for quantiles). This fixes issues with svyby
dropped support for old version of hexbin
survey 3.30-1
survey 3.30
- svylogrank() does the generalised G-rho-gamma logrank tests
[methods from Rader and Lipsitz (and probably al)]
various CRAN fixes
survey 3.29-9
- BIC.svyglm, based on multivariate Gaussian likelihood for coefficients
svyglm.svyrep.design checks values are finite before replicating
calibrate() using a list of margins now allows named vectors for 1-d margins
survey 3.29-8
survey 3.29-7
- reference to the lavaan.survey package in ?svyfactanal
survey 3.29-6
survey 3.29-5 (2013-06-12)
- Parallel processing is now only available with R >=2.14
ddf argument really works now in confint.svyglm (Anthony Damico)
colour specification in plot.svykmlist now works (Mark Rosenstein)
svyplot() documentation explains how to annotate a hexbin plot
survey 3.29-4 (2013-03-11)
- to improve numerical stability
subset.svyimputationList now allows the subsets to end up with
different observations in them (for Anthony Damico)
subset.svyDBimputationList now gives an error if the subsets
have different observations, not just a warning that people
ignored.
svydesign gives an error if there is only one PSU, to catch
omission of tilde in svydesign(id=~1,...) (Milan Bouchet-Valat)
survey 3.29-2
- because confint.default() doesn't (Anthony Damico)
survey 3.29 (2012-09-26)
- withReplicates() has a method for svrepstat objects
added predict.svrepglm(), which can return replicates
saddlepoint approximation to sum of chisquares works further out into the tails
fixed bug in rescaling in calibrate() when initial weights are very wrong (Takahiro Tsuchiya)
documented df= argument in svyciprop(method="mean") (Anthony Damico)
added df= argument to other svyciprop methods for Stata compatibility (Anthony Damico)
survey 3.28-3
- svyby didn't allow deff="replace" (Francisco Fabuel)
svrepdesign(,type="other") now warns if scale, rscales arguments are not given
svystat, svrepstat objects now have a plot method (barplot, currently.)
svyplot(,type="bubble") now uses the basecol= argument for colors.
postStratify() now works when some input weights are zero
survey 3.28-2 (2012-07-03)
- calibrate() is more stable when the initial weights are wrong by orders of
magnitude (for Kirill Mueller)
calibrate() can now take a list of margins as input, similar to rake()
(for various people including Kirill Mueller)
survey 3.28-1 (2012-05-24)
- make.panel.svysmooth() sometimes had invalid bandwidth choices.
as.svrepdesign() now allows for fpc information not present in
the design object (Alistair Gray)
regTermTest(,method="LRT") works for svyolr(), and
method="Wald" now doesn't need user-specified df (for Zachary Grinspan)
svrepdesign() checks the length of the rscales= argument (Ward Kinkade).
Document the problem with in-line data-dependent variable construction
in svyby() (Anthony Damico)
Check for completely-missing groups in svyby
survey 3.28 (2012-02-03)
- withReplicates() has method for svyvar() output, to simplify multivariate analyses.
design effect estimate for svytotal with replicate weights was wrong (Daniel Fernandes)
transform() is now a synonym for update().
lots of partial argument matching removed to keep CRAN happy.
survey 3.27 (2012-01-06)
- anova(model1, model2) works for nested models even if not symbolically nested.
formula component of svyglm$call is now always named, so update() will work.
svyboxplot(,all.outliers=TRUE) didn't work for single boxes (Takahiro Tsuchiya)
survey 3.26-1 (2011-11-15)
- svyboxplot() has all.outliers= argument to plot all outliers
survey 3.26 (2011-10-14)
- The multistage bootstrap can use the multicore package if available.
calibrate() can take a vector of tolerances (for Alois Haslinger)
[this actually used to work by accident, but now it's documented]
Clearer error messages when post-strata contain NAs.
survey 3.25-1
- Clearer documentation about graphing discrete variables.
survey 3.25 (2011-08-05)
- added svylogrank() for logrank test for survival data.
added svyranktest() for two-sample rank tests.
svrepdesign() and as.svrepdesign() now have mse= argument to request
replicate-weight variances centered around the point estimate rather
than the mean of the replicates. The default is controlled by
options(survey.replicates.mse), which defaults to FALSE, consistent with
previous versions. (For Anthony Damico, among others)
survey 3.24-1
- of F statistics from pFsum().
survey 3.24 (2011-04-15)
- Algorithms from CompQuadForm (AS155 and AS204) now used for method="integration"
in pFsum and pchisqsum. These are more accurate and faster than the previous
implementations. If you use CRAN binary packages you will need at least R 2.12.
pFsum() saddlepoint and Satterthwaite methods are also much faster. The
saddlepoint approximation now works for the whole range, not just the right tail.
survey 3.23-3 (2011-03-28)
- Added pFsum() for linear combination of F distributions with same denominator.
better example (quantile regression) in withReplicates().
survey 3.23-2 (2011-03-14)
- svyby(, return.replicates=TRUE) now returns the replicates in the same
order as the printed output, and labelled. (for Bob Fay)
survey 3.23-1 (2011-03-03)
- Change in svyquantile() for replicate weights when using type="quantile".
Point estimate used to be mean of replicates, now is ordinary weighted quantile.
(for Bob Fay)
Small changes in handling of zero weights in svyquantile().
survey 3.23 (2011-02-28)
survey 3.22-4 (2010-10-13)
- of population counts. (for Jean Opsomer)
print.summary.pps wasn't being exported (Gonzalo Perez)
svyhist() ignored right= argument
predict.svycoxph() was slightly overestimating standard errors for survival curves.
[.pps and [.twophase2 crashed when no observations were removed (Gonzalo Perez)
survey 3.22-3 (2010-08-08)
- attempts to trim past the mean weight.
survey 3.22-2 (2010-05-05)
- regTermTest() now does F tests by default (for Chris Wild)
survey 3.22-1 (2010-04-16)
- svyrepstat, svyby, svyratio (for Richard Valliant)
added na.rm.by= argument to svyby(), to drop groups defined by
missing values of by= variables.
confint.svyby() uses SE(), not vcov(), so undefined values in replicates
are handled on a per-group basis.
svysmooth(,method="locpoly") now has automatic bandwidth choice, and
make.panel.svysmooth() will use this choice by default.
survey 3.22 (2010-04-02)
- fixed bug in design effects for subsets of calibrated or
database-based surveys
changed scaling in biplot.svyprcomp so area is proportional to
weight, rather than height proportional to weight.
survey 3.21-3
survey 3.21-2 (2010-03-19)
survey 3.21-1 (2010-03-16)
- svyquantile() reliably returns NA for NAs in data when na.rm=FALSE.
svymle() was not using analytical gradients with nlm() (Christian Raschke)
survey 3.21 (2010-03-10)
- (for Richard Valliant)
clearer documentation that svyquantile() needs ci=TRUE or keep.var=FALSE
to work with svyby()
added a simple random sample to data(api) as promised in book (Djalma Pessoa)
survey 3.20 (2010-02-09)
- because of convergence problem in coxph() with counting-process data (for Tapan Mehta)
added some multivariate statistics:
svyprcomp(): principal components, svyfactanal(): factor analysis.
added heuristic check that combined.weights= has been specified correctly.
confint.default wouldn't give CIs for multiple parameters with replicate weights, because
the vcov matrix didn't have variable names. (Art Burke)
More of the svyciprop() methods now work for replicate-weight designs.
The book of the package is now available! (see http://faculty.washington.edu/tlumley/svybook)
survey 3.19 (2010-01-20)
- svrepdesign() can produce database-backed designs
svyquantile() has a df argument to use a t distribution in
Woodruff's method (for Wade Davis)
calibrate() doesn't require an intercept in the calibration model (for Richard Valliant)
regTermTest() and model.frame() work with svyolr() (for Michael Donohue)
better printing of svyvar() output (for Brad Fulton)
twophase() documents more clearly that method="simple" is preferred for standard epi
designs where it works.
better error messages when a database-backed design has a closed connection
survey 3.18-1
- improved the description of confidence intervals and standard errors for
svyquantile.
survey 3.18 (2009-09-22)
- Fixed bug in multiple imputation analysis with multicore package.
The check for PSUs properly nested in strata had some false negatives.
survey 3.17 (2009-09-18)
- used for the subgroups in svyby(), the imputed data sets in with.svyimputationList
and with.DBsvyimputationList, and the replicate weights in svyglm.svyrep.design
and svyolr.svyrep.design. This requires the 'multicore' package and the
argument multicore=TRUE to the functions (in the absence of the multicore
package, the multicore=TRUE option is just ignored).
svyvar.svyrep.design handled NA values incorrectly (Arthur Burke)
print.summary.twophase2 wasn't exported, so summary(twophase.object)
gave Too Much Information (Norman Breslow)
svytotal.svyrep.design labelled the statistic it computed as 'mean',
although it really was the correct total. (Arthur Burke)
detection of PSUs not nested in strata was incorrect in some cases.
added xbins= option to svyplot for hexbin styles (for Bryan Shepherd)
print() method now has strata in a more predictable order (for Norman Breslow)
regTermTest(,method="LRT") now does Rao-Scott-type tests based on the estimated
loglikelihood ratio, for generalized linear models and the Cox model. Similarly,
confint.svyglm(,method="likelihood") does confidence intervals based on the
Rao-Scott-type likelihood ratio test.
Updated marginpred() to work with survival 2.35-7
Documentation fixes revealed by the new R pre-2.10 help parser
Added unwtd.count() to count the raw number of non-missing observations.
The new PPS designs now work with subset().
survey 3.16 (2009-06-02)
- sample indicators: Horvitz-Thompson and Yates-Grundy estimators,
Overton's approximation, Hartley-Rao approximation, a modified
Hartley-Rao approximation that depends only on sample data.
survey 3.15-1
survey 3.15 (2009-05-18)
- two-phase design, and the standard errors now exactly match
Sarndal et al. The underlying algorithms use sparse matrices
to store the weighted covariance of sampling indicators, and so
require the Matrix package. Use method="approx" in twophase()
to get the old methods, which use less memory.
added marginpred() for predictive margins, ie, predictions after
calibration/direct standardization on confounder distribution.
standard errors for predict.svyglm(,type="response") were
printing incorrectly.
as.data.frame.svrepstat now works when the result has
return.replicates=TRUE
The separate package odfWeave.survey provides methods for odfWeave::odfTable
for some survey objects.
formula() now works correctly on svykmlist objects with standard errors.
survey 3.14 (2009-04-15)
- errors for the Cox model. (for Norman Breslow)
standard errors for svykm use a bit less memory.
quantile.svykm can do confidence intervals
added some references on svykm standard errors.
tidied up some help pages.
survey 3.13 (2009-03-27)
- fix typo in svyquantile(interval.type="betaWald") and add
'degrees of freedom' correction to the effective sample size.
add 'degrees of freedom' correction to effective sample size
in svyciprop, type="beta".
SE, coef for svyratio objects now optionally convert to a vector
and confint() now works on ratios.
survey 3.12 (2009-03-22)
- Add svyciprop() for confidence intervals for proportions,
especially near 0 or 1
confint() works with svycontrast(), svyquantile(),
svyciprop() output.
bug fix for updates to ODBCsvydesign objects.
Add example of PPS sampling to example(svydesign), and link to
help for variance estimation. Add Berger(2004) reference.
svyby() now has vartype="ci" to report confidence intervals
(for Ron Burns)
update survival examples to work with new version of survival
package.
survey 3.11-2 (2009-02-24)
- many observations as calibration variables
pchisqsum(,type="saddlepoint") now works down to mean x 1.05
rather than mean x 1.2
The breaks= argument to svyhist() now works (Stas Kolenikov)
svyhist() works on database-backed designs.
survey 3.11-1 (2009-02-08)
- designs with missing data (Shelby Chartkoff)
svycoxph() gives a clearer error message for negative weights.
svyquantile() now has a 'betaWald' option, as proposed
by Korn & Graubard (1998), and has an option for handling
ties that appears similar to (some versions of) SUDAAN
(for Melanie Edwards)
plot.svycdf() has an xlab argument to override the default labels
survey 3.11 (2009-02-03)
- Rao and Wu n-1 bootstrap
An approximation for PPS without replacement due to Brewer
is available in svydesign()
svydesign() no longer warns if some fpc are exactly zero, but
still warns if they are suspiciously large or small
survey 3.10-1 (2009-01-08)
- svycontrast() has a 'default' method that assumes only a coef()
and vcov() method are available.
Fixed example code for anova.svyloglin.
Added predict(,type="terms"), termplot(), residuals(,type="partial")
for svyglm. As a result, the default for se= in
predict.svyglm has changed.
make.panel.svysmooth() makes a weighted smoother as a slot-in
replacement for panel.smooth(), eg in termplot().
print.summary.svyloglin was broken (Norm Breslow).
confint() method for svyglm has both Wald-type and
likelihood-type confidence intervals (based on Rao-Scott test)
documented that svykappa() requires factor variables.
svysmooth() doesn't fail when data are missing.
documented that update.svyloglin is faster than fitting a new
model.
dotchart() methods for svyby, svystat, svrepstat
svyloglin() handles missing data better.
svymle() didn't work if constant parameters were in any
position other than last.
svyby() now has a return.replicates argument (for Phil Smith).
logit and raking calibration could run into NaN problems with
impossible bounds. Step-halving seems to fix the problem.
survey 3.10 (2008-10-28)
- improvements in graphics for subsets of database-backed designs.
barplot methods for svystat, svrepstat, svyby objects.
svytable() for database-backed designs
quantiles work with svyby(covmat=TRUE) for replicate-weight designs.
fix printing of p-value in svychisq, type="lincom"
better error messages for misspecified fpc in svydesign()
database-backed analysis of multiple imputations.
formatting changes to coef.svyquantile, SE.svyquantile, svyby
svrepdesign works with multiple imputations (though not with databases)
fix for missing factor levels in subsets of database-backed designs
allow svychisq(statistic='lincom') with replicate weights.
quantile regression smoothers in svysmooth()
add svychisq.twophase() (for Norm Breslow)
changed defaults in predict.svyglm so that plot.lm works
(for Patricia Berglund)
svyloglin() for loglinear models, with Wald and Rao-Scott tests.
pchisqsum() (and svychisq, anova.svylogin) have a saddlepoint approximation.
survey 3.9-1 (2008-09-11)
- database-backed designs.
svyboxplot() and svycdf() now work with database-backed designs.
ODBC support for database-backed designs.
modified the degrees of freedom calculation in svyglm.
survey 3.9 (2008-09-09)
- can be the name of a database table in a relational database with a
DBI-compatible interface. Only the meta-data is kept in R, other variables
are loaded as necessary.
survey 3.8-2
survey 3.8-1 (2008-08-21)
- coef.svyolr returns intercepts as well (by default).
svyolr() has a method for replicate-weight designs
print methods for svykm, svykmlist weren't exported.
survey 3.8 (2008-08-08)
- license is now GPL 2|3 to accomodate code ripped from MASS package
svykm() for survival curves (no standard errors yet)
survey 3.7 (2008-07-24)
- svyby() and svytable() work on twophase objects.
svychisq() has statistic="lincom" for linear combination of chisquare,
the exact asymptotic distribution.
Added interface to mitools package for analyzing multiple imputations
svykappa() for Cohen's kappa (for Tobias Verbeke)
survey 3.6-13 (2007-10-29)
- calibration variables (Richard Valliant)
calibrate() can be forced to return an answer even when the specified
accuracy was not achieved.
survey 3.6-12 (2007-09-25)
- Added svycdf() for cumulative distribution function estimate.
survey 3.6-11 (2007-07-09)
- slightly wrong population totals. (Alistair Gray)
vcov() for two-phase designs gives the contributions from each phase
for a wider range of statistics. (Norman Breslow)
fixes for codetools warnings.
survey 3.6-10 (2007-04-20)
- design (Lucia Hindorff)
Added tests/kalton.R with reweighting examples.
make.calfun() for creating user-specified calibration distances.
NOTE: Calling grake() directly now requires a calfun object rather than
a string: see help(make.calfun).
survey 3.6-9 (2007-02-27)
- for n/(n-1) factor (Djalma Pessoa)
method= argument to svycoxph() didn't work (Lisa McShane)
svyquantile did not treat missing values as a domain
(Nicole Glazer)
fix for change in pmax/pmin (Brian Ripley)
Add pchisqsum for distribution of quadratic forms.
survey 3.6-8 (2007-01-19)
- variable was used (Lisa McShane)
survey 3.6-7
- degf.svyrep.design uses a cached value rather than
recomputing.
survey 3.6-6 (2006-12-19)
- (Jacques Ferrez)
Documented that svyquantile(interval.type="score") may not be any
more accurate
Broken link due to typo in svyratio.Rd (Giuseppe Antonaci)
postStratify could overestimate standard errors for post-strata cutting
across existing sampling strata. (Ben French)
svycoxph() would not run for subsets of calibrated designs.
(Norman Breslow)
survey 3.6-5 (2006-10-19)
- Add amount= option to svyplot
Design effects for totals were wrong for PPS
sampling. (Takahiro Tsuchiya)
survey 3.6-4 (2006-10-03)
survey 3.6-3 (2006-09-25)
- standard errors. As a result, it can't be used on pre-2.9
svydesign objects.
calibrate() does not warn about name mismatches when population
argument has no names.
svyCprod, svyrecvar, grake now exported.
survey 3.6-2 (2006-08-04)
- svycontrast() fix for svyby() with empty groups (ine.pt)
survey 3.6-1 (2006-07-12)
- in svrepdesign()
Fix derivative to get faster convergence in logit calibration
(Diego Zardetto)
svycontrast() can take named vectors of just the non-zero coefficients.
Nonlinear combinations of statistics with svycontrast()
survey 3.6 (2006-06-26)
- Work around for strange S4 class/NAMESPACE issue with hexbin
plots; actual fix requires more understanding.
regTermTest handles MIresult objects.
Add dimnames, colnames, rownames methods (for ine.pt)
svysmooth for scatterplot smoothers and density estimation
(needs KernSmooth)
Give a warning when fpc varies within strata.
svycontrast() for linear combinations of survey statistics
covmat=TRUE option to svyby() for replicate-weight designs, so
the output can be used in svycontrast().
survey 3.5 (2006-05-15)
- information (ie AIPW).
Remove JSS article and survey-vanderbilt.pdf from inst/
since they are now seriously out of date.
paley() now gives matrices of order 2^k(p+1), which are
usually of minimal or near-minimal size.
Drop 72x72 and 256x256 Hadamard matrices, which are easy
to recreate, from precomputed set and replace 36x36 with the
one from Plackett & Burman, which has full orthogonal balance
Note that changes to svyby now require R 2.2.0 or later.
predict.svyglm has option to return just variances (rather
than entire variance-covariance matrix)
drop.empty.groups now works when the grouping variables
are not factors.
Add a namespace
Move precomputed Hadamard matrices from inst/hadamard.rda to
R/sysdata.rda
survey 3.4-5
- Add drop.empty.groups option to svyby
survey 3.4-4 (2006-04-06)
- up to 7919, works for larger sizes if the user supplies
a suitable prime.
calibrate() now reorders elements of 'population' to match
column names of model matrix if necessary.
predict() method for svyglm (for Phil Smith, Andrew Robinson)
svyratio() for two-phase designs.
Added vignette on domain estimation.
svyby() can report multiple vartypes.
survey 3.4-3 (2006-03-16)
- increase default number of iterations in calibrate()
survey 3.4-2 (2006-02-20)
- Default denominator df for svyglm, svycoxph in regTermTest.
survey.lonely.psu now applies to as.svrepdesign.
keep up with changes in all.equal() for R 2.3.0
survey 3.4-1 (2005-12-29)
- jackknife replicates are not created for these strata
- svytotal does not use these strata in variance calculation.
- svytotal, svymean, svyratio,svyquantile,svyglm recognize
designs (eg subsets) where all strata are self-representing.
[.repweights_compressed does less copying and is a lot faster
for large designs
Added verbose= option to svyby() to monitor slow computations.
Added vartype="cv","cvpct" options for svyby().
Two-phase designs gave incorrect variances in some cases [they
were correct if the first stage was infinite superpopulation
sampling or if all phase 1 ultimate sampling units were
represented in phase 2]. These are fixed but twophase() now
limits the first phase to single-stage cluster or element
sampling. [detailed bug report from Takahiro Tsuchiya]
added vignette describing estimator of phase-one variance in
two-phase designs
minor speedup in svyrecvar() for self-representing strata
added make.formula() for convenience with many variables.
survey 3.4 (2005-12-09)
- two vignettes: a simple example and a description of two-phase epi designs
svyratio handles missing data.
cv() gives NaN rather than an error when the statistic is zero (for
[email protected])
oldsvydesign() is officially deprecated
Jackknife variances for strata with a single population PSU were wrong
(non-zero) ([email protected])
svyglm refused to work on subsets of calibrated designs
survey 3.3-2 (2005-11-14)
- as.data.frame methods for svystat, svrepstat
regTermTest can do F-tests now (Daryl Morris).
fix documentation of value for as.svrepdesign (Alan Zaslavsky)
survey 3.3-1 (2005-10-10)
- sampling stages are stratified
Multistage recursive variances were only going to two stages.
Add "(with replacement)" to output of print.survey.design2 when
no fpc is specified.
survey 3.3 (2005-09-09)
- ratio, logit, (for Ana Quiterio)
svytable() could sometimes leave the class attribute off the result.
summary() now gives tests of association for svytable().
svychisq() works for replicate designs
degf() gives approximate degrees of freedom for replicate designs.
Clearer error messages when design information is missing.
survey 3.2-1 (2005-08-24)
- The "probability" option added to svyquantile for replicate designs
in 3.1 computed standard errors for the wrong tail. (Gillian Raab).
survey 3.2 (2005-07-15)
- Add bounded regression calibration to calibrate()
survey 3.1-1
- difference to design effect computations. (for Takahiro Tsuchiya)
Test for presence of intercept in calibrate() was too fussy.
survey 3.1 (2005-06-13)
- intervals on the probability scale and transform, so they are valid for
jackknife designs. (as Gillian Raab suggested long ago)
Analyses on replicate weights should use eg svymean, which has
methods for replicate weight designs; the old (eg svrepmean) variants
are now deprecated.
calibrate() can now use regression models with variance proportional
to linear combination of predictors (and so can duplicate ratio
estimators of means and totals)
Prettier labelling of objects created by postStratify(), calibrate(),
update(), subset()
svytotal on replicate weight designs was computing means, not totals
(probably since 3.0).
survey 3.0-1 (2005-05-24)
- (this doesn't happen in reality but is the recommended analysis for
handling certainty PSUs in some large NCHS studies).
Let svyby() handle vectors that are not in the design object (even
though they are discouraged)
calibrate() was working only under stratified/simple random sampling.
Allow user-supplied Hadamard matrix for brrweights.
as.svrepdesign gave a spurious warning when converting post-2.9-1
objects without finite population corrections to BRR.
Allow multicolumn response variable in svymle() (for survival data)
Add nlm() as the default optimization method for svymle().
survey 3.0 (2005-05-09)
- Added deff="replace" option to compute design effects comparing to
simple random sampling with replacement, eg for designs where the weights
do not sum to the population size. (for Gillian Raab)
Added more references for median estimation.
Added separate ratio estimator of totals for stratified
samples. (for Renzo Vettori)
cv.svyratio was inverted.
rake() on survey design objects was accumulating cruft in the
postStrata component on each iteration.
Subsetting of raked designs without replicate weights was
broken (Steve Roberts)
Standard errors were wrong for some domain estimates in
post-stratified models without replicate weights.
More extensive tests comparing domain estimates to equivalent
ratio and regression formulations.
Changed default in svyby to keep.var=TRUE
Prettier stratum labels.
New homepage at http://faculty.washington.edu/tlumley/survey/
svyplot(type="hex") works with both pre1.0 and post1.0 versions
of the hexbin package.
Fixed svychisq denominator degrees of freedom for stratified designs
for bug introduced by multistage revision. (Takahiro Tsuchiya)
survey 2.9-1 (2005-04-05)
- Added inst/twostage.pdf with examples of two-stage analyses.
Handling of fpc specified as proportion in the absence of weights
was wrong.
survey 2.9 (2005-02-24)
- object. The old objects are deprecated; they may be converted with
as.svydesign2. Use options(survey.ultimate.cluster=TRUE) to get
the same one-stage standard errors as earlier versions and
options(survey.want.obsolete=TRUE) to turn off the annoying warnings
about old-style survey objects. If you must create old-style survey
objects use oldsvydesign().
As a consequence of the redesign, most of the svyxxx functions
are now generic, with methods for both svydesign and svrepdesign
objects. Use svymean instead of svrepmean, for example.
Added more Hadamard matrices, including the Paley construction.
brrweights() now finds designs of nearly optimal size for most surveys.
Faster svymean, svytotal for replicates, with less memory use.
Added "bootstrap" option for as.svrepdesign
svyby and ftable.svyby now handle Deff (expanded from a suggestion
by Tobias Verbeke)
svyhist() for probability-weighted histograms
added svycoxph() for replicate weight designs
The "lonely.psu" corrections will be applied to strata with a single
PSU in a subset (domain) if options("survey.adjust.domain.lonely")
is TRUE. The default is FALSE.
subset.survey.design was not working for post-stratified designs.
Added a PDF file with examples from UCLA ATS web site, including
comparisons with WesVar and SUDAAN. (inst/ucla-examples.pdf)
Added slides from a talk at Vanderbilt University.
(inst/survey-vanderbilt.pdf)
Fixed Deff to use simple random sampling without replacement.
Much faster confidence intervals for quantiles based on inverting a
Wald test are now default. These are less accurate in small
samples; the old method is still available.
(based on suggestion from Gillian Raab)
survey 2.8-4
- data(hospital) now has two sets of weights, one matching the
UCLA ATS site and one matching the original reference.
(from Tobias Verbeke)
summary.svyrep.design was reporting 1 replicates for compressed
weights (but still computing correctly)
survey 2.8-3 (2004-11-22)
- Add deff() to extract design effects.
survey 2.8-2
survey 2.8-1 (2004-11-06)
- ftable.svyby didn't work with a single by() variable (for Gillian Raab)
Missing values now allowed in svychisq(). (for Lee Sieswerda)
survey 2.8 (2004-09-22)
- add ftable.svyby
postStratify for svydesign surveys.
survey 2.7-1
survey 2.7
- of replicate weight matrix (and in rake(), postStratify()). Also
function compressWeights() to do this to arbitrary replicate designs.
terms() reorders variables in interactions, which confused regTermTest
(Daniel Almirall)
Added extractor function SE() for standard errors (Andrew Robinson)
hadamard() now finds smaller Hadamard matrices.
svyCprod warns if a subset has only one PSU in some stratum
(Gillian Raab)
Added tests/lonely.psu.R
Added another option "average" for lonely.psu (Gillian Raab)
svydesign can now detect from sampling weights or fpc when a stratum
with a single PSU is self-representing, and in these cases
options("survey.lonely.psu") is not used.
ftable.svystat and ftable.svrepstat to produce better tables of
percentages and totals.
Experimental set of functions to help in computing non-response weights
(see ?nonresponse for details)
survey 2.6-2 (2004-08-10)
- Subsetting didn't work right for single-observation subsets.
svyglm and svycoxph had scoping problems when run inside a
function (Daniel Almirall)
svyglm and svycoxph now accept weights (to be multiplied by
the sampling weights)
With R 2.0.0 less copying will occur, especially when variables=
is not specified in a design
survey 2.6-1
survey 2.6 (2004-07-08)
- Add coefficient of variation for mean, total, ratio,...
variables= argument of svydesign works with missing data (Tobias Verbeke)
Fix reference to Binder (1991) (Tobias Verbeke)
Means for factors now give cell means.
coef and vcov methods for svystat and svrepstat.
Another tiny example dataset from the VPLX manual
svrepvar was incorrect for multiple variables simultaneously
Better error messages for missing data in svrVar.
survey 2.5 (2004-06-01)
- svyplot() for weighted graphics (some of these require "hexbin")
Examples for rake(), postStratify()
svyby() works for svrepdesign analyses as well
added subset.svyrep.design()
svrepvar() added
Design effects for means and totals. (Gillian Raab)
survey 2.4 (2004-05-19)
- Clearer output for print.svycoxph() (Daniella Gollinelli)
Rao-Scott adjusted tests for contingency tables.
svyby() for tables of means, medians, etc
survey 2.3-2 (2004-05-10)
survey 2.3-1
survey 2.3 (2004-04-22)
survey 2.2-1
survey 2.2
- If population size is specified, but not weights or probabilities,
work out the probabilities from the population size
- Clearer error message when some design information is NA
(for Tobias Verbeke)
- better update() methods
survey 2.0 (2003-08-21)
survey 1.9-3
- as.svrepdesign wasn't handling unstratified cluster samples right.
Check for fpc in multistage samples, which we don't handle.
add print method for basic survey statistics
add rake()
California API data.
survey 1.9-2 (2003-08-15)
survey 1.9-1
survey 1.9 (2003-07-26)
- Replication weight analyses (alpha version)
survey 1.4 (2003-05-25)
- in svydesign now work.
- The examples in svyglm incorrectly had a data= argument.
survey 1.3 (2003-04-04)
survey 1.2 (2003-03-06)
- added regTermTest for testing regression terms.
survey 1.1 (2003-02-24)
- subpopulations produced with select or subscripting.
survey 1.0 (2003-02-04)
survey 0.9-5
- individuals
- added Cox models
survey 0.9-4 (2003-01-31)
- not number of PSUs, and was averaging observations rather than
PSU means to compute stratum means.
- Bug in handling multiple levels of cluster id in svydesign
survey 0.9-3 (2003-01-29)
- Adjustments for stratum with single PSU (Fred Rohde)
Fixed svydesign(nest=TRUE) to work with strata
survey 0.9-1 (2003-01-23)