混雑予想ロジック仕様書

オーナー専用ページです

混雑予想ロジック仕様書

v2.5 最終更新: 2026-04-12 | ソースファイル: scripts/generate-crowd-data.js | データファイル: js/crowd-data.js

1. 概要

TDR+の混雑予想は、複数の独立した要因を加算する線形モデルで日別の混雑レベル(0〜9の10段階)を算出する。各日付について「晴天時予測」と「雨天時予測」の2通りを事前に生成し、ユーザーのアクセス時に天気予報APIの結果(降水量を含む)に応じて適切な値を表示する。

このアプローチの目的は、天候という予測不能な変数を分離することで、ロジック自体の精度(構造的要因の捕捉力)を正確に検証可能にすることにある。v2.1では外部需要シグナル(チケット価格Tier)の導入と、降水量の非線形モデルにより予測精度を向上させている。

1.1 出力形式

CROWD_DATA[park][date] = { s: sunnyLevel, r: rainLevel }
// park: "tdl" | "tds"
// date: "YYYY-MM-DD"
// sunnyLevel, rainLevel: 0-9 の整数

1.2 レベル定義

内部値表示ラベル主要アトラクション平均待ち時間(目安)
01ガラガラ5〜10分
12空いている10〜20分
23やや空き15〜30分
34普通25〜45分
45やや混雑35〜60分
56混雑50〜80分
67かなり混雑65〜100分
78非常に混雑80〜120分
89大混雑100〜150分
910激混み130〜200分

1.3 推定入園者数との対応 v2.5

各レベルは推定入園者数に比例するよう設計されている。OLCの公開データ(年間入園者数2,756万人/2024年度)と各種推定データに基づく。日別入園者数は非公開のため全て推定値。

表示ラベルTDL 推定入園者数TDS 推定入園者数
1ガラガラ~20,000人~16,000人
2空いている20,000~25,000人16,000~20,000人
3やや空き25,000~30,000人20,000~24,000人
4普通30,000~35,000人24,000~28,000人
5やや混雑35,000~40,000人28,000~33,000人
6混雑40,000~45,000人33,000~38,000人
7かなり混雑45,000~50,000人38,000~42,000人
8非常に混雑50,000~55,000人42,000~47,000人
9大混雑55,000~62,000人47,000~53,000人
10激混み62,000人~53,000人~

根拠: TDL:TDS入園者比率は55:45。TDSはFS開業(2024年)後に面積約25%増のためキャパシティが拡大。1日平均はTDL約41,500人/TDS約34,000人。中央帯(Lv3-7)を細かく刻み、上下端は広くすることでレベル分布の偏りを防止。

注意: この数値はOLCの年間/半期合計データからの逆算推定であり、公式の日別発表値ではない。UIでは「推定」と明記。

2. 予測式(Prediction Formula)

晴天時の混雑レベルは以下の加算式で算出される:

sunnyLevel = softClamp(0, 9, round(
  DOW_BASE[dayOfWeek]
  + holidayBonus(date)
  + preHolidayBonus(date)
  + bridgeDayBonus(date)
  + vacationBonus(date)
  + seasonalAdjust(date)
  + eventBonus(date, park)
  + tds25thBonus(date)  // TDS only
  + schoolEventAdjust(date)
  + specialEventBonus(date, park)
  + apBlackoutAdjust(date)
  + ticketPriceTierBonus(date)  // v2.1 需要プロキシ
  + DOW_BIAS[dayOfWeek]  // v2.4 曜日別バイアス自動補正
  + attractionClosureAdjust(date, park)  // v2.5 アトラクション休止補正
  + consecutiveHolidayPattern(date)  // v2.5 連休内日別パターン
  + graduationTripBonus(date)  // v2.5 卒業旅行シーズン
  + hotelOccupancyBonus(date)  // v2.5 ホテル満室度補正
  + inboundCalendarBonus(date)  // v2.5 インバウンド観光カレンダー
))

v2.5: softClamp関数はsigmoid圧縮を用いて、従来のハードクランプ(0,9)ではLv8-9に集中していたスコアの分解能を向上させる:

// softClamp: sigmoid圧縮でLv8-9の分解能向上
softClamp(min, max, x) = min + (max - min) * sigmoid((x - mid) / scale)
// 効果: 生スコア10と13の差がclamp後も区別される

