ホーム > NtRand > 概要

NtRand.com is available!

Thanks to many who has visited here just like you’re doing at the moment…we exclusively established an website only for NtRand.

Future updates will be announced on NtRand.com.
The infomation on this site regards to earlier versions. We strongly recommend to use the latest version of NtRand (available only on NtRand.com), unless there’s any special reason.





NtRand - 多変量モンテカルロExcel アドイン関数(フリーウェア)

概要

Numerical Technologies Random Generator for Excel (NtRand) とは、モンテカルロ法に用いる標準正規乱数 (注1)などを、Microsoft Excel から使える関数アドインとして実装したソフトウェアです。 シミュレーション分野で注目を集めている超長周期 (注2)高次元均等分布 (注3) を特徴とする擬似乱数 (注4) Mersenne Twister を使用しています。 また多変量モンテカルロにおいては対称変量法 (antithetic) (注6)2次サンプリング (quadratic resampling) (注7)などの精度改善手法を採用しています。 詳しくは「モーメントマッチングによるモンテカルロ法の改善効果」(注20) をご覧ください。

リスク管理で使われるVaRなどの計算においては、大規模なモンテカルロシミュレーションがしばしば必要となります。 そうした際、システム組込みの乱数では十分な精度を確保できません。物理乱数 (注5) を使う解決方法もありますが、追試で重要な再現性がない上に特殊なハードウェアが必要であるため、実用性に乏しいものです。 Mersenne Twister は、そんな場合の現実的なソリューションを与えてくれる方法の一つであり、弊社のリスク管理システムCreditBrowser® / PortfolioBrowser® の中でも大規模に使用しております。

NtRand は非常に高速かつ高機能です。 数十次元程度であれば実用レベルのモンテカルロVaR (Value at Risk) システムや、デリバティブのプライシングモデルを、パソコン上のExcel を使って構築可能です。 すなわち、大方の比較的小規模なVaR 管理ならば NtRand を用いれば実現できるはずです。 デリバティブのプライシングやリスク管理の研究、高額なシステムの企画・発注の前の叩き台、あるいは論文ネタとして、ぜひご活用ください。

ライセンス

本ソフトウェアはフリーウェアです。 個人としての使用または非営利の目的(学術研究など)の使用に限定するとの条件の下に、使用料、ライセンス料は頂いてはおりません。 第三者への再配布は、非営利の目的に限り自由に行って結構です。

本ソフトウェアの使用は自己責任で行ってください。 本ソフトウェアによって得た計算結果、および本ソフトウェアをインストールすることによって起きた障害などに関しては、弊社は責任を一切負いません。 バグやご意見は弊社宛てにEメールでレポート頂ければ幸いです。

本ソフトウェアの著作権はニューメリカルテクノロジーズ株式会社に帰属します。 無断で本ソフトウェアを営利目的で使用することを禁じます。 ただし、乱数生成法自体は純粋数学であり、オープンな存在です。 詳しくはMersenne Twisterのホームページをご覧下さい。

フリーウェア以上のサポートをご希望の場合、営利目的での本ソフトウェア利用をご希望の場合、あるいは本ソフトウェアの内部ロジックの正当性に関する監査法人宛て文書説明などの支援をご希望の場合には、弊社宛てにご相談下さい。

ソフトウェア

