Stata(/ ˈsteɪtə /、[ 2 ] STAY -ta 、または/ ˈstætə /、時折STATAと表記される[ 3 ] [ 4 ] )は、 StataCorpによって開発された、データ操作、視覚化、統計、および自動レポート作成のための汎用統計ソフトウェアパッケージです。生物医学、経済学、疫学、社会学など、多くの分野の研究者によって使用されています。[ 5 ]
Stata は当初カリフォルニアの Computing Resource Center によって開発され、最初のバージョンは 1985 年にリリースされました。[ 6 ] 1993 年に同社はテキサス州カレッジステーションに移転し、Stata Corporation に社名変更され、現在は StataCorp として知られています。[ 1 ] 2003 年のメジャーリリースには、新しいグラフィック システムとすべてのコマンドのダイアログボックスが含まれていました。[ 6 ]それ以来、2 年ごとに新しいバージョンがリリースされています。[ 7 ]現在のバージョンは Stata 19 で、2025 年 4 月にリリースされました。[ 8 ]
Stataは開発当初から統合されたコマンドラインインターフェースを採用してきました。バージョン8.0以降、メニューとダイアログボックスを使用して多くの組み込みコマンドにアクセスできるグラフィカルユーザーインターフェースが搭載されました。データセットはスプレッドシート形式で表示または編集できます。バージョン11以降では、データブラウザまたはエディタを開いている間に他のコマンドを実行できます。
バージョン 16 がリリースされるまで、[ 9 ] Stata は一度に1 つのデータセットしか開くことができませんでした。Stata では、データにデータ型を割り当てる際の柔軟性が確保されています。Stata のコマンドは、情報を失うことなく、より少ないメモリを使用するデータ型にデータを自動的に再割り当てします。Stata は、4 バイトではなく 1 バイトまたは 2 バイトしか占有しない整数ストレージ タイプを使用し、浮動小数点compress数のデフォルトは倍精度 (8 バイト) ではなく単精度 (4 バイト) です。
Stata独自の出力言語はSMCLと呼ばれ、Stata Markup and Control Languageの略で、「スミクル」と発音されます。[ 10 ]
Stataのデータ形式は常に表形式です。Stataでは、表形式のデータの列を変数と呼びます。
Stataは様々な形式のデータをインポートできます。これには、ASCIIデータ形式( CSVやデータベース形式など)やスプレッドシート形式(各種Excel形式を含む)が含まれます。
Stata の独自のファイル形式は時間の経過とともに変化してきましたが、すべての Stata リリースに新しいデータセット形式が含まれているわけではありません。すべてのバージョンの Stata は、すべての古いデータセット形式を読み取ることができ、saveoldコマンドを使用して、現在のデータセット形式と直前のデータセット形式の両方を書き込むことができます。[ 11 ]したがって、現在の Stata リリースは、古いバージョンで作成されたデータセットを常に開くことができますが、古いバージョンは新しい形式のデータセットを読み取ることができません。
Stataは、 fdauseコマンドとfdasaveコマンドを使用して、SAS XPORT形式のデータセットをネイティブに読み書きできます。
Stata の開発は 1984 年に始まり、最初は William (Bill) Gould が、後に Sean Becketti が担当しました。このソフトウェアは、SYSTATやMicroTSPなどのパーソナルコンピュータ用の統計プログラムと競合することを目的としていました。[ 6 ] C言語で書かれたStata は、1985 年に 44 個のコマンドとともにMS-DOS向けにリリースされました。[ 6 ]それ以降、 Linuxディストリビューション、Windows、MacOSなどのUnix系システム向けに Stata のバージョンがリリースされています。[ 6 ]すべての Stata ファイルはプラットフォームに依存しません。
Stata は 1985 年~ 2025 年の間に 19 回のメジャーリリースがあり、メジャーリリースの間にも追加のコードとドキュメントの更新が行われています。[ 7 ] Stata の初期には、追加の Stata プログラムセットが「キット」として販売されたり、サポート ディスクとして配布されたりすることがありました。1999 年に Stata 6 がリリースされてからは、updateWeb を介してユーザーに提供されるようになりました。[ 6 ]
Stata には 37 年の歴史の中で何百ものコマンドが追加されてきました。[ 12 ] [ 13 ]拡張性、プラットフォーム非依存性、活発なユーザー コミュニティなど、いくつかの開発は特に重要であることが証明されており、今日でもユーザー エクスペリエンスを形成し続けています。[ 6 ]
programStata 1.2 では、ユーザーが独自のコマンドを追加できるコマンドが実装されました。[ 6 ] [ 14 ] Stata 2.1 では、ado ファイルが追加され、ユーザーが作成したプログラムを自動的にメモリにロードできるようになりました。多くのユーザーが作成した ado ファイルは、ボストン カレッジがホストする統計ソフトウェア コンポーネント アーカイブに提出されています。StataCorp は、sscコミュニティから提供されたプログラムを Stata に直接追加できるようにするコマンドを追加しました。[ 15 ] Stata のより新しいバージョンでは、コマンドを使用して Python スクリプトを呼び出すことができるほか、Jupyter Notebooks などの Python IDE から Stata コマンドをインポートすることもできます。[ 16 ] Stata は R をネイティブにサポートしていませんが、Stata で R スクリプトを使用するためのユーザーが作成した拡張機能があります。[ 17 ]
Stata の活発なユーザー コミュニティによって、多くの重要な開発が開始されました。[ 6 ]ユーザーが作成したコマンドを多く含むStata Technical Bulletin は1991 年に導入され、年 6 回発行されました。2001 年に査読付きのStata Journalとして再発行され、コミュニティから提供されたコマンドの説明と Stata の効果的な使用に関するヒントを含む季刊誌となっています。1994 年に、ユーザーがコーディングや技術的な問題を共同で解決するためのハブとしてリストサーブが開始され、2014 年にウェブ フォーラムに変換されました。1995 年に Statacorp は、毎年開催されるユーザーおよび開発者会議の開催を開始しました。米国で開催される年次 Stata Conference のみが StataCorp によって主催されています。その他のユーザー グループ ミーティングは、米国 (Stata Conference)、英国、ドイツ、イタリアで毎年開催され、他のいくつかの国では頻度が少なく開催されます。各国の Stata 販売代理店が、自国でユーザー グループ ミーティングを開催しています。
Stata には、Stata/MP、Stata/SE、Stata/BE、Numerics by Stata の 4 つのビルドがあります。[ 18 ] Stata/MP では特定のコマンドの並列処理が組み込まれていますが、Stata/SE と Stata/BE はボトルネックがあり、使用は 1 つのコアのみに制限されます。[ 19 ] Stata/MP は、SE または BE バージョンと比較して、4 つの CPU コアで並列処理を実行すると、特定のコマンドを約 2.4 倍高速に実行し、理論上の最大効率の約 60% になります。[ 19 ] Numerics by Stata では、Stata コマンドの Web 統合が可能です。
SE と BE のバージョンでは、データセットが使用できるメモリ量が異なります。Stata/MP は 100 億から 200 億の観測値と最大 120,000 個の変数を保存できますが、Stata/SE と Stata/BE はそれぞれ最大 214 億の観測値を保存し、32,767 個の変数と 2,048 個の変数を処理できます。モデル内の独立変数の最大数は、Stata/MP では 65,532 個、Stata/SE では 10,998 個、Stata/BE では 798 個です。[ 18 ]
Stata の価格とライセンスは、ビジネス、政府/非営利団体、教育、学生など、その用途によって異なります。シングルユーザーライセンスは、毎年更新するか、永久ライセンスのいずれかです。その他のライセンスタイプには、同時使用ユーザー向けのシングルライセンス、サイトライセンス、大量購入向けのボリュームシングルユーザーライセンス、学生ラボなどがあります。[ 20 ]
以下のコマンド群は、シンプルなデータ管理に関するものです。[ 21 ]
sysuse auto // 付属の自動データセットを開くbrowse // データセットを参照する(データエディタウィンドウが開きます)describe // データセットと関連変数について説明しますsummarize // 数値変数に関する要約情報codebook make foreign // make (文字列) 変数と foreign (数値) 変数に関する概要情報browse if missing (rep78) // 変数 rep78 のデータが欠損している観測値のみを参照するlist make if missing (rep78) // 変数 rep78 のデータが欠損している車のメーカーを一覧表示する次のコマンド群は記述統計に進みます。
要約価格、詳細 // 変動価格の詳細な要約統計tabulate foreign // 変数 foreign の一方向度数分布表tabulate rep78 foreign, row // 変数 rep78 と foreign の二方向度数分布表summarize mpg if foreign == 1 // 車が外国製の場合の mpg に関する要約情報 ("==" 記号は等価性をテストします) by foreign, sort : summarize mpg // 上記と同様ですが、"by" プレフィックスを使用します。tabulate foreign, summarize (mpg) // 上記と同様ですが、tabulate コマンドを使用します。簡単な仮説検定:
ttest mpg, by (foreign) // 国産車と外国車の平均値の差を検定するt検定データのグラフ化:
twoway (scatter mpg weight) // 燃費と重量の関係を示す散布図twoway (scatter mpg weight), by (foreign, total ) // 国産車、外国車、および全車種の3つのグラフ線形回帰:
generate wtsq = weight ^ 2 // 重みの二乗を表す新しい変数を作成regress mpg weight wtsq foreign, vce (robust) // mpg を weight、wtsq、foreign に対して線形回帰するpredict mpghat // mpg の予測値を含む新しい変数を作成twoway (scatter mpg weight) (line mpghat weight, sort ), by (foreign) // データと適合線をグラフ化する