Noah Greifer @noahgreifer.bsky.social · 09/10/2026New vignette on the #rstats WeightIt website describing the various weighting methods available and how to choose among them: ngreifer.github.io/WeightIt/art...ngreifer.github.ioWeighting Methods 0275
Noah Greifer @noahgreifer.bsky.social · 08/10/2026I assume they normalized the density to have the same area in each category. Makes sense because the size of each group is impertinent to the observation. 110
Noah Greifer @noahgreifer.bsky.social · 06/10/2026I guess what I was thinking was a bit out of scope, maybe closer to what rlang offers, which isn't package development per se, but contains general-purpose tools R package authors would use in their packages. This View is more about infrastructure and architecture. 020
Noah Greifer @noahgreifer.bsky.social · 06/10/2026Already discovered a new tool to use from this ({patrick}), great addition! Wondering if packages that support argument checking like {checkmate} belong here? 110
Noah Greifer @noahgreifer.bsky.social · 04/10/2026Link here:stats.stackexchange.comLogistic regression or T test?A group of persons answers one question. The answer can be "yes" or "no". The researcher wants to know whether age is associated with the type of answer. The association was assessed by doing a 062
Noah Greifer @noahgreifer.bsky.social · 04/10/2026This is one of my favorite statistical facts, which I never see referenced: 6616
Noah Greifer @noahgreifer.bsky.social · 03/10/2026I recently learned about Tweedie regression... could be useful here instead. 120
Noah Greifer @noahgreifer.bsky.social · 02/10/2026And if you're thinking "Okay but I don't want to assume linearity of the predictor in my beta regression" I have something exciting for you in the works... 260
Noah Greifer @noahgreifer.bsky.social · 18/09/2026Oh yeah I guess ordinal_weightit() throws away empty outcome levels... maybe I should change that. Thanks for running it! 111
Noah Greifer @noahgreifer.bsky.social · 18/09/2026Why am I suddenly so passionate about the BART internals? Wouldn't you like to know...static.klipy.comEmoji Rubbing HandsALT: Emoji Rubbing Hands 040
Noah Greifer @noahgreifer.bsky.social · 18/09/2026BART is really nice for a frequentist who doesn't like priors because the BART priors are so far removed from the estimand posterior that it doesn't feel like you're prior-ing yourself into a finding. Also the default priors are sensible. So you get a flexible model with a posterior almost for free. 3110
Noah Greifer @noahgreifer.bsky.social · 18/09/2026I believe WeightIt::ordinal_weightit(., br = TRUE) is the only implementation of ordinal PO regression in R (brglm2 has bracl() which is ordinal AC). If you have your code and its easy to run, would you try it with that? 210
Noah Greifer @noahgreifer.bsky.social · 18/09/2026I am inclined to agree with @jaredhuling.bsky.social that some kind of penalization could prevent this. Two identical thresholds mean an -Inf MLE for the log difference between two thresholds, which is how they are parameterized in MASS::polr(). 110
Noah Greifer @noahgreifer.bsky.social · 18/09/2026Nice demonstration! So it looks like the thresholds around the empty cell are identical and take the same value when the empty level is omitted. This does feel like a bad feature of the model since emptiness in the sample doesn't imply emptiness in the population. 100
Noah Greifer @noahgreifer.bsky.social · 18/09/2026This is an amazing resource generally! Thanks so much for sharing! 020
Noah Greifer @noahgreifer.bsky.social · 17/09/2026This is just a thought experiment, but I haven't really seen it discussed. I imagine the two approaches could yield different results. And what would happen with two adjacent categories with no responses? The threshold between them (if kept) would be unidentified. 630
Noah Greifer @noahgreifer.bsky.social · 17/09/2026Let's say I have a discrete 1-5 scale, and I want to model it with ordinal regression. Normally, this would involve estimating 4 threshold parameters. Let's say no one selects option 2. Should I retain the empty category and estimate its upper threshold? Or collapse to 4 levels w/ 3 thresholds? 552
Noah Greifer @noahgreifer.bsky.social · 17/09/2026BART was my gateway drug. Beauty will be borne of this addiction… 0141
Noah Greifer @noahgreifer.bsky.social · 16/09/2026As a package writer, comments like this are what make it all worth it! 110
Noah Greifer @noahgreifer.bsky.social · 27/08/2026I'm using it in a new R package I'm working on :) 000
Noah Greifer @noahgreifer.bsky.social · 26/08/2026Can you explain this one to me as a non-Simpsons-watcher? 120
Noah Greifer @noahgreifer.bsky.social · 25/08/2026Also these are making me realize I haven't watched The Simpsons since I don't get a single one! I guess I'm not the right person to make a Simpsons pun in my R package name 😔 120
Noah Greifer @noahgreifer.bsky.social · 25/08/2026Someone already used bartMan! cran.r-project.org/package=bart...cran.r-project.orgbartMan: Create Visualisations for BART ModelsInvestigating and visualising Bayesian Additive Regression Tree (BART) (Chipman, H. A., George, E. I., & McCulloch, R. E. 2010) <<a href="https://doi.org/10.1214%2F09-AOAS285" target="_top">doi... 020
Noah Greifer @noahgreifer.bsky.social · 25/08/2026Since you're a Simpson nerd, help me pick a name for my new BART-based R package 641
Noah Greifer @noahgreifer.bsky.social · 10/08/2026This really makes me wish I could do grad school over again as your student. Maybe I should just get a second PhD? 150
Noah Greifer @noahgreifer.bsky.social · 07/08/2026Related: doi.org/10.1017/pan....doi.orgUnderstanding, Choosing, and Unifying Multilevel and Fixed Effect Approaches | Political Analysis | Cambridge CoreUnderstanding, Choosing, and Unifying Multilevel and Fixed Effect Approaches - Volume 30 Issue 1 051
Noah Greifer @noahgreifer.bsky.social · 06/08/2026Yes, I would say so! I'm just being persnickety since randomization inference wouldn't work for what I do. 110
Noah Greifer @noahgreifer.bsky.social · 06/08/2026I don't know about "default"... it assumes the only randomness is in treatment assignment, but in many cases randomness comes from sampling or realization of an error term. The permutation test only allows you to make inference to the distribution of assignments for your one sample. 120
Noah Greifer @noahgreifer.bsky.social · 05/08/2026Knowing that I said something profound enough to be in your blog post is an honor :) My own irreverent take on odds ratios: ngreifer.github.io/blog/an-odds...ngreifer.github.ioAn Odds Ratio Paradox – Noah GreiferNoah Greifer’s website 3290
Noah Greifer @noahgreifer.bsky.social · 04/08/2026Yup! It doesn't accept svydesign objects, but you can supply sampling to weights to almost all weighting methods via the `s.weights` argument to weightit(), and you can adjust for clustering in the outcome models using the `cluster` argument to, e.g., glm_weightit(). See here:ngreifer.github.ioEstimating Effects After Weighting 110
Noah Greifer @noahgreifer.bsky.social · 03/08/2026Answers: 1. Censoring weights 2. Multilevel propensity scores 180
Noah Greifer @noahgreifer.bsky.social · 03/08/2026I hope you find these updates to WeightIt useful! If you have any comments, feature requests, or bug reports, please get in touch! #Rstats #Statssky #EpiSky #Causalinferencecran.r-project.orgWeightIt: Weighting for Covariate Balance in Observational StudiesGenerates balancing weights for causal effect estimation in observational studies with binary, multi-category, or continuous point or longitudinal treatments by easing and extending the functionality ... 040
Noah Greifer @noahgreifer.bsky.social · 03/08/2026- M-estimation in subgroups Previously, using the `by` argument to estimate weights in subgroups meant you couldn't use M-estimation. Now, M-estimation is supported, which should facilitate subgroup and moderation analysis. 120
Noah Greifer @noahgreifer.bsky.social · 03/08/2026- Bias-reduced models Ordinal and multinomial models fit through ordinal_weightit() and multinom_weightit() now can be bias-reduced using corrections by Firth and @ikosmidis.com, which prevents infinite estimates and improves over MLE in bias and variance. M-estimation supported! 120
Noah Greifer @noahgreifer.bsky.social · 03/08/2026- Weights for continuous treatments Weights need estimates of the marginal density as well as the conditional density. Previously, the same density was used for both. Now, the marginal density is computed by marginalizing over the conditional density, yielding better weights. 110
Noah Greifer @noahgreifer.bsky.social · 03/08/2026- Multilevel PS Propensity scores can be estimated incorporating random effects to model, e.g., students nested within schools. The model formula is passed to lme4::glmer(). All treatment types are supported, as are BART-propensity scores with random effects through the stan4bart package.ngreifer.github.ioPropensity Score Weighting Using Generalized Linear Models — method_glmThis page explains the details of estimating weights from generalized linear model-based propensity scores by setting method = "glm" in the call to weightit() or weightitMSM(). This method can be used... 240
Noah Greifer @noahgreifer.bsky.social · 03/08/2026- Censoring weights WeightIt now supports the estimation of censoring weights, as part of a point or longitudinal treatment. To identify that a variable is a censoring indicator, its model formula should have the .cens() marker, e.g., .cens(C) ~ X1 + X2. M-estimation SEs are supported!ngreifer.github.ioMark a censoring indicator in a model formula — .cens.cens() marks a variable as a censoring indicator rather than a treatment, requesting inverse probability of censoring weights (IPCW). It is most often used on the left side of a formula supplied to w... 120
Noah Greifer @noahgreifer.bsky.social · 03/08/2026On top of this are many, many bug fixes and a dramatically expanded testing suite. See the full list here: ngreifer.github.io/WeightIt/new... I'll discuss the major new features below.ngreifer.github.ioChangelog 110
Noah Greifer @noahgreifer.bsky.social · 03/08/2026I'm so happy to announce version 2.0.0 of my #Rstats package WeightIt is out on CRAN! New features: censoring weights, multilevel propensity scores, improved weights for continuous treatments, bias-reduced ordinal and multinomial models, M-estimation in subgroups Check out the website below!ngreifer.github.ioWeighting for Covariate Balance in Observational StudiesGenerates balancing weights for causal effect estimation in observational studies with binary, multi-category, or continuous point or longitudinal treatments by easing and extending the functionality ... 29136
Noah Greifer @noahgreifer.bsky.social · 03/08/2026Good guesses, but not quite. Maybe 🫥 would be a better clue for the first one? 110
Noah Greifer @noahgreifer.bsky.social · 03/08/2026We also have an article here about how to compute them: doi.org/10.1093/aje/...doi.orgConfidence regions for multiple outcomes, effect modifiers, and other multiple comparisonsAbstract. Epidemiologists are sometimes interested in estimating multiple parameters. In this context, confidence intervals are not guaranteed to provide s 020
Noah Greifer @noahgreifer.bsky.social · 03/08/2026I care about this a lot and put simultaneous (curvewise) confidence bands into my package adrftools by default. I think conf bands are useful for showing that the estimated curve itself shouldn't be taken seriously as the truth. I also include specific tests of a curve's flatness or linearity. 150
Noah Greifer @noahgreifer.bsky.social · 03/08/2026Exciting new updates to #Rstats WeightIt coming soon... 👀 Any guesses? Here are two clues in emoji form: 1. 💀 2. 🏫 (Read separately! no death in schools please) 240
Noah Greifer @noahgreifer.bsky.social · 03/08/2026Fascinating and clear paper by @corymccartan.com and @melodyyhuang.bsky.social, greatly enhancing our understanding of how Bayesian Additive Regression Trees (BART) works and why it is so effective. A must-read for my fellow BART enthusiasts. #statssky #causalinference 13911