Stata 17の新機能

Stata17には、新しい表作成機能Doファイルエディタをより使いやすくする機能が加わりました。また、生存分析メタ分析の強化、新しいベイズ統計機能などが搭載されました。近年注目されているプログラミング機能も進化しています。

  • 表作成機能の改良
  • Doファイルエディタの改良
  • 日付と時間の新しい関数
  • 処理の高速化
  • 差分の差分(DID)モデルとDDDモデル
  • 区間打ち切りCoxモデル
  • 多変量メタ分析
  • Galbraithプロット
  • Leave-one-outメタ分析
  • パネルデータ多項ロジットモデル
  • ゼロ拡大順序ロジットモデル
  • トレンドに対するノンパラメトリック検定
  • 処置効果のLasso推定
  • クラスター化データのlasso解析
  • ベイズ計量経済学
  • ベイジアンVARモデル
  • ベイジアンマルチレベルモデル
  • ベイジアン縦断・パネルデータモデル
  • 動学的ベイズ予測
  • ベイジアンIRFとFEVD
  • Lassoの罰則付き選択におけるベイズ情報基準
  • 線形・非線形のベイジアンDSGEモデル
  • Intel Math Kernel Library (MKL)
  • JDBC
  • Javaとの連携の強化
  • PyStata
  • StataとJupyter Notebook
  • H2Oとの連携

基本操作

表作成機能の改良

回帰結果や要約統計量を比較するための表を自由自在に作成できるようになりました。

  • あらかじめ表のスタイル(デザイン)を用意しておき、作成した表に適用できます。
  • 作成した表はMS Word®、PDF、HTML、LaTeX、MS Excel®、Markdown形式でエクスポートし、レポートに使用できます。

従来のtableコマンドが改良されました。

  • collectプレフィックスを用いてあらゆるコマンドの実行結果を「コレクション」として保存し、表作成、様々な形式へのエクスポートなどが可能です。
  • 新しいユーザインタフェースであるテーブルビルダを使用して、ポイント&クリックでの表作成も可能です。

Doファイルエディタの改良

Stata 17の新機能ブックマークナビゲーションコントロールにより、Doファイルエディタでの操作がより快適になりました。

  • Doファイルと一緒にブックマークを保存します。
  • 「ナビゲーションコントロール」機能により、Doファイルの編集が容易になりました。
  • JavaおよびXML構文の自動補完機能が追加されました。
  • 選択範囲への引用符、括弧、角かっこの自動補完機能が追加されました。

ブックマーク

多くのユーザ様からご要望をいただいていた、Doファイル内へのブックマーク保存機能が追加されました。
注目したい行にブックマークを付けておくと、のちほど簡単に見返すことができます。また、ブックマークした箇所へのジャンプ機能により、Doファイルエディタ上でスクロールする手間が省けます。
行数の多いDoファイルを作成・利用する際に特に便利な機能です。

ナビゲーションコントロール

ナビゲーションコントロールで、Doファイル内のブックマークとそのラベルの一覧表示、ブックマークした箇所へのジャンプができます。ブックマークの他、Doファイル内に定義されたプログラムを自動で認識し、ナビゲーションコントロールに表示します。

日付と時間の新しい関数

StataとMataに、日付と時間を操作するための便利な関数が追加されました。新しい関数は、下記の3つのカテゴリーに分類されます。

  • 日時期間: 年齢のように、期間を取得する関数
  • 相対日付: 与えられた日付を基準にした次の誕生日のように、ある日付を基準にして日付を返す関数
  • 日時要素: datetime値から正確な差分を抽出する関数

これらの関数は、うるう年、うるう日、うるる秒を正確に処理します。

処理の高速化

Stataは、計算処理の精度と速度を重視しています。
Stata 17では高速化のために、sortおよびcollapseコマンドのバックグラウンドのアルゴリズムを更新しました。 また、マルチレベル混合効果モデルをフィットするmixedなどの一部の推定コマンドの速度が向上しました。

統計

差分の差分(DID)モデルとDDDモデル

新たな推定コマンドdidregressxtdidregressは、繰り返し計測されたデータに対して差分の差分(DID)モデル差分の差分の差分または三重差分(DDD)モデルをフィットします。didregressは繰り返しクロスセクションデータに対して機能し、xtdidregressは断片データ/パネルデータに対して機能します。

DIDとDDDモデルは繰り返し計測されたデータに対して処置における平均処置効果を推定するために使用されます。処置効果とは、血圧における薬物療法の効果や従業員の教育プログラムの効果などを指します。

一般的なクロスセクションデータと異なり、DID分析ではグループ単位で繰り返し計測される場合において平均処置効果の推定時にグループと時間効果をコントロールします。
DDD分析では、追加のグループ効果とそれらの時間との相互作用をコントロールします。3つのグループ変数を指定するか、2つのグループ変数と時間変数を指定します。