雨天時予測は晴天時予測から雨補正量を減算して求める:

rainLevel = max(0, sunnyLevel - rainReduction(sunnyLevel, date))

v2.1: 表示時に降水量に基づく非線形補間を適用(4.3節参照):

displayLevel = f(sunnyLevel, rainLevel, precipMm)
  precipMm < 5mm   → round((sunny + rain) / 2)  // 小雨
  precipMm 5-15mm  → rainLevel  // 本降り
  precipMm > 15mm  → max(0, rainLevel - 1)  // 大雨

3. 各ファクター詳細

3.1 曜日ベースレベル (DOW_BASE)

すべての予測の出発点。曜日による来園者数の基本パターンを反映。

曜日
基本値5333346

根拠: 土曜が最混雑、日曜は翌日の学校/仕事で若干減、金曜は半休やフレックス利用者で平日より多い。月〜木は均一的な平日パターン。

3.2 祝日補正 (holidayBonus)

条件補正値根拠
平日が祝日+4通常の平日比で大幅増。3→7で「非常に混雑」相当。
週末が祝日+2もともと混む週末なので増分は控えめ。

3.3 祝前日補正 (preHolidayBonus)

翌日が祝日 かつ 当日は祝日でない場合: +1

根拠: 翌日休みの安心感で夜まで滞在する来園者が増える。

3.4 連休ブリッジ日効果 (bridgeDayBonus)

平日(月〜金)が休日に挟まれた場合、有給休暇取得率が高くパーク来園が増える。

条件補正値
前日・翌日が両方とも休日/祝日/週末+2.0月祝→火(平日)→水祝 の火曜(v2.5で+2.5→+2.0に下方修正)
祝日翌日の火曜+0.5月祝の翌火曜(有休延長組)
祝日前日の木曜+0.5金祝の前日木曜(前倒し休み)

3.5 長期休暇補正 (vacationBonus)

期間補正値備考
春休み (3/25〜4/5)+3学校休暇。新学期前のピーク。
GW (4/29〜5/6)+2〜+5v2.5で日別差分化。初日/最終日+2, 中日のピーク+5。一律+4を廃止。
夏休み前半 (7/20〜8/10)+2暑さで若干抑制されるが休暇需要大。
お盆 (8/11〜8/16)+2〜+5v2.5で日別差分化。初日/最終日+2, ピーク(8/13-14)+5。一律+4を廃止。
夏休み後半 (8/17〜8/31)+1お盆後の疲れ+宿題で減少。
冬休み (12/23〜1/6)+3クリスマス+年末年始。

3.6 季節補正 (seasonalAdjust)

期間補正値根拠
6月上旬(梅雨入り)-0.5v2.5で段階化。梅雨入り直後は来園者減少が緩やか。
6月中旬以降(梅雨本番)-1.0v2.5で段階化。長雨が定着し来園控えが本格化。
7月上旬〜中旬 (7/1〜7/17)-1猛暑による来園控え。夏休み前。
1月中旬〜2月 (1/7〜2/28)-1年間閑散期。寒さ+イベント端境期。

3.7 イベント補正 (eventBonus)

ディズニーの季節イベントは集客に大きく影響する。イベント初日と最終日付近は特に混む。

イベント期間通常bonus初日最終日対象パーク
パルパルーザ1/15〜3/19+0.5+1.5+1.5両方
ヴァネロペイベント4/9〜6/30+0.5+1.5+1.0TDL
TDS25周年 F&W4/15〜9/30+0.5+1.5+1.5TDS
夏イベント7/1〜9/7+0.5+1.5+1.0両方
ハロウィーン9/10〜10/31+1.0+2.0+2.5両方
クリスマス11/7〜12/25+1.5+2.5+3.5両方

最終3日間は駆け込み需要としてfinalDayBoostの50%を加算。最終日はfinalDayBoostの100%を加算。複数イベント重複時は最大値を採用。

3.8 TDS 25周年補正 (tds25thBonus)

TDSのみに適用。2024年開業のファンタジースプリングスと2026年のTDS25周年の複合効果。

