Journal of Statistical Software: Volume 116の記事一覧

Journal of Statistical Software Volume 116に記載されている内容を一覧にまとめ、機械翻訳を交えて日本語化し掲載します。

記事

collapse: Advanced and Fast Statistical Computing and Data Transformation in R

collapse: Rにおける高度で高速な統計計算およびデータ変換



collapse is a large C/C++-based infrastructure package facilitating complex statistical computing, data transformation, and exploration tasks in R – at outstanding levels of performance and memory efficiency. It also implements a class-agnostic approach to R programming, supporting vector, matrix and data frame-like objects and their popular extensions (‘units’, ‘integer64’, ‘xts’, ‘tibble’, ‘data.table’, ‘sf’, ‘pdata.frame’), enabling its seamless integration with the bulk of the R ecosystem. This article introduces the package’s key components and design principles in a structured way, supported by a rich set of examples. A small benchmark demonstrates its computational performance.

collapseは、Rにおける複雑な統計計算、データ変換、および探索タスクを、卓越したパフォーマンスとメモリ効率で容易にする、大規模なC/C++ベースのインフラストラクチャパッケージです。また、Rプログラミングにおいてクラスに依存しないアプローチを採用しており、ベクトル、行列、データフレームのようなオブジェクトとその一般的な拡張機能(「units」、「integer64」、「xts」、「tibble」、「data.table」、「sf」、「pdata.frame」)をサポートすることで、Rエコシステムの大部分とのシームレスな統合を実現しています。この記事では、豊富な例を用いて、パッケージの主要コンポーネントと設計原則を体系的に解説します。また、簡単なベンチマークによって計算性能を示します。

Simulating Complex Cross-Sectional and Longitudinal Data Using the simDAG R Package

simDAG Rパッケージを用いた複雑な横断的および縦断的データのシミュレーション



Generating artificial data is a crucial step when performing Monte Carlo simulation studies. Depending on the planned study, complex data generation processes (DGPs) containing multiple, possibly time-varying, variables with various forms of dependencies and data types may be required. Simulating data from such DGPs may therefore become a difficult and time-consuming endeavor. The simDAG R package offers a standardized approach to generate data from simple and complex DGPs based on the definition of structural equations in directed acyclic graphs using arbitrary functions or regression models. The package offers a clear syntax with an enhanced formula interface and directly supports generating binary, categorical, count and time-to-event data with arbitrary dependencies, possibly non-linear relationships and interactions. It additionally includes a framework to conduct discrete-time based simulations which allows the generation of longitudinal data on a semi-continuous time-scale. This approach may be used to generate time-to-event data with both recurrent or competing events and possibly multiple time-varying covariates, which may themselves have arbitrary data types. In this article we demonstrate the vast amount of features included in simDAG by replicating the DGPs of multiple real Monte Carlo simulation studies.

モンテカルロシミュレーション研究を行う上で、人工データの生成は重要なステップです。計画されている研究によっては、複数の変数(場合によっては時間とともに変化する変数)と、様々な依存関係やデータ型を含む複雑なデータ生成プロセス(DGP)が必要となる場合があります。そのため、このようなDGPからデータをシミュレーションすることは、困難で時間のかかる作業となる可能性があります。simDAG Rパッケージは、任意の関数または回帰モデルを使用して有向非巡回グラフにおける構造方程式の定義に基づき、単純および複雑なDGPからデータを生成するための標準化されたアプローチを提供します。このパッケージは、強化された数式インターフェースを備えた明確な構文を提供し、任意の依存関係、場合によっては非線形関係および相互作用を持つバイナリ、カテゴリ、カウント、およびイベント発生までの時間データを直接生成することをサポートします。さらに、離散時間ベースのシミュレーションを実行するためのフレームワークも含まれており、半連続的な時間スケールで縦断的データを生成できます。このアプローチは、反復イベントまたは競合イベント、および場合によっては複数の時間変動共変量(それ自体が任意のデータ型を持つ可能性がある)の両方を含むイベント発生までの時間データを生成するために使用できます。この記事では、複数の実際のモンテカルロシミュレーション研究のDGPを再現することで、simDAGに含まれる膨大な機能を示します。

Policy Learning with the polle Package

ポリシー学習polleパッケージ



The R package polle is a unifying framework for learning and evaluating finite stage policies based on observational data. The package implements a collection of existing and novel methods for causal policy learning including doubly robust restricted Q-learning, policy tree learning, and outcome weighted learning. The package deals with (near) positivity violations by only considering realistic policies. Highly flexible machine learning methods can be used to estimate the nuisance components, and valid inference for the policy value is ensured via cross-fitting. The library is built up around a simple syntax with four main functions policy_data(), policy_def(), policy_learn(), and policy_eval(), which are used to specify the data structure, define user-specified policies, specify policy learning methods, and evaluate (learned) policies. The functionality of the package is illustrated via extensive reproducible examples.