区間打ち切りCoxモデル

セミパラメトリックCox比例ハザードモデルは、一般に非打ち切りや右側打ち切りのイベント時間データの分析に使われてきました。新しい推定コマンドstintcoxは、区間打ち切りイベント時間データにCoxモデルをフィットします。

区間打ち切りとは、関心のあるイベントの時間が直接観測できず、ある期間を置いて知るような場合を指します。例えば、がんの再発は定期健診において発見されますが、正確な時間は観測されません。分析者が知ることができるのは、がんは前回と今回の検診の間のどこかで再発したという情報のみです。
このような区間打ち切りを無視すると、偏った分析結果が生じる可能性があります。

ベースラインハザード関数が完全に指定されていない場合、区間打ち切りイベント時間データのセミパラメトリック推定はイベント時間を正確に観測できないため、挑戦的です。そのため、これらのデータの「セミパラメトリック」モデリングでは、ベースラインハザード関数にスプライン法または区分的指数モデルを使用することがありました。
これまで区間打ち切りイベント時間データのセミパラメトリックモデリングは利用できませんでしたが、方法論の進歩によりstintcoxコマンドが実装されました。

多変量メタ分析

メタ分析とは、複数の研究から結果を分析し、関連のありそうな複数の効果量をレポートする手法です。
既存のmetaコマンドを使う場合、個別のメタ分析では相関が無視されます。新しいコマンドmeta mvregressを使用すると、多変量メタ分析を実行し、相関を考慮することができます。

Galbraithプロット

新しいコマンドmeta galbraithplotは、メタ分析においてGalbraithプロットを生成します。Galbraithプロットは、研究の不均一性の評価と潜在的な外れ値の検出に使われます。また、多くの研究がある場合にメタ分析の結果を集約するためのフォレストプロットの代わりとして使用されます。

Leave-one-outメタ分析

meta summarizeまたはmeta forestplotコマンドのオプションとして、leaveoneoutが追加されました。このオプションにより、Leave-one-outメタ分析を実行できるようになりました。

Leave-one-outメタ分析は、各分析で一つの研究を除外して多変量メタ分析を実行します。一般に、研究では誇張された効果量を生み出すことがあり、全体の結果を歪める可能性があります。
Leave-one-outメタ分析は全体の効果量の推定に各研究が与える影響を調べ、影響力のある研究を特定するのに便利です。

パネルデータ多項ロジットモデル

新しい推定コマンドxtmlogitは、時間経過と共に観測されたカテゴリのアウトカムにパネルデータ多項ロジット(MNL)モデルをフィットします。

例えば、数週間にわたって収集された個人のレストランの選択に関するデータがあるとします。レストランの選択は順序のないカテゴリカルなアウトカムであり、既存のmlogitコマンドをクラスタロバスト標準誤差と共に使用します。
それに対して、xtmlogitコマンドは個々の特徴を直接モデル化し、したがってより効率的な結果を得られます。そして、共変量と相関する可能性のある特徴を適切に考慮することができます。

ゼロ拡大順序ロジットモデル

新たな推定コマンドziologitは、ゼロ拡大順序ロジスティック回帰モデルをフィットします。このモデルは、最も低いカテゴリが標準的な順序ロジットモデルが期待するよりも高い割合で観測されるようなデータに適用されます。通常、行動や特性がないことに対応するため、最も低いカテゴリをゼロとして参照します。

ゼロ拡大は、ロジスティックモデルと順序ロジスティックモデルの両方でゼロが生じることを想定して考慮されます。それぞれのモデルは異なる共変量を持つことができ、結果を係数の代わりにオッズ比で表示することもできます。

トレンドに対するノンパラメトリック検定

nptrendコマンドは、順序付けされたグループ全体の傾向に対して下記の4つの検定を行うことができます。

  • Cochran-Armitage検定
  • Jonckheere-Terpstra検定
  • 線形トレンド検定
  • Cuzick検定

v16以前ではnptrendコマンド実行時にCuzick検定が実行されていましたが、v17では新たに追加された検定を選択することができます。

処置効果のLasso推定

処置効果の推定には、teffectsコマンドを使います。そして、数百、数千個以上の共変量を操作するには、lassoを使います。
新しいコマンドtelassoを使うことで、多くの共変量の操作とともに処置効果を推定することができるようになりました。

クラスター化データのlasso解析

lasso解析でクラスターデータを扱えるようになりました。
クラスターを無視して分析を行うと、同一クラスターに属する観測値同士の相関により不正確な結果が得られる場合があります。

  • lasso解析を行うassolとelasticnetコマンドでcluster({\it clustvar})オプションを使用して、クラスターを指定できるようになりました。
  • lasso推測を行うporegressコマンドでは、新しいオプションvce(cluster {\it clustvar})を設定できます。