期間補正値根拠
2026年 1〜3月+1FS効果のみ(25周年プレ期間)
2026年 4/1〜4/14+1.525周年プレグッズ販売開始、期待感
2026年 4/15〜7/14(GO後3ヶ月)+2.0v2.5減衰カーブ。グランドオープン直後のピーク。
2026年 7/15〜10/14(GO後3-6ヶ月)+1.5v2.5減衰カーブ。話題性が徐々に落ち着く。
2026年 10/15以降(GO後6ヶ月〜)+1.0v2.5減衰カーブ。定着フェーズ。
2027年+125周年余韻+FS定着。徐々に正常化。

3.9 学校行事補正 (schoolEventAdjust)

日付補正値根拠
4/6 始業式-1.5子育て世帯が来園不可。
4/7 入学式(小学校)-1.0家族イベントでパーク来園減。
4/8 入学式(中高)-0.5小学校ほどのインパクトではない。
5/25, 6/1 等+1.0〜+1.5運動会の振替休日(月曜代休)でパーク来場増。

3.10 特殊イベント補正 (specialEventBonus)

data/crowd-analysis/config.jsonspecial_events.dates から読み込み。

要因タイプ補正値
goods_release(グッズ発売)+0.5TDS25周年グッズ100種発売(4/8)
new_dpa / dpa_last_day+0.8期間限定DPA販売最終日
anniversary(周年)+1.0TDS25周年グランドオープン(4/15)
event_start(イベント開始)+0.5ヴァネロペイベント初日(4/9)
attraction_reopen(再開)+0.5美女と野獣リハブ明け再開(3/10)

3.11 年パス除外日補正 (apBlackoutAdjust)

年間パスポートで入園できない日は、リピーター層が減少するため -0.5 を適用。

対象日: GW(5/2-5/5), お盆(8/11-8/16), クリスマス(12/23-12/25), 年末年始(12/29-1/3)

注意: 除外日はチケット購入客は通常通り入れるため、効果は限定的(-0.5のみ)。

3.12 チケット価格Tier補正 (ticketPriceTierBonus) v2.2

ディズニーのチケット価格設定(4段階のダイナミックプライシング)は、ディズニー自身が保有する内部データに基づく需要予測の反映である。これを外部需要シグナル(Proxy Data)として活用する。

理論的根拠: 混雑予想戦略で提案された「周辺ホテルのイールドマネジメント解析」の代替として、ディズニーが公開する最も直接的な需要プロキシがチケット価格である。ディズニーは過去数十年のデータ、予約状況、ホテル稼働率などの内部情報に基づいて価格を設定しているため、この価格自体が高精度な需要予測値と見なせる。

チケット価格Tier補正値解釈
¥7,900最安-0.5ディズニーも閑散と予測。モデルの閑散補正を強化。
¥9,400通常0基準価格。追加補正なし。
¥9,900やや高+0.3週末・連休の標準設定。緩やかな需要増。
¥10,900最高値+0.7ディズニーが高需要と判断。GW・お盆等。

注意: チケット価格データが存在しない日付(未発売期間等)には曜日別期待値で補正(v2.3)。補正値は実測データの蓄積に伴い校正予定。

3.13 曜日別バイアス自動補正 (DOW_BIAS) v2.4

Claude/Geminiによるアルゴリズム監査で提案された「残差の曜日依存性」を自動補正する仕組み。

仕組み

corrections.json フォーマット

{
  "records": [
    {
      "date": "2026-04-11",
      "predicted": 6,
      "actual": 7,
      "tag": "M",       // M=モデル誤差, E=イベント要因, S=特殊要因
      "note": "金曜だが混雑"
    }
  ]
}

14日分のデータで「火曜の予測が平均+0.8高い」と判明 → DOW_BIAS[2] = -0.8 が自動適用され、以後の火曜予測が0.8下がる。

注意: [S]タグ(特殊要因)のレコードもバイアス計算に含まれるため、特殊な外れ値が多い場合は手動でtagを確認する運用が必要。

3.14 アトラクション休止補正 (attractionClosureAdjust) v2.5

data/crowd-analysis/config.json の休止データを活用。主要アトラクションがリハブ休止中の場合、パーク全体の吸引力が低下するため来園者が減少する。

条件補正値根拠
人気アトラクション1施設休止-0.3代替アトラクションに流れるが全体の吸引力は微減
人気アトラクション2施設以上休止-0.5〜-0.8来園を見送る層が増加

注意: スペースマウンテン等の長期閉鎖(建替え)は「新常態」として除外し、補正対象はリハブ等の一時的休止のみ。

