Sign in

Pavel N. Krivitsky

@krivitsky.net
112 followers 44 following 40 posts

Inveterate 🕸 modeller 𝑃(🦋; 𝜽) = 𝘩(🦋) exp{𝜼(𝜽) · 𝒔(🦋)} / 𝜅(𝜽) 👨🏻‍🏫 Statistics at UNSW 🇦🇺 👨🏻‍💻 10 #RStats 📦 ex-🪑 @ANSNA.org.au krivitsky.net statnet.org github.com/krivit

PostsRepliesMedia
Pavel N. Krivitsky @krivitsky.net · 26/02/2026
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.
010
Pavel N. Krivitsky @krivitsky.net · 26/02/2026
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.
120
Pavel N. Krivitsky @krivitsky.net · 26/02/2026
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.
110
Pavel N. Krivitsky @krivitsky.net · 18/02/2026
#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... .
cran.r-project.org
R: NEWS file for the 'ergm' package
0131
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
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.
cran.r-project.org
A C++ shim for ergm
010
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
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.
100
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
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).
100
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
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.
100
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
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.
100
Pavel N. Krivitsky @krivitsky.net · 30/12/2025
#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!
cran.r-project.org
R: NEWS file for the 'ergm' package
142
Pavel N. Krivitsky @krivitsky.net · 22/09/2025
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. 😅
cran.r-project.org
A Simulation Study using Piecemeal
041
Pavel N. Krivitsky @krivitsky.net · 12/09/2025
So, this is what the typical first line would look like: sim <- piecemeal::Piecemeal$new(dir) or sim <- Piecemeal::Piecemeal$new(dir) Thoughts?
000
Pavel N. Krivitsky @krivitsky.net · 12/09/2025
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
100
Pavel N. Krivitsky @krivitsky.net · 12/09/2025
#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... .
cran.r-project.org
072
Pavel N. Krivitsky @krivitsky.net · 12/09/2025
Looking forward to this!
022
Pavel N. Krivitsky @krivitsky.net · 26/06/2025
krivitsky.net/sunbelt2025/ is now linked from sunbelt2025.org by @sunbelt2025paris.bsky.social l . Double-checking the code now... 😅
000
Pavel N. Krivitsky @krivitsky.net · 25/06/2025
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.
100
Pavel N. Krivitsky @krivitsky.net · 25/06/2025
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.
121
Pavel N. Krivitsky @krivitsky.net · 11/06/2025
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... .
cran.r-project.org
R: NEWS file for the 'ergm.ego' package
000
Pavel N. Krivitsky @krivitsky.net · 11/06/2025
#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... .
cran.r-project.org
R: NEWS file for the 'ergm' package
000
Pavel N. Krivitsky @krivitsky.net · 03/06/2025
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.
external-careers.jobs.unsw.edu.au
Lecturer/Senior Lecturer - Spatial Statistics
The Lecturer (Level B or Senior Lecturer (Level C) will conduct high quality research and is expected to carry out activities to develop their scholarly research and professional activities both natio...
000
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
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.
000
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
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
100
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
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 .
100
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
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... .
cran.r-project.org
NEWS
130
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
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?
030
Pavel N. Krivitsky @krivitsky.net · 30/05/2025
{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.
1122
Reposted by Pavel N. Krivitsky
Nick Tierney @njtierney.bsky.social · 05/05/2025
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
22214
Pavel N. Krivitsky @krivitsky.net · 04/05/2025
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.
050
Pavel N. Krivitsky @krivitsky.net · 14/04/2025
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.
110
Pavel N. Krivitsky @krivitsky.net · 14/04/2025
If a particular run produces an error, the simulation continues; the error can be identified, reproduced, and debugged. If the whole job runs out of time, the next one can pick up where it left off. You can even submit multiple identical jobs, and they will seamlessly avoid each other's runs.
100
Pavel N. Krivitsky @krivitsky.net · 14/04/2025
The basic idea: rather than running the simulation code on the cluster directly and then returning its output, wrap it in code that takes the output (or its error info) and saves it to an RDS file unique to that treatment combination and replication. These can then be loaded and collated.
100
Pavel N. Krivitsky @krivitsky.net · 14/04/2025
While setting up yet another large #simulationstudy in which some replications result in an error, the total runtime is not completely predictable for an #HPC #parallelcomputing job, etc., I drafted an #rstats package for wrangling such simulations: github.com/krivit/piece... . Feedback appreciated!
github.com
GitHub - krivit/piecemeal: An R package for wrangling large simulations
An R package for wrangling large simulations. Contribute to krivit/piecemeal development by creating an account on GitHub.
271
Reposted by Pavel N. Krivitsky
Achim Zeileis @zeileis.org · 19/03/2025
🚨 New CRAN Task View: Network Analysis #rstats #dataviz By Fabio Ashtar Telarico, Pavel N. Krivitsky @krivitsky.net, James Hollway @jhollway.bsky.social URL: cran.r-project.org/view=Network...
Screenshot of the CRAN Task View "Network Analysis" at https://CRAN.R-project.org/view=NetworkAnalysis
2104
Reposted by Pavel N. Krivitsky
Australian Network for Social Network Analysis @ansna.org.au · 12/03/2025
Save the date for the Australian Social Network Analysis Conference 2025! When: 27-28 November 2025 (Workshops 26 November) Where: Byron Bay | Arakwal Bumberlin Country, NSW, Australia Venue: Byron Bay Community Centre Theater, 69 Jonson St, Byron Bay #ASNAC2025 #Socialnetworkanalysis
022
Pavel N. Krivitsky @krivitsky.net · 29/01/2025
With abstract deadline for @insna.bsky.social Sunbelt2025.org conference coming up, Michael Schweinberger, Johan Koskinen, and I are welcoming submission to our organised session on Sampled and Missing Network Data. (See assets.noviams.com/novi-file-up... for description.)
Sampled and Missing Network Data
Pavel N. Krivitsky, Michael Schweinberger, Johan Koskinen

In network analysis, it is common to assume that the data are complete and constitute a census of both actors in the social setting of interest and the relationships of interest among the actors. However, it is also common for the population of interest to be large and not practical to observe or model as a whole, that is, for some actors and relations to be incompletely observed, by design, unintentionally, or because they do not wish to be.

This session concerns advances in methods for analysis of networks with sampled or missing relations and/or nodal attributes, particularly when those relations, nodal attributes and/or their statistics are the target of inference.
000
Pavel N. Krivitsky @krivitsky.net · 29/01/2025
Can you please add @ansna.org.au?
110
Reposted by Pavel N. Krivitsky
Australian Network for Social Network Analysis @ansna.org.au · 29/01/2025
Australian Network for Social Network Analysis is now on @bsky.app. Follow us for news about #networks down under! #SocialNetworks #SNA #SocialNetworkAnalysis #NetworkScience
083
Pavel N. Krivitsky @krivitsky.net · 21/01/2025
ℹ️ A package's Application Binary Interface (ABI) is basically how its Application Programming Interface (API) looks after it's been compiled to binary. Backwards-compatible changes to a C API might not be so in its ABI: the compiler may put data structures and variables in unexpected locations.
000
Pavel N. Krivitsky @krivitsky.net · 21/01/2025
⚠️ #ergm 4.8.1 update changes its ABI; what you need to know is that packages listed at cran.r-project.org/package=ergm under "Reverse linking to:" may need to be rebuilt. The good news is that 'ergm' will now warn you if you need to do that. (Would a writeup on how it does that be useful?)
100
Pavel N. Krivitsky @krivitsky.net · 21/01/2025
#ergm 4.8.1 #rstats 📦 is on #CRAN, the first release since I started posting to @bsky.app. This release brings some interesting new network statistics, as well as bug fixes and API streamlining. As always, see cran.r-project.org/web/packages....
cran.r-project.org
176
Pavel N. Krivitsky @krivitsky.net · 01/01/2025
New year, new web site! After 3 years of neglect, I rewrote my krivitsky.net home page into something hopefully nicer looking, better organised, and more maintainable. A big thank you to everybody who provided feedback on earlier versions!
krivitsky.net
Pavel N. Krivitsky
I work with statisticians, social scientists, and epidemiologists to develop powerful techniques for understanding and predicting social structure, and I develop flexible and user-friendly open-source...
010
Pavel N. Krivitsky @krivitsky.net · 23/12/2024
A product of an unexpected collaboration with @dddtc.bsky.social, David Krackhardt, and Pat Doreian (doi.org/10.1371/jour...) gets a press release. An excuse to name-check Jaynes (1957) was a nice bonus.
doi.org
Balance correlations, agentic zeros, and networks: The structure of 192 years of war and peace
Social network extensions of Heider’s balance theory have led to a plethora of adaptations, often inconsistent with Heider and each other. We present a general model that permits the description and t...
021
Pavel N. Krivitsky @krivitsky.net · 06/12/2024
It appears that the 256 character limit for profiles has brought out my inner rebus composer.
000