Rパッケージpolleは、観測データに基づいた有限段階ポリシーの学習と評価のための統一的なフレームワークです。このパッケージは、二重ロバストな制限付きQ学習、ポリシーツリー学習、結果重み付け学習など、因果ポリシー学習のための既存および新規の手法を多数実装しています。現実的なポリシーのみを考慮することで、(ほぼ)正値違反に対処します。非常に柔軟な機械学習手法を用いて不要成分を推定でき、クロスフィッティングによってポリシー値の妥当な推論が保証されます。このライブラリは、データ構造の指定、ユーザー指定ポリシーの定義、ポリシー学習手法の指定、および(学習済み)ポリシーの評価に使用される4つの主要関数policy_data()、policy_def()、policy_learn()、policy_eval()を中心としたシンプルな構文で構成されています。パッケージの機能は、再現可能な豊富な例によって示されています。

CPU- and GPU-Based Distributed Sampling in Dirichlet Process Mixtures for Large-Scale Analysis

大規模解析のためのディリクレ過程混合モデルにおけるCPUおよびGPUベースの分散サンプリング



In the realm of unsupervised learning, Bayesian nonparametric mixture models, exemplified by the Dirichlet process mixture model (DPMM), provide a principled approach for adapting the complexity of the model to the data. Such models are particularly useful in clustering tasks where the number of clusters is unknown. Despite their potential and mathematical elegance, however, DPMMs have yet to become a mainstream tool widely adopted by practitioners. This is arguably due to a misconception that these models scale poorly as well as the lack of high-performance (and user-friendly) software tools that can handle large datasets efficiently. In this paper we bridge this practical gap by proposing a new, easy-to-use, statistical software package for scalable DPMM inference. More concretely, we provide efficient and easily-modifiable implementations for high-performance distributed sampling-based inference in DPMMs where the user is free to choose between either a multiple-machine, multiple-core, central-processing- unit (CPU) implementation (in Julia) and a multiple-stream graphics-processing-unit (GPU) implementation (in CUDA/C++). Both the CPU and GPU implementations come with a common (and optional) Python wrapper, providing the user with a single point of entry with the same interface. On the algorithmic side, our implementations leverage a leading DPMM sampler from Chang and Fisher III (2013). While Chang and Fisher III’s implementation (in MATLAB/C++) used only CPU and was designed for a single multi-core machine, the packages we proposed here distribute the computations efficiently across either multiple multi-core machines or across multiple GPU streams. This leads to speedups, alleviates memory and storage limitations, and lets us fit DPMMs to significantly larger datasets and of higher dimensionality than was possible previously by either Chang and Fisher III (2013) or other DPMM methods.

教師なし学習の分野では、ディリクレ過程混合モデル(DPMM)に代表されるベイズ非パラメトリック混合モデルは、モデルの複雑さをデータに合わせて調整するための原理的なアプローチを提供します。このようなモデルは、クラスタ数が不明なクラスタリングタスクにおいて特に有用です。しかし、その潜在能力と数学的な洗練さにもかかわらず、DPMMは実務者に広く採用される主流ツールにはなっていません。これはおそらく、これらのモデルはスケーラビリティが低いという誤解と、大規模データセットを効率的に処理できる高性能(かつ使いやすい)ソフトウェアツールの不足が原因でしょう。本稿では、スケーラブルなDPMM推論のための、使いやすい新しい統計ソフトウェアパッケージを提案することで、この実用的なギャップを埋めます。より具体的には、DPMMにおける高性能分散サンプリングベース推論のための効率的で容易に変更可能な実装を提供します。ユーザーは、マルチマシン、マルチコア、中央処理装置(CPU)実装(Julia)とマルチストリームグラフィックス処理装置(GPU)実装(CUDA/C++)のいずれかを自由に選択できます。CPUとGPUの実装には共通の(オプションの)Pythonラッパーが付属しており、ユーザーは同じインターフェースで単一のエントリポイントを利用できます。アルゴリズム面では、当社の実装はChangとFisher III(2013)による最先端のDPMMサンプラーを活用しています。ChangとFisher IIIの実装(MATLAB/C++)はCPUのみを使用し、単一のマルチコアマシン向けに設計されていましたが、ここで提案するパッケージは、複数のマルチコアマシンまたは複数のGPUストリームに計算を効率的に分散します。これにより、処理速度が向上し、メモリとストレージの制限が緩和され、ChangとFisher III(2013)や他のDPMM手法ではこれまで不可能だった、より大規模で高次元のデータセットにDPMMを適合させることができます。