3.15 連休内日別パターン (consecutiveHolidayPattern) v2.5

3連休以上の大型連休では、初日・中日・最終日で来園者数のパターンが異なる。従来は連休全体に一律補正だったが、v2.5で日別に差分化。

連休内の位置補正値根拠
初日-0.3移動日として使う層が多く、午後から入園が中心
中日+0.5丸一日パークに費やせる最も混雑する日
最終日-0.3帰宅ラッシュを避けて早めに退園する層が多い

3.16 卒業旅行シーズン (graduationTripBonus) v2.5

2月下旬〜3月中旬の平日に、卒業旅行・卒園旅行による来園増加を反映。

期間条件補正値根拠
2/20〜3/10平日のみ+1.0大学生・高校生の卒業旅行ピーク
3/11〜3/20平日のみ+1.5卒園・小中学校の卒業式後。家族連れも増加

注意: 週末は既にDOW_BASEで高い値が設定されているため、平日のみに適用。春休み補正(3/25〜)とは期間が被らないよう調整済み。

3.17 ホテル満室度補正 (hotelOccupancyBonus) v2.5

ディズニーホテル3軒(ディズニーランドホテル、アンバサダーホテル、ホテルミラコスタ)の満室率をチェックし、宿泊需要の高さを混雑予測に反映。

満室率補正値根拠
1軒満室+0.2一定の宿泊需要があるが通常範囲
2軒満室+0.5高い宿泊需要。宿泊客の翌日来園が見込まれる
3軒全て満室+0.8宿泊需要が非常に高い。パーク来園者も増加が確実

注意: ファンタジースプリングスホテルは常時満室のため、ノイズとなるため除外。満室情報はscripts/fetch-hotel-prices.jsのデータを参照。

3.18 インバウンド観光カレンダー (inboundCalendarBonus) v2.5

訪日外国人観光客の大型連休期間を考慮。近年のインバウンド回復により、海外の祝日がTDRの混雑に影響を与えるようになっている。

期間補正値根拠
春節(旧正月)期間+0.5中国・台湾・韓国等からの訪日観光客が増加
国慶節(10/1〜10/7)+0.5中国の大型連休。ハロウィーン期間と重なり相乗効果

注意: 春節の日付は毎年変動するため、config.jsonで年ごとに定義。

4. 雨天予測モデル (Rain Reduction Model)

雨天時の混雑低下量は、晴天時の予測レベルと曜日種別(平日/週末)に依存する。これは「カジュアル来園者(天候に敏感)」と「コミッテッド来園者(天候に鈍感)」の比率が混雑レベルによって異なるという仮説に基づく。

4.1 理論的背景

4.2 補正テーブル(来園動機強度乗算付き)v2.3

晴れ予測レベル平日の雨補正週末/祝日の雨補正x 動機強度
0〜2(閑散)-1-1強コミット(GW等): x0.5
中(週末): x1.0
弱(平日閑散): x1.5
3〜6(普通〜混雑)-1-2
7〜9(大混雑)-2-3

v2.3追加: 来園動機強度(commitMultiplier)を雨補正に乗算。GW・お盆等の強コミット日は旅行客が多く雨でもキャンセルしにくいため影響半減(x0.5)。平日閑散日はカジュアル層中心のため影響増大(x1.5)。

例: GW(強コミット)のLv7-9の週末雨 → -3 x 0.5 = -1.5 → round → -2

4.3 降水量シグモイドモデル(クライアント側)v2.2

Open-Meteo APIからprecipitation_probability_maxprecipitation_sum(予想降水量mm)、weathercodewindspeed_10m_maxwindgusts_10m_maxを取得。

Step 1: 雨判定

isRain = precipitation_probability > 60% OR weathercode ∈ rain_codes
rain_codes = {51-67, 80-82, 95-99}  // WMO standard

Step 2: シグモイド関数による影響度算出 v2.3気温補正

// 気温に応じた変曲点k(v2.3追加)
k = temp < 15 ? 6 : temp > 28 ? 9 : 8
// 冬(15度未満): k=6mm — 寒い日は少量の雨でも来園控え
// 春秋: k=8mm — 標準
// 夏(28度超): k=9mm — 暑い日は雨歓迎(涼しくなる)で影響減

