1 casual #ResearchAssistant position at #UNSW . At this stage, we intend to offer it to a successful UNSW #PhD scholarship applicant. See krivitsky.net/blog/job/dis... for details and instructions.
The scholarship deadline to commence in February 27 is 17 April, so please contact me by 27 March.
Posts by Pavel N. Krivitsky
2 fully funded (tuition fees + stipend) #PhD scholarships at #QUT and #USYD . See www.qut.edu.au/study/fees-a... for details and instructions.
Applications are considered on a rolling basis; successful candidates must commence by 1 August 26.
We (@angelaguerrero.bsky.social @michelelbarnes.bsky.social @krivitsky.net) are looking a number of #PhD and paid #ResearchAssistant positions to work on #SocialNetworkAnalysis for #DisasterPreparedness. Details and links below. Please share with anyone potentially interested.
#rstats ๐ฆ {ergm} 4.12.0 is now on #CRAN. It's mostly bug fixes and incremental improvements, but the one you're most likely to notice is that most long-running routines now provide nice progress bars via {cli}, so you aren't left hanging. Other major changes at cran.r-project.org/package=ergm... .
For those building on top of {ergm}, there is now an experimental C++ shim (wrappers around C structs) for implementing ERGM statistics and proposals using idiomatic C++. Check out the vignette (cran.r-project.org/package=ergm...). This was easier than I had expected, thanks to coding AIs.
For advanced users, there is a ChangeStats(formula) constraint, which rejects all proposals that change the value of the specified statistics and operator I(x) that substitutes ERGM formula x or initialised model into its formula, it easier to assemble complex formulas out of smaller components.
Also, the Sampson's monks datasets included with the package have been cleaned up and augmented; in particular, they now include the scores (+3, +2, etc.) and the dislike networks as well (though granted, it is not clear which of those were contemporaneous as opposed to retrospective).
A time-saver for those fitting models with many different terms: nonidentifiability/multicollinearity detection code now tries to figure out precisely which statistics are linearly dependent on which and pretty-prints the result.
The gof() family of functions now supports valued ERGMs. This has been a long-requested feature, and it's finally here. The only built-in statistic is the empirical CDF of edge values, but you can also now put any statistic on the GOF formula, even if it won't be as pretty.
#rstats ๐ฆ {ergm} 4.11.0 is now on #CRAN. It looks like I never posted the highlights for the 4.10.0 release, so I'll just list them together. As always, major changes at cran.r-project.org/package=ergm... . Enjoy!
Initial release of #Rstats ๐ฆ {piecemeal} for wrangling large simulation studies is now on #CRAN . A demo here: cran.r-project.org/package=piec... . I believe that brings me up to 10. ๐
So, this is what the typical first line would look like:
sim <- piecemeal::Piecemeal$new(dir)
or
sim <- Piecemeal::Piecemeal$new(dir)
Thoughts?
Getting this ready for #CRAN, a quick poll: should I call it {piecemeal} or {Piecemeal}? It's basically one #R6 class, `Piecemeal`, e.g.,
sim <- Piecemeal$new(tmpdir) # Initialise
sim$worker(f)$nrep(5)$ etc. # Set up
sim$run() # Execute
results <- sim$result_df() # Collate
#rstats ๐ฆ {latentnet} 2.12.0 is now on #CRAN. It implements a long-requested feature for fitting count networks (interactions, co-occurrences, etc.) using a binomial model. Different pairs of actors can now have different binomial "trials". Full news at cran.r-project.org/package=late... .
Looking forward to this!
krivitsky.net/sunbelt2025/ is now linked from sunbelt2025.org by @sunbelt2025paris.bsky.social l . Double-checking the code now... ๐
This list is based on the PDF you can export from Whova, which I hopefully parsed correctly. It is in no way endorsed by @insna.bsky.social or @sunbelt2025paris.bsky.social 's organisers. I will strive to keep it up to date throughout the conference, but the updates are not automatic.
To work around Whova app's apparent inability to actually tell you what talks (not sessions!) are coming up next, I've extracted the list of all upcoming @sunbelt2025paris.bsky.social talks sorted by the talk's (not the session's!) start time: krivitsky.net/sunbelt2025/ . Feel free to share around.
Version 1.1.3 of {ergm.ego}, a #rstats ๐ฆ for #ergm modelling of #egodata, is now on #CRAN. This is mostly a bugfix and optimisation release. Details at cran.r-project.org/package=ergm... .
#ergm 4.9.0 #rstats ๐ฆ is on #CRAN . This release improves robustness, introduces or improves some valued ERGM terms, and provides a more flexible way to specify parameters and target statistics. As always, see cran.r-project.org/package=ergm... .
We're #hiring! This is a tenure-track #job in a #spatial #statistics cluster at #UNSW Maths & Stats. Applications close soon (1 July, Australian time!), so please share this with the spatial statisticians in your life! See external-careers.jobs.unsw.edu.au/cw/en/job/53... for details.
There are also more utilities for PSD matrix calculations, particularly for computing xแตVโปยนx, taking into account that:
* base::solve() treats diag(c(1e10, 1e-10)) as computationally singular.
* Even when V is, in fact, singular, a unique and sensible answer still exists if x is in the span of V.
A helper function modify_in_place() for easily implementing functions that robustly modify their arguments in place (without resorting to environments a la #R6). E.g.,
> inc <- function(x){
modify_in_place(x, x+1)
}
> x <- 1:3
inc(x[1])
> x
[1] 2 2 3
New functions include statnet.common::replace(x, list, values) a drop-in replacement for the {base} function that can take function arguments for list= and values= so that, e.g.,
x |> replace(is.na, 0)
does exactly what you would want it to, as does `replace<-`, for
replace(x, is.na) <- 0
.
Next #rstats ๐ฆ up on #CRAN is {statnet.common} 4.12.0. It is, as always, a hodgepodge of functions and methods used throughout the #statnet project packages. @mbojan.sciences.social.ap.brid.gy contributed to this release. Release notes are, as always, at cran.r-project.org/web/packages... .
Granted #Bioconductor 's S4Vectors::Rle() almost certainly does everything that {rle} does but better, but it also means depending on Bioconductor. Is it no longer the hassle that it used to be?
{rle} 0.10.0 #rstats ๐ฆ is on #CRAN. {rle} aims to make run-length-encoded objects from base::rle() transparently behave as if they were the vectors they encode for arithmetic, indexing, summary, and other purposes. This release introduces subsetting by positive numeric indices.
Calling all #rstats friends in Australia/Oceania!
Exciting news! Fonti Kar (@fontikar.bsky.social) and I are forming a "C Study Group for R Contributors" in 2025. It's like getting skills to help build the Millennium Falcon of programming languages!
1/n
This is really cool! I've been using US election maps to illustrate the point in my Data Viz class, but I suppose it's long past time to localise.
I suspect that most of us (statistical methodologists) already have loose code that does something like this, borrowed or evolved over the course of our careers.
I tried to make the whole process user-friendly and robust, so we won't need to reinvent this particular wheel again.