
Changelog
nethist 1.1.1
Bug fixes
-
multinethist(): fixed a memory error in multilayer fits. With a numeric (double) input array, which is the usual case, the fit could crash or return incorrect estimates on some platforms. Single-layer fits bynethist()andhnethist()were not affected.
nethist 1.1.0
CRAN release: 2026-10-23
New features
-
logLik(): new S3 method fornethist,multinethist, andhnethistobjects. Returns the unnormalized Bernoulli log-likelihood as alogLikobject withdfandnobsattributes, soAIC()andBIC()work directly on a fit. UselogLik(fit, normalized = TRUE)for the per-edge normalized value stored infit$normalized_LL. -
hnethist(): added examples to the help page. -
summary(): new S3 method fornethist,multinethist, andhnethistobjects. Reports the fit dimensions, the edge density, the log-likelihood with its degrees of freedom,AIC,BIC, and, forhnethist, the shape selection.
Bug fixes
-
hnethist():normalized_LLis now divided by the number of edgessum(A)/2, matchingnethist()andmultinethist(). Previously it was divided bysum(A), so reported values were half the size of the correspondingnethist()values. Model selection andBICare unaffected. -
print()methods fornethist,multinethist, andhnethistnow respect thedigitsargument when printing the normalized likelihood and the mean squared error. -
netsummary_plot(): the example using the suggested package network is now guarded byrequireNamespace(). -
logLik()on amultinethistfit that collapses to a single block now reports the correct degrees of freedom. -
multinethist():method = "LSE"with multilayer input now raises an error. Previously it was accepted silently, the fit was computed by profile likelihood, and the returned object was labelled"LSE".
Class hierarchy
- All fitted objects now inherit from a common base class,
network_histogram:nethistfits have classc("nethist", "network_histogram"),multinethistfitsc("multinethist", "network_histogram"), andhnethistfitsc("hnethist", "nethist", "network_histogram"). Previouslyhnethistinherited fromnethistwhilemultinethistwas unrelated to either. -
logLik()and theprint()method of the summary objects are defined once onnetwork_histogram.summary.multinethist()andsummary.hnethist()extend the base method throughNextMethod(). Methods whose behaviour depends on the layer dimension, namelyplot(),plot3d(),fitted(), andprint(), remain specific to the subclasses. - See
?"network_histogram-class"for the documented hierarchy. - Code that tests for an exact class vector, such as
identical(class(fit), c("hnethist", "nethist")), needs updating. Useinherits()instead.
User-visible changes
- The
print()methods fornethist,multinethist, andhnethistare now compact. They identify the fit and reportthetahatby its dimensions only, instead of printing the whole probability matrix or array, and theAvailable componentslisting has been dropped. The detailed output moved to the newsummary()methods. Useobject$thetahatorfitted()for the estimated probabilities.
Documentation
-
nethist(),multinethist(), andhnethist()now state in their help pages that the greedy search is stochastic and converges to a local optimum, and thatset.seed()should be called immediately before the fit for reproducible results.hnethist()additionally notes that its merging step drawsstats::kmeans()starting centres from the same stream, so the selected number of shapes depends on it. - The
@returnssections ofnethist(),multinethist(), andhnethist()now state the full class vector includingnetwork_histogram, andmultinethist()lists themethodfield. - Removed the leftover prompt boilerplate from the
polblogandpolblog_edgelisthelp pages, as requested by the CRAN team. - The
polblogandpolblog_edgelistexamples now calligraph::delete_vertices()instead of the deprecatedigraph::delete.vertices().
nethist 1.0.0
CRAN release: 2026-09-02
update: 2026/08/04
New features
-
multinethist()- New implementation of Song and Olhede (2026+) for multi-layer network histogram estimation.
-
common_foption assumes a common graphon across layers. - Accepts a wider range of inputs: 3D array, list of
igraph/networkobjects, andergm.multi::combined_networksobject.
-
nethist()- New
method = "LSE"option, implementing Gao et al. (2015) for single-layer network histograms. - Now implemented as a single-layer wrapper around
multinethist().
- New
-
hnethist(): new hybrid network histogram method for shape-based model selection. -
fitted(): new S3 method fornethistandmultinethistobjects. - New dataset:
IndianVil, a multilayer network.
Bug fixes
-
netsummary_plot()(formerlyviolin_netsummary()): return 0 instead of NaN when a subsampled network is empty.
Other changes
-
netsummary_plot(): x-axis values are now shown as igraph plots of v-shapes and cycles instead of labels. - Renamed output field
LSEtoMSEinnethist/multinethistobjects. - Documentation terminology unified from “node” to “vertex”.
-
multinethist(): reject plainmatrix/Matrixelements in list input, since vertex ordering across layers cannot be verified.
nethist 0.2.2
update: 2022/12/08
-
plot.nethist()- You can display the estimated probabilities in
p_matofnethistobjects by settingprob=TRUE. Useprob.colandprob.cexto set the color and size of text, respectively.
- You can display the estimated probabilities in
-
nethist()- Check the convergence criterion every 5 iterations from the fifth iteration (5,10,15,…) instead of every 5 iterations from the first iteration (1,6,11,…).
- minor speed improvement.
nethist 0.2.1
update: 2022/11/26
- Initialization step of
nethist()is faster than earlier by computing hamming distance from the (simple) adjacency matrix instead of Manhattan distance.
nethist 0.2.0
update: 2022/11/19
- Computation speed of
nethist()andviolin_netsummary()are improved.
nethist 0.1.1
update: 2022/11/08
- Documentations update: provide extra about default values of arguments, rewrite examples.
Bug fixes
- Resolving default value issue of R in
violin_netsummary().