rainImpact = 1 / (1 + e^(-(mm - k) / 3))

// k=8の例:
// mm=2  → rainImpact ≈ 0.12(ほぼ晴れ)
// mm=5  → rainImpact ≈ 0.27(小雨域)
// mm=8  → rainImpact ≈ 0.50(中間点)
// mm=12 → rainImpact ≈ 0.79(本降り域)
// mm=15 → rainImpact ≈ 0.91(大雨域)

Step 3: 表示レベル決定(連続補間)

if (rainImpact <= 0.5):
  // 小雨域: sunny〜rainを線形補間
  t = rainImpact * 2  // 0〜1に正規化
  displayLevel = round(sunnyLevel * (1-t) + rainLevel * t)
else:
  // 大雨域: rain〜(rain-1)を線形補間
  t = (rainImpact - 0.5) * 2  // 0〜1に正規化
  displayLevel = round(rainLevel * (1-t) + max(0, rainLevel-1) * t)

理論的背景

混雑予想戦略で指摘された「降水量閾値の非線形性」に対応。従来の3段階離散モデル(v2.1)からシグモイド関数による連続モデルに移行。1mmの霧雨と15mmの本降りの間を滑らかに補間し、来園者の意思決定プロセスをより正確にモデル化する。

4.4 風速リスクモデル(京葉線運休補正)v2.2

TDRへの主要アクセス路線であるJR京葉線は、強風時に徐行運転や運休が発生する。これは来園者数に直接的な影響を与えるが、他の混雑予想サイトでは考慮されていない差別化要因。

風速条件補正値影響
最大瞬間風速 25m/s超 or 平均風速 20m/s超-2京葉線運休リスク。アクセス困難で来園者大幅減。
最大瞬間風速 20m/s超 or 平均風速 15m/s超-1京葉線徐行運転。来園控え+屋外施設一部影響。
上記未満0通常運行。補正なし。

データソース: Open-Meteo API windspeed_10m_max(日最大風速)、windgusts_10m_max(日最大瞬間風速)

4.5 気温極端値補正(crowd.js側)v2.5

v2.5で天候補正は基本予測(generate-crowd-data.js)とは分離し、表示時のリアルタイム処理(crowd.js)として実装。気温の極端値による来園控えを補正する。

条件補正値根拠
最高気温 35度超-1猛暑日。熱中症リスクで来園控え
最低気温 5度以下-1厳寒。屋外アトラクションの待ち時間が苦痛で来園控え

注意: この補正はcrowd.js側で天気予報API取得時にリアルタイム適用される。generate-crowd-data.jsの基本予測には含まれない。

4.6 待ち時間の丸め処理 v2.5

v2.5より、表示する待ち時間を全て10分単位に丸め。23分→20分、47分→50分のように表示。過剰な精度の表示(例: 43分)はユーザーに誤った精度感を与えるため。

4.7 v2.3 追加機能

4.7.1 運動会確率分布モデル

従来は固定日(5/25, 6/1等)に+1.0〜+1.5の振替休日補正を適用していたが、v2.3では確率分布に基づく期待値モデルに変更。

// 運動会の振替休日(月曜)の確率分布
// 5月第4週月曜: 40%の学校で運動会振替
// 6月第1週月曜: 30%
// 10月第2週月曜: 20%(秋開催校)
// 各日の補正 = 確率 × 最大補正値(+1.5)
// 例: 5月第4月曜 → 0.4 × 1.5 = +0.6

4.7.2 生スコア記録

clamp(0, 9)前の生スコアをCROWD_DATA_METAに記録。上限9に張り付く日が多いほどモデルの改善シグナルが失われるため、生スコアで実際のスケールを分析。

// 出力例
CROWD_DATA_META.raw_scores = {
  tdl: { above9: 11, max: 12.2 },
  tds: { above9: 33, max: 14.2 }  // 25周年効果で上限張り付き顕著
}

4.7.3 未発売日Tier期待値

チケット価格が未発売の日はTier補正が適用できない。v2.3では曜日別の期待Tier値で代替。

曜日期待Tier補正値根拠
月〜木通常0大半が¥9,400設定
通常〜やや高+0.15週末寄りの混合
やや高+0.3ほぼ¥9,900設定
やや高+0.3土曜と同等

5. 予測ロック機構

