noisymoon API
単位根検定と反応拡散シミュレーションを、HTTP から
このサイトの記事で扱っている計算を、自分のプログラムから呼び出せる API です。
- 検定:ADF 検定・KPSS 検定。結果は statsmodels と一致することを確認しています(統計量・p 値・ラグ選択・臨界値)。
- シミュレーション:Gray-Scott 反応拡散系。結果を画像(PNG)と NumPy 配列(
.npy)で受け取れます。
料金
前払いのクレジット制です。使った分だけ残高から引かれます。
| 項目 | 料金 |
|---|---|
| ADF / KPSS 検定 | 1 回 ¥1 |
| Gray-Scott | 百万セル・ステップあたり ¥0.01(256×256 格子・1 万ステップで約 ¥6.6) |
| 購入単位 | ¥500 / ¥1,000 / ¥5,000(税込・クレジットカード) |
- クレジットの有効期限は購入から 180 日です。
- 入力の誤りなどで計算が失敗したときは課金されません。シミュレーションが失敗した場合は返金されます。
- 記事の中の「試す」デモは無料です(系列 500 点まで・1 分あたり 10 回まで)。
使い方
1. API キーを発行する
アカウント からメールアドレスでログインし、クレジットを購入してキーを発行します。キーは nm_ で始まる文字列で、発行時に一度だけ表示されます。
2. 呼び出す
キーは X-API-Key ヘッダーで送ります。
curl -X POST https://api.noisymoon.jp/v1/tests/adf \
-H "X-API-Key: $NOISYMOON_KEY" \
-d '{"series": [0.12, 0.35, 0.10, 0.44, 0.61, 0.52, 0.80, 0.77, 0.95, 1.10], "regression": "c"}'Python からは次のように使えます。
import os, requests
API = "https://api.noisymoon.jp"
H = {"X-API-Key": os.environ["NOISYMOON_KEY"]}
r = requests.post(f"{API}/v1/tests/adf", headers=H,
json={"series": list(y), "regression": "ct", "autolag": "AIC"})
r.raise_for_status()
res = r.json()
print(res["statistic"], res["pvalue"], res["critical_values"])シミュレーションは時間がかかるので「ジョブ」として受け付け、終わってから結果を取りに行きます。
import io, time, numpy as np
job = requests.post(f"{API}/v1/sim/gray-scott", headers=H,
json={"n": 256, "steps": 10000, "F": 0.0367, "k": 0.0649, "init": "random"}).json()
while True:
st = requests.get(f"{API}/v1/jobs/{job['id']}", headers=H).json()
if st["status"] in ("done", "failed"):
break
time.sleep(2)
v = np.load(io.BytesIO(requests.get(f"{API}/v1/jobs/{job['id']}/v.npy", headers=H).content))エンドポイント
| メソッド | パス | 内容 |
|---|---|---|
| POST | /v1/tests/adf |
ADF 検定 |
| POST | /v1/tests/kpss |
KPSS 検定 |
| POST | /v1/sim/gray-scott |
Gray-Scott のジョブを登録(202 を返す) |
| GET | /v1/jobs/{id} |
ジョブの状態と結果の要約 |
| GET | /v1/jobs/{id}/v.png |
結果の画像(v 場、viridis) |
| GET | /v1/jobs/{id}/v.npy |
結果の配列(float32, 形状 (n, n)) |
| GET | /v1/usage |
直近 30 日の使用量と残高 |
| GET | /v1/pricing |
現在の料金(キー不要) |
ADF 検定 POST /v1/tests/adf
| パラメータ | 既定値 | 内容 |
|---|---|---|
series |
(必須) | 数値の配列。10〜100,000 点 |
regression |
"c" |
確定項。"n"(なし)/ "c"(定数)/ "ct"(定数+トレンド)/ "ctt"(+2次トレンド) |
autolag |
"AIC" |
ラグの選び方。"AIC" / "BIC" / "t-stat" / null(maxlag をそのまま使う) |
maxlag |
\(12(n/100)^{1/4}\) | 最大ラグ |
statsmodels の adfuller と同じ手順・同じ既定値です。検定の中身は ADF 検定の記事 を参照してください。
KPSS 検定 POST /v1/tests/kpss
| パラメータ | 既定値 | 内容 |
|---|---|---|
series |
(必須) | 数値の配列 |
regression |
"c" |
"c"(水準定常)/ "ct"(トレンド定常) |
nlags |
"auto" |
"auto"(Hobijn et al. 1998)/ "legacy" / 整数 |
Gray-Scott POST /v1/sim/gray-scott
\[ \partial_t u = D_u \nabla^2 u - u v^2 + F(1-u), \qquad \partial_t v = D_v \nabla^2 v + u v^2 - (F+k) v \]
| パラメータ | 既定値 | 範囲 |
|---|---|---|
n |
256 | 16〜512(格子の一辺、周期境界) |
steps |
10000 | 1〜100000(ただし \(n^2 \times\) steps \(\le 512^2 \times 20000\)) |
F, k |
0.035, 0.065 | 0〜0.2 |
Du, Dv |
0.16, 0.08 | 0〜1 |
dt |
1.0 | \(dt \cdot \max(D_u, D_v) \le 0.25\)(陽的オイラー法の安定条件) |
seed |
乱数 | 同じ値で同じ結果を再現できる |
init |
"center" |
"center"(中央に種)/ "random"(ランダムな位置に種) |
エラー
エラーは次の形で返ります。
{"error": {"code": "invalid_argument", "message": "series の長さは 10〜100000"}}| HTTP | code | 意味 |
|---|---|---|
| 400 | invalid_argument / invalid_json |
入力の誤り(課金されません) |
| 401 | unauthorized |
キーがない・無効 |
| 402 | insufficient_credit |
残高不足 |
| 429 | rate_limited / too_many_jobs |
1 分あたり 60 回、または同時ジョブ 3 件の上限 |
無料デモ
キーなしで試せます(系列 500 点まで)。
規約など
- 利用規約
- 特定商取引法に基づく表記
- プライバシーポリシー