ベイズ統計

ベイズ計量経済学

Stata17ではベイズ計量経済学的な分析が行えるようになりました。
例えば、職業訓練プログラムの参加者が、将来5年間失業しない確率はどの程度か、といった経済学的な問いに対して確率的に回答を提示したり、過去の経済学的な知識を結びつけたりといった場合にStataのベイズ計量経済学の機能が役に立ちます。横断面、パネル、マルチレベル、時系列などの様々なベイジアンモデルをフィットしましょう。ベイズ因子でモデルを比較し、予測を行います。

計量経済学でベイズ統計を用いることの利点は、モデルパラメータに関する外的な情報を自らの研究に取り込むことができるということです。このような情報は、過去のデータや経済過程によるものです。いずれにしても、ベイジアンアプローチでは、外部情報と実際の観測データを組み合わせて、興味のある経済過程に対してより現実的な観点で見ることができます。

ベイズ計量経済学分野の新機能

  • ベイジアンVARモデル
  • ベイジアンIRFとFEVD
  • ベイジアンダイナミック予測
  • パネルデータのベイジアンモデル
  • ベイジアン線形DSGEと非線形DSGE

ベイジアンVARモデル

bayesプリフィックスコマンドがvarコマンドに対応し、ベイジアンベクトル自己回帰(VAR)モデルにフィットできるようになりました。
VARモデルは、アウトカム変数のラグを含む複数の時系列間の関連を研究するモデルです。K個のアウトカム変数とp期のラグであれば、少なくともp(K^2+\nn1)個のパラメータを持ちます、このようなVARモデルには多くのパラメータがあることが知られています。特に小さなデータセットでは、信頼できる推定を行うのは難しいものです。
ベイジアンVARモデルでは、モデルパラメータに関する事前情報を利用して、パラメータ推定を安定化することができます。

ベイジアンマルチレベルモデル

bayesmhコマンドにランダム効果の構文を追加して、様々なベイジアンマルチレベルモデルにフィットできるようになりました。単変量および多変量の線形・非線形マルチレベルモデルを簡単にフィットできます。線形・非線形、マルチレベルモデル、縦断的・生存時間モデル、SEM形式のモデルなどで利用できます。

ベイジアン縦断・パネルデータモデル

これまで、パネルまたは縦断的データを用いて、連続的なアウトカムにはxtregコマンド、二値アウトカムにはxtlogitxtprobit、順序アウトカムにはxtologitxtoprobitでフィットできました。Stata17では、これらにbayesプリフィックスを追加するだけでベイズ推定を行うことができます。

動学的ベイズ予測

動学的予測は、VARモデルなどの多変量時系列モデルをフィットした後によく用いられる予測手法です。従来のvarコマンドでは推定後に、fcastで動学的予測が可能でした。新しいbayes: varコマンドでは、ベイジアンVARモデルにフィットした後でbayesfcastでダイナミックなベイズ予測を行います。

ダイナミックなベイズ予測では、従来の単一予測とは異なり、サンプル全体の予測値を求めます。このように作成されたサンプルでは、正規性の仮定を用いずに将来予測を行うことができます。特に正規性が担保できない小さなデータセットにおいて威力を発揮します。

ベイジアンIRFとFEVD

インパルス応答関数(IRF)動学的乗数関数および予測誤差分散分解(FEVD)は、VARのような多変量時系列モデルの結果を確認するためによく用いられます。しかし、VARモデルはパラメータが多く解釈が難しいものです。IRFとその他の関数では複数のパラメータの効果を1つに統合します。つまり、IRFはアウトカムのショック(変化)に対する変数の影響を計測します。

ベイジアンIRFでは正規性を仮定しないIRFの”正確”な事後分布から結果を導きます。このため、モデルパラメータの事前情報を利用して、より安定した推定を行うことができます。

Lassoの罰則付き選択におけるベイズ情報基準

罰則パラメータの選択はlasso解析における基礎をなすものです。罰則パラメータが小さければ、変数の数が多くなりすぎ、大き過ぎれば重要な変数を除外してしまうことがあります。

lasso推定では、すでに交差検証、適用型lasso、プラグインなどの罰則選択が利用できました。新しく導入されたselection(bic)オプションでは、lasso推測の後でベイズ情報基準(BIC)を利用して罰則パラメータの選択が可能になりました。さらに推定後の機能bicplotでは、lassoモデルにフィットした後の罰則パラメータの関数をBICの値としてグラフで表すことができます。このグラフは、BIC関数を最小化する罰則パラメータの値をグラフィカルに表示します。