予測の信頼性を担保するため、直近30日間の予測値は再生成時にも変更しない(v2.5で7日→30日に拡大)。

目的: 「予測が外れたら後から修正して当たったことにする」という不誠実な運用を防ぐ。外れた予測こそロジック改善の最大の学習材料。

v2.5変更: 30日に拡大した理由は、ユーザーが予測を見てホテル予約や旅行計画を立てた後に予測値が変わると信頼を損なうため。天候補正は表示時のリアルタイム処理として分離されているため、基本予測の安定性を優先する。

6. 精度検証フレームワーク

6.1 データ収集

6.2 実測レベル閾値 v2.4修正

実測レベル0123456789
待ち時間(分)0-78-1516-2425-3435-4748-6162-7778-99100-129130+

v2.4修正: 旧Lv8(78-94)/Lv9(95-114)は閾値配列[78,95,115]で重複域が曖昧だった。新閾値[78,100,130]でLv8(78-99)/Lv9(100-129)に明確分離。config.json level_thresholds で定義。

6.3 比較ルール

6.4 トラッキング開始日

2026-04-10(サイト開設日)以降のデータのみを精度検証に使用する。それ以前の予測は事後的に作成されたものであり、精度の根拠とはならない。

6.5 残差分類フレームワーク (Residual Decomposition) v2.2

混雑予想戦略で提案された「残差の構造的分解」を実装。予測と実測のズレ(残差)を「ノイズ」として処理せず、その依存変数を特定するためのタグ付けシステム。

タグ分類内容対処方針
[M]モデル要因パラメーター不適合(補正値の過大/過小)データ蓄積後にパラメーター校正
[E]外部要因SNSバズ、テレビ放映、グッズ品切れ拡散、近隣施設イベント等パターン化できれば特徴量として追加
[S]特殊要因システム障害、天候急変、政治・社会的事象ノイズとして記録。モデル改善の対象外

将来的にはタグ付けされたデータを教師データとして再投入し、モデルが「予測困難なパターン」を認識するための強化学習ループを構築予定。

7. 既知の課題と今後の改善計画

7.1 現在のモデルの限界

7.2 改善ロードマップ v2.1更新

混雑予想戦略文書に基づく4段階の改善計画:

Phase時期内容ステータス
1. 変数分離4月前半天候の多段階化、チケット価格Tier補正、残差タグ付け。実装済み(v2.1)
1.5 雨モデル高度化4月中旬来園動機強度×雨補正、気温補正シグモイド、運動会確率分布、生スコア記録、未発売日Tier期待値。実装済み(v2.3)
2. 残差自動補正4/11曜日別バイアス自動補正(DOW_BIAS)、Lv8-9閾値修正、corrections.json残差記録フレームワーク。Claude/Gemini監査反映。実装済み(v2.4)
2.5 ファクター拡張4/12新ファクター5個追加(アトラクション休止/連休日別/卒業旅行/ホテル満室度/インバウンド)。GW/お盆日別差分化・梅雨段階化・TDS25周年減衰カーブ。softClamp導入。ロック期間30日化。天候補正のリアルタイム分離。実装済み(v2.5)
3 外部データ統合5〜6月前日18時予報スナップショットのGitHub Actionsパイプライン構築。Walk-forward validation。corrections.json自己修正ループ。計画中
4. ML基盤構築7〜9月Python分析環境。LightGBM/XGBoostによる非線形モデル。Prophet/NeuralProphetによる季節性分離。スタッキングアンサンブル。データ蓄積待ち
5. 自律改善ループ10月以降ベイジアンモデリングによる残差自動分解。動的バイアス補正(直近7日間の予測誤差に基づく再学習)。Recursive Feature Eliminationによる特徴量最適化。長期目標

7.3 現時点で実装不可能な提案と理由

混雑予想戦略文書で提案された手法のうち、以下は現行アーキテクチャまたはデータ不足により未実装:

提案阻害要因代替策
Google Trends API連携公式APIが存在しない。非公式ライブラリ(pytrends等)はrate limit厳しく不安定手動での月次データ収集を検討
Twitterセンチメント解析Free tier APIは検索不可。NLP処理はフロントエンドJSでは計算量的に困難サーバーサイドPython構築後に対応
LightGBM / ProphetPythonライブラリ。Node.jsで動作不可。かつ訓練データ0(最低3ヶ月必要)Phase 3でPython基盤構築後
カルマンフィルタ / ベイズ推定アルゴリズム自体はJS可能だが意味のある推定にデータ蓄積が必要Phase 4で数ヶ月のデータ蓄積後
前日18時予報バイアスOpen-Meteo無料版は現在の予報のみ。過去時点の予報を記録する仕組みが未構築Phase 2でGitHub Actionsスナップショット構築

8. ロジック変更履歴

日付バージョン変更内容
2026-04-12 v2.5 新ファクター5個追加(合計17ファクター): (1) アトラクション休止補正(config.jsonの休止データ活用、長期閉鎖は除外)。(2) 連休内日別パターン(3連休以上の初日-0.3/中日+0.5/最終日-0.3)。(3) 卒業旅行シーズン(2/20-3/20平日に+1.0〜+1.5)。(4) ホテル満室度補正(ディズニーホテル3軒の満室率→+0.2〜+0.8、FSは常時満室のため除外)。(5) インバウンド観光カレンダー(春節/国慶節+0.5)。既存改善: GW/お盆を日別差分化(一律+4→日別+2〜+5)、梅雨を段階化(6月上旬-0.5、中旬以降-1.0)、TDS25周年に減衰カーブ(GO後3ヶ月+2.0→3-6ヶ月+1.5→6ヶ月〜+1.0)、ブリッジ日+2.5→+2.0に下方修正、softClamp(sigmoid圧縮でLv8-9の分解能向上)。運用変更: ロック期間を7日→30日に拡大、天候補正を表示時リアルタイム処理として分離、気温極端値補正追加(35度超or5度以下で-1、crowd.js側)、待ち時間を全て10分単位に丸め。入園者数比例レベル定義追加(OLC公開データ基づくTDL/TDS別推定入園者数テーブル)。
2026-04-11 v2.4 Claude/Gemini監査結果を反映。(1) Lv8-9閾値の重複解消: 旧[78,95,115]→新[78,100,130]でLv8(78-99)/Lv9(100-129)に明確分離。(2) 曜日別バイアス自動補正(DOW_BIAS): corrections.jsonの残差記録から曜日別の系統的偏りを自動計算・適用。7日分以上で有効化。(3) 残差記録フレームワーク: data/crowd-analysis/corrections.json新設。
2026-04-11 v2.3 (1) 来園動機強度(commitMultiplier)を雨補正に乗算(GW等の強コミット日は雨影響半減)。(2) 気温補正付きシグモイド変曲点(冬k=6, 春秋k=8, 夏k=9)。(3) 運動会振替休日を確率分布モデルに変更。(4) clamp前の生スコア記録。(5) チケット未発売日に曜日別期待Tier値で補正。
2026-04-11 v2.2 Gemini戦略回答を反映。(1) 降水量モデルを3段階離散→シグモイド関数(k=8, s=3)による連続補間に移行。(2) 風速リスクモデル追加: Open-Meteoからwindspeed/windgust取得、京葉線運休リスク(25m/s超→-2, 20m/s超→-1)。他サイトにない差別化要因。
2026-04-11 v2.1 混雑予想戦略文書を分析し実装可能な改善を反映。(1) 降水量の非線形モデル: バイナリ→3段階(小雨/本降り/大雨)、Open-Meteo precipitation_sum活用。(2) チケット価格Tier補正: ディズニーの価格設定を需要プロキシとして特徴量#12に追加(¥7,900→-0.5〜¥10,900→+0.7)。(3) 残差分類フレームワーク: [M]モデル/[E]外部/[S]特殊の3タグ。(4) 4段階改善ロードマップ策定。
2026-04-11 v2.0 全面改修。晴れ/雨2通り予測。連休ブリッジ日・学校行事・運動会振休・イベント初日最終日ブースト・年パス除外日・config.json連携を追加。TDS25周年を3段階化。雨補正モデルを混雑レベル×曜日で可変化。7日ロック機能追加。サイト開設前データ削除。
2026-04-10 v1.0 初版。曜日ベース + 祝日 + 長期休暇 + 季節補正 + イベント補正 + TDS25周年(一律+2) の線形加算モデル。天候はクライアント側でリアルタイム補正(-1/-2の固定値)。

このドキュメントはロジック変更の度に更新される。
関連ファイル: crowd-logic/ data/crowd-analysis/