NtRand のインストール方法

  1. 以前のバージョンのNtRand をインストール済みの場合は、後述する手順に従ってNtRand をアンインストールしてください。 Excel はAddin ソフトウェアをキャッシュするため、上書きインストールはできません。 またリリースノートをお読みになり、以前のバージョンからの変更点を確認してください。

  2. 下記をクリックして、次の自己解凍型ファイルを適当なディレクトリにダウンロードしてください。
  3. このファイルをダブルクリックして実行すると解凍が行われ、次のファイルが出来あがります。
    • Readme.txt - パッキングリスト
    • NtRand.xll - NtRand 本体
    • NtRand1.xls - 一様乱数のサンプルExcel シート
    • NtRand2.xls - 標準正規乱数のサンプルExcel シート
    • NtRand3.xls - 多変量相関乱数のサンプルExcel シート
    • NtRand4.xls - 多変量統計関数のサンプルExcel シート
    • NtRand5.xls - ポワソン分布、ベータ分布、正規分布、対数正規分布、切断正規分布、三角分布、ガンベル分布、ロジスティック分布、ワイブル分布に従う乱数のサンプルExcel シート
    • NtRand6.xls - 2変量正規分布関数のサンプルExcel シート
    • NtRand7.xls - 主成分分析のサンプルExce lシート
    • NtRand8.xls - オプション計算式のサンプルExcel シート
  4. NtRand.xll を所定のディレクトリに置いてください。 どこでも構いません。 新しいバージョンのExcel ではAddin ディレクトリをデフォルトで指定してきます。
  5. 次に、Excel を起動します。
  6. メニューの「ツール」->「アドイン」->「参照」とダイアログボックスを開き、先ほど置いた NtRand.xll をファイル指定して「OK」をクリックします。
  7. すると、「アドイン」ダイアログボックスに”NtRand Addin” の項目が現れます。 これをチェックして、「OK 」を押せば完了です。
  8. アドインが指定されている限り、添付のサンプルシート以外でも Numerical Technologies Random Generator for Excel の機能をお使いになれます。

NtRand のアンインストール方法

  1. NtRand がインストールされており、かつExcelメニューの「ツール」->「アドイン」ダイアログボックスで”NtRand Addin” の項目のチェックがはずされている場合には、これをチェックして「OK」を押しておきます。
  2. Excel を終了します。
  3. NtRand.xll を削除します。 インストールしたディレクトリがわからなくなった場合は、Windows 画面左下の「スタート」ボタンをクリックすると現れる「検索」メニューの機能を使うと便利です。
  4. Excel を起動します。 エラーが表示される場合がありますが、気にしないで「OK 」をクリックしてください。
  5. 起動したら、メニューの「ツール」->「アドイン」とダイアログボックスを開きます。
  6. “NtRand Addin” の項目のチェックをはずそうとすると、「リストから削除しますか」とダイアログボックスが応答を求めます。 ここで「OK 」を選び、リストから削除すれば完了です。

NtRand の使用

次の関数(参考:付属資料)がExcel に追加されます。 使用例については各サンプルシートを、使用方法についてはマニュアルをご参照下さい。

リリースノート

  • Version 2.01
    • 乱数生成関数の引数形式を変更。 新たに第2引数’Algorithm’ を追加した。
    • 3種類の擬似乱数アルゴリズムを実装。 これらは 1)Mersenne Twister 2002, 2)Mersenne Twister 1998, 3)Numerical Recipies’s ran2 の3つ。 詳細については 乱数アルゴリズムの選択 (注21)参照。Version 1.x の NtRand はこれらのうち Mersenne Twister 1998 のみをサポートしていた。

    • 主成分分析を行う関数 NtPCA を新規に追加。
    • オプション計算式 NtOptionBS, NtOptionBF, NtOptionGK を新規に追加。
    • 2変量標準正規分布関数 NtBiNormDist の境界条件を変更。 このバージョンから第3引数 (Corr) に 1 または -1 を指定しても解が与えられる。

    ソフトウェアはこちら。

    NtRand201.exe (Version 2.01, 1.48M bytes)

  • Version 1.38 (6/21/2001)
    • ベータ乱数のパフォーマンスを改善。
    ソフトウェアはこちら。

    NtRand138.exe (Version 1.38, 1.43M bytes)

  • Version 1.37 (6/18/2001)
    • 各種の乱数系列を追加。
  • Version 1.19 (5/21/2000)
    • 2変量正規分布関数を追加。
  • Version 1.17 (2/20/2000)
    • 乱数初期値がすべて0の場合に乱数が正しく生成されない問題を修正。
  • Version 1.11 (3/1/1999)
    • NtCorToCov() と NtCovToCor() の2つの関数を追加。
  • Version 1.00 (12/22/1998)