線形・非線形のベイジアンDSGEモデル

dgseコマンドとdsgenlコマンドとbayesプリフィックスを組み合わせることで、線形・非線形のベイジアン動学的確率的一般均衡モデルを行うことができます。30以上もの事前分布からモデルパラメータを選択して、組み込むことができます。ベイジアンIRF解析、信用区間の検定、ベイズ因子を利用したモデル比較が可能です

プログラミング

Intel Math Kernel Library (MKL)

Stata 17は、互換性のあるハードウェア(すべてのIntel/AMDベースの64-bitコンピュータ)でIntel Math Kernel Library (MKL)を使用して、深く最適化されたLAPACKルーチンを提供します。

LAPACK

LAPACKはLinear Algebra PACKageの略で、連立方程式、固有値問題、特異値問題などのシステムを解くためのルーチンのセットです。 Stataの行列演算プログラムであるMataの演算子と関数(qrd(), lud(), and cholesky()など)は、多くの数値演算でLAPACKを活用します。これにより処理速度の向上が期待できます。互換性のあるハードウェアではIntelMKLが自動的に使用されるため、ユーザは常に最適な環境でStataを使用できます。

JDBC

JDBC (Java Database Connectivity)のサポートにより、Stataとデータベースの接続がさらに簡単になりました。 JDBCは、プログラムとデータベース間でデータを交換するためのクロスプラットフォームスタンダードです。jdbcはWindows、Mac、およびUnixシステムで作動します。

データベースベンダーがJDBCドライバを提供している場合は、そのドライバをダウンロード、インストールし、jdbcを介してデータベースでSQLの読み取り、書き込み、実行を行うことができます。データベーステーブル全体をStataにロードするか、SQL SELECTを使用してテーブルからStataに特定の列をロードすることができます。すべての変数/一部の変数の挿入も可能です。

Javaとの連携の強化

Stata 17では、JavaコードをStataに直接埋め込んで実行できるようになりました。

  • DoファイルでJavaを実行すると、Stataコードに直接関連付けられたJavaコードを自由に実行できます。これにより、JavaコードをDoファイルまたはadoファイルで記述したり、Stata内からインタラクティブに(JShellのように)Javaを呼び出すこともできます。
  • Stata Function Interface (SFI) Javaパッケージが含まれており、StataとJava間の双方向接続を提供します。SFIパッケージには、Stataのデータセット、フレーム、マクロ、スカラー、行列、値ラベル、日付と時刻の値などにアクセスするためのクラスがあります。

Stataと一緒にJava Development Kit (JDK)がインストールされるため、追加のセットアップは不要です。

PyStata

PyStataPyStataとは、StataとPythonが相互作用できるStataのシステムです。v16では、StataからPythonコードを呼び出す機能が追加されました。v17では、新たなpystataというPythonパッケージを経由して、スタンドアロンのPython環境からStataを呼び出すことができるように拡張されました。以下のような場合に、StataやMataに手軽にアクセスできます。

  • IPythonカーネルベースの環境(例: Jupyter Notebookとコンソール、Jupyter Labとコンソール)
  • IPythonカーネルをサポートするその他の環境(例: Spyder IDEやPyCharm IDE)
  • コマンドラインからPythonにアクセスしたとき(例: Windowsコマンドプロンプト、macOSターミナル、Unixターミナル、PythonのIDLE)

StataとJupyter Notebook

Jupyter Notebookはパワフルで利用しやすいWebアプリケーションで、対話式の計算と開発において実行コード、視覚化、数学の方程式や定式化、説明文書、その他のリッチメディアを統合して「notebook」と呼ばれる一つのドキュメントにまとめることができます。研究者や科学者によって、アイデアや結果を共有するために広く使われています。

Stata17ではPyStatの一部として、IPythonカーネルのJupyter NotebookからStataやMataを呼び出すことができます。この機能により、1つの環境でPythonとStataの両方の機能を利用でき、作業の再現や他者との共有を容易にします。Jupyter NotebookからStataを呼び出すには、pystataという新しいPythonパッケージを使用します。

H2Oとの連携

Stata 17では、スケーラブルで分散型のオープンソースの機械学習・予測分析プラットフォームであるH2Oへの接続が導入されました。

  • StataからH2Oクラスタを開始、接続、照会できます。
  • クラスタ上のデータ(H2Oフレーム)を操作するための一連のコマンドを提供します。
  • データファイルをインポートしたり、Stataの現在のデータセットを読み込んだりして、新しいH2Oフレームを作成できます。
  • Stata内からH2Oフレームを分割、結合、クエリすることもできます。

※注意 これらの機能はまだ実験段階のため、今後変更される可能性があります。

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon