---
title: "Prophet（Meta・旧Facebook）とは：時系列予測の使い方とv1.5の開発状況【2026年10月】"
url: "https://www.issoh.co.jp/tech/details/3618/"
published: 2024-09-19
updated: 2026-10-30
categories: ["Python"]
publisher: "株式会社一創"
---

# Prophet（Meta・旧Facebook）とは：時系列予測の使い方とv1.5の開発状況【2026年10月】

Prophetは、Meta（2021年10月までの社名はFacebook）のCore Data Scienceチームが2017年に公開した時系列予測ライブラリです。日付と値の2列からトレンドと季節性を推定でき、祝日効果は対象国やイベントを追加設定して取り込みます。PythonとRで使えます。2026年8月のv1.4.0で公式が「保守モード」を宣言しました。今後は不具合修正と依存ライブラリへの追従だけになります。この記事では、2026年10月5日公開の最新版v1.5.0を前提に、仕組み・最小コード・精度の上げ方と、今からProphetを選ぶべきかの判断材料をまとめます。

## まとめ

Prophetは時系列をトレンド＋季節性＋休日効果＋誤差の和で表す加法モデルで、`pip install prophet` のあと `ds`（日付）と `y`（値）の2列を `fit()` して `predict()` すれば予測が出ます。ライセンスはMITで商用利用もできます。最新版はv1.5.0（2026年10月5日）で、動作にはPython 3.10以上が要ります。

開発はv1.4.0（2026年8月1日）で保守モードに入り、新機能の予定はありません。最後に入った新機能は、気温のような外部変数の将来値を専用のProphetモデルで予測し、その不確実性を予測区間に含める `regressor_predictor` です。

予測の根拠を成分の図で説明したい業務データの予測には、今も最初の選択肢になります。最高精度が要件の予測や、多数の系列をまとめて学ばせたい予測では、季節ナイーブ予測などの単純な手法を基準線に置き、statsforecastや時系列基盤モデルと同じ条件で誤差を比べて決めます。

## Prophetとは：MetaのCore Data Scienceチームが公開した時系列予測ライブラリ

Prophetは、Facebook社内の需要予測や計画業務のために作られ、オープンソースとして公開されたライブラリです。手法はSean J. TaylorとBenjamin Lethamの論文[「Forecasting at Scale」（The American Statistician 72巻1号、37〜45ページ、2018年）](https://doi.org/10.1080/00031305.2017.1380080)にまとまっています。社名がMetaに変わった後もリポジトリは `github.com/facebook/prophet` のままで、「Facebook Prophet」「Meta Prophet」はどちらも同じライブラリを指します。読み方は「プロフェット」で、英単語の prophet（預言者）と綴りは同じです。

配布はPythonが[PyPI](https://pypi.org/project/prophet/)、RがCRANです。ライセンスは[リポジトリのLICENSEファイル](https://github.com/facebook/prophet/blob/main/LICENSE)のとおりMITです。設計の狙いは、統計の専門家でない分析者でも業務データの予測を回せることにあります。定常性の検定や次数の決定を求めず、既定値のまま動かせます。

### 予測式の4成分：トレンド・季節性・休日・誤差

Prophetのモデルは次の足し算です。

```
y(t) = g(t) + s(t) + h(t) + ε_t
```

`g(t)` はトレンド、`s(t)` は季節性、`h(t)` は祝日・イベントの効果、`ε_t` は誤差です。季節性はフーリエ級数で近似され、`fourier_order` を上げるほど細かい形まで表せます。トレンドは `growth` 引数で、既定の `linear`、上限に向けて伸びが鈍る `logistic`、水準が変わらない `flat` の3種類から選びます。

トレンドの折れ曲がり（変化点）は自動で検出されます。既定では学習期間の先頭80%（`changepoint_range=0.8`）に25個（`n_changepoints=25`）の候補を置き、効く点だけが残ります。末尾20%に候補を置かないのは、直近の揺れをトレンドの転換と取り違えて予測が暴れるのを防ぐためです。

### 向くデータと向かないデータ

得意なのは、週次・年次の季節性がはっきりしていて、数シーズン分の履歴がある日次・週次データです。小売の売上、サイトの訪問数、来店者数が典型です。年次の季節性を推定するなら2年以上の履歴を用意してください。既定の `yearly_seasonality="auto"` は、履歴が2年未満だと年次の季節性を自動で外します。短い履歴で `True` を指定して無理に入れると、年次成分が不安定になります。秒・分単位のデータも `ds` に時刻を入れれば扱え、日内の季節性は自動で当てはめられます（[公式の非日次データの章](https://facebook.github.io/prophet/docs/non-daily%5Fdata.html)は5分間隔の気温データで例示）。強みが出にくいのは、季節性のないランダムウォークに近い系列です。この場合は前日の値をそのまま使うナイーブ予測と誤差を比べてから採否を決めてください。

## 2026年の開発状況：v1.4.0で保守モードへ移行

公式リポジトリの[README](https://github.com/facebook/prophet#readme)には、v1.4.0と同時に次の告知が加わりました。「Prophetはv1.4.0から保守モードにある。受け付けるのは不具合修正、依存ライブラリの更新、Python版と機能をそろえるためのR版の変更だけで、新機能の予定はない」。開発終了ではありませんが、モデルの表現力はv1.4.0の時点で固定されたと考えてください。

### v1.2.2〜v1.5.0のリリース履歴

[GitHubのリリース一覧](https://github.com/facebook/prophet/releases)から、直近4つの版の中身を抜き出しました。日付はGitHubでの公開日です。v1.4.0の配布物はビルドを直した「v1.4.0-patched」として8月15日にPyPIへ上がっています。

| 版      | 公開日        | 主な変更                                        |
| ------ | ---------- | ------------------------------------------- |
| v1.2.2 | 2026-01-25 | R版のCRAN対応、pandas上限の修正                       |
| v1.3.0 | 2026-01-27 | pandas 3.0・NumPy 2.4に対応                     |
| v1.4.0 | 2026-08-01 | Python 3.10未満を切り捨て、型注釈、regressor\_predictor |
| v1.5.0 | 2026-10-05 | 交差検証・performance\_metricsの不具合修正             |

v1.5.0の修正は、`cross_validation()` が並列実行のプールを閉じない問題や、`performance_metrics()` が渡した指標リストを書き換えてしまう問題などです（[v1.5.0のリリースノート](https://github.com/facebook/prophet/releases/tag/v1.5.0)）。交差検証でパラメータを探索している環境なら、v1.5.0へ上げる価値があります。

### 2023年の方針表明と2026年の保守モードの違い

2023年2月にメンテナのCuong Duongが書いた[「facebook/prophet in 2023 and beyond」](https://medium.com/@cuongduong%5F35162/facebook-prophet-in-2023-and-beyond-c5086151c138)は、「基礎となるモデルに大きな変更を加える予定はない」としたうえで、導入のしやすさ・実行速度・ドキュメントの改善を続けると書いていました。最先端の手法を求める人にはNeuralProphetとNixtlaのstatsforecastを勧めています。

2023年の時点では「大きな変更はしない」でした。2026年は「新機能を入れない」です。後者のほうが範囲ははっきりしています。Prophetに無い機能（多変量の同時予測、ラグ特徴量など）が必要になったら、待たずに別のライブラリを検討してください。

## Prophetのインストールと最小コード

### pip install prophet と動作要件

Pythonではpipで入ります。

```
python -m pip install prophet
```

この記事のコードと同じ版で再現したい場合は、`python -m pip install prophet==1.5.0` のように版を固定します。

PyPIのv1.5.0が要求するのはPython 3.10以上で、依存は `cmdstanpy>=1.0.4`、`pandas>=1.3.5`、`numpy>=1.21.6`、`holidays>=0.25,<1` などです。ビルド済みのwheelが配布されているので、通常はStanのコンパイル環境を用意する必要はありません。conda派なら `conda install -c conda-forge prophet` でも入ります。

古い記事に出てくる `fbprophet` は、v1.0で `prophet` に改名される前のパッケージ名です。PyPIの `fbprophet` は2020年9月の0.7.1で止まっているので、`pip install fbprophet` や `from fbprophet import Prophet` は使わないでください。

### 日本の祝日を入れて90日先を予測するコード

入力は、日付列 `ds` と数値列 `y` を持つpandasのDataFrameです。[公式のクイックスタート](https://facebook.github.io/prophet/docs/quick%5Fstart.html)は、`ds` を YYYY-MM-DD（時刻付きなら YYYY-MM-DD HH:MM:SS）の形式にするよう求めています。

```
import pandas as pd
from prophet import Prophet

df = pd.read_csv("data.csv")  # 列は ds, y の2列
m = Prophet()
m.add_country_holidays(country_name="JP")  # 日本の祝日効果を追加
m.fit(df)

future = m.make_future_dataframe(periods=90)  # 90日先まで
forecast = m.predict(future)
print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail())

fig1 = m.plot(forecast)             # 実績・予測・予測区間
fig2 = m.plot_components(forecast)  # トレンド・週次・年次・祝日に分解
```

`add_country_holidays()` は、依存パッケージ holidays の日本の祝日表（元日、成人の日、建国記念の日など）を休日効果として取り込みます。祝日に来店や売上が動く業種では、`fit()` の前に必ず入れてください。欠損日は事前に埋める必要がありません。外れ値は、[公式ドキュメントの外れ値の章](https://facebook.github.io/prophet/docs/outliers.html)のとおり値をNaNにすると学習から外れます。

### R版の導入元：CRANとGitHubリリースの違い

R版は `install.packages('prophet')` でも入ります。ただ、CRANの版は1.1.7（2026年1月22日公開）で、Python版の1.5.0より古いままです。READMEも「CRAN版はかなり古いので、最新の不具合修正と祝日データが欲しければ最新リリースを入れる」よう勧めています。

```
install.packages('remotes')
remotes::install_github('facebook/prophet@*release', subdir = 'R')
```

## 予測結果の読み方：yhatと予測区間の前提

`predict()` の戻り値で見る列は、点予測の `yhat` と予測区間の `yhat_lower`・`yhat_upper` です。区間の既定は80%（`interval_width=0.80`）で、95%にしたければ `Prophet(interval_width=0.95)` と指定します。

区間に含まれるものには注意が要ります。[公式ドキュメントの不確実性の章](https://facebook.github.io/prophet/docs/uncertainty%5Fintervals.html)によると、既定（`mcmc_samples=0`）の区間に含まれるのはトレンドと観測ノイズの不確実性だけで、季節性の不確実性は入りません。季節性まで含めるには `mcmc_samples=300` などでフルベイズ推定を回します。そのぶん計算時間は大きく伸びます。同じ章は、将来も過去と同じ頻度と大きさでトレンドが変わるという前提で区間を出しているので、区間の被覆率を正確だと期待しないよう書いています。

`plot_components()` の分解図は成分ごとの寄与を見るもので、変化点の印は出ません。変化点は `prophet.plot` の `add_changepoints_to_plot()` で予測図に重ねて表示し、実際の出来事（サイト改修、値上げ、需要の急変）と重なっているかを確かめます。

```
from prophet.plot import add_changepoints_to_plot

fig = m.plot(forecast)
add_changepoints_to_plot(fig.gca(), m, forecast)
```

既知の出来事と一致しないだけで過学習とは断定できません。交差検証でトレンドの過学習が疑われる場合は、次の章の `changepoint_prior_scale` を下げてください。

## 精度を上げる設定と効果の測り方

### changepoint\_prior\_scale：トレンドの追従度

既定は0.05です。予測が過去の凸凹に反応して暴れるなら0.01などへ下げ、直近の明らかな転換に追いつけていないなら0.1〜0.5へ上げます。実務でいちばん触る引数です。

```
m = Prophet(changepoint_prior_scale=0.1)
m.fit(df)
```

### seasonality\_mode：規模が大きいほど季節の振れ幅も大きい系列

成長中のECの日次売上のように、売上の水準が上がるほど季節の山と谷の差も広がる系列では、既定の加法（additive）ではなく乗法（multiplicative）が合います。月次の周期を足したい場合は `add_seasonality()` で周期と `fourier_order` を指定します。

```
m = Prophet(seasonality_mode="multiplicative")
m.add_seasonality(name="monthly", period=30.5, fourier_order=5)
m.fit(df)
```

### 外部変数の将来値もProphetに予測させるregressor\_predictor（v1.4.0）

販促フラグや気温を説明変数に入れるのが `add_regressor()` です。ただし従来は、予測する期間の値も自分で埋める必要がありました。埋め忘れると `predict()` は `ValueError: Regressor 'temp' missing from dataframe` で止まります。埋めた値は確定値として扱われるため、気温の予報のように外れうる値でも、その不確実性は予測区間に入りませんでした。

v1.4.0の[プルリクエスト#2703](https://github.com/facebook/prophet/pull/2703)で、`add_regressor()` に `regressor_predictor` 引数が加わりました。`True` を渡すと、その変数専用のProphetモデルが既定のパラメータで将来値を予測し、その不確実性も予測区間に反映します。辞書を渡すと、専用モデルの `Prophet()` コンストラクタに引数として渡ります（[forecaster.pyのadd\_regressorのdocstring](https://github.com/facebook/prophet/blob/v1.5.0/python/prophet/forecaster.py)）。

```
m = Prophet()
m.add_regressor("temp", regressor_predictor={"changepoint_prior_scale": 0.01})  # 気温は専用モデルで予測
m.add_regressor("promo")  # 販促フラグは計画どおりの値を自分で入れる
m.fit(df)  # df は ds, y, temp, promo の4列

future = m.make_future_dataframe(periods=90)
future["promo"] = 0  # temp 列は埋めなくてよい
forecast = m.predict(future)
```

使い分けの基準は、その変数が予測時点で決まっているかどうかです。販促の実施日や営業日のように計画で決まる変数は、従来どおり自分で値を入れます。気温や来訪者数のように予測が要る変数だけ `regressor_predictor` に任せます。この機能はオプトインで、指定しなければ従来の動きのままです。`cross_validation()` でも検証期間の外部変数を実績値ではなく専用モデルの予測値で置き換えて評価するので、本番に近い誤差が出ます。その代わり、各期間で専用モデルも学習し直す分だけ実行時間が延びます。

### cross\_validationによる調整効果の定量評価

パラメータを変えたら、見た目ではなく時系列の交差検証で比べます。`initial`（最初の学習期間）、`period`（予測の起点をずらす幅）、`horizon`（予測する長さ）を指定すると、「過去のその時点で予測していたらどれだけ外れたか」を再現します。

```
from prophet.diagnostics import cross_validation, performance_metrics

cv = cross_validation(m, initial="730 days", period="90 days", horizon="90 days")
metrics = performance_metrics(cv)  # mse, rmse, mae, mape, mdape, smape, coverage
print(metrics.head())
```

水準が異なる系列の比較にはMAPEが使えますが、実績がゼロまたはゼロに近い系列には向きません。MAEは元の値と同じ単位で解釈でき、RMSEより大きな誤差の影響を抑えられます。`coverage` は実績が予測区間に入った割合で、80%区間なのに大きく下回るなら区間を過信しないほうがよいという合図です。`initial` には年次の季節性を学べるよう730日以上を取り、`horizon` は本番の予測期間（ここでは90日）にそろえます。履歴は `initial` と `horizon` の合計より長く必要です。時間がかかるときは `parallel="processes"` で並列化できます（[公式の診断の章](https://facebook.github.io/prophet/docs/diagnostics.html)は、大きすぎない問題ならこの指定を勧めています）。WindowsやmacOSのようにプロセスをspawn方式で起動する環境では、モデルの作成から交差検証までを関数にまとめ、`if __name__ == "__main__":` の下から呼び出してください。

## Prophetを選ぶ条件と乗り換え先の現況

Prophetの立ち位置は「結果を説明しやすい予測モデル」です。2023年に公式が勧めた乗り換え先のうち、NeuralProphetはGitHubで依存の更新は続いていますが、[PyPIの最新版](https://pypi.org/project/neuralprophet/)は2024年6月21日の0.9.0のままです。新しいリリースが出ているのは[statsforecast](https://pypi.org/project/statsforecast/)（2026年7月16日に2.1.1）のほうです。

| 観点      | Prophet             | statsforecast       | NeuralProphet       | TimesFM          |
| ------- | ------------------- | ------------------- | ------------------- | ---------------- |
| 配布・提供形態 | PyPI 1.5.0（2026-10） | PyPI 2.1.1（2026-07） | PyPI 0.9.0（2024-06） | 重み公開・BigQuery ML |
| 学習      | 系列ごと                | 系列ごと                | 単一系列・複数系列の共同学習      | 不要（事前学習済み）       |
| 主なモデル   | 加法モデル               | AutoARIMA・ETS等      | PyTorch実装の加法モデル     | 基盤モデル            |
| 結果の説明   | 成分の分解図              | 係数・次数               | 成分の分解図              | 難しい              |
| 開発状況    | 保守モード               | リリース継続              | 2024年6月以降リリースなし     | 3.0公開済み          |

TimesFM 3.0は、[公式リポジトリのライセンス注記](https://github.com/google-research/timesfm#license-notice-for-pretrained-weights)のとおり、ダウンロードして自前で動かす重みは非商用・非本番用途に限られます。業務で使うならBigQuery MLなど、Google Cloudの許可されたサービス経由になります。

Prophetを選ぶのは、①予測の根拠を成分の図で関係者に説明する必要がある、②系列が数十〜数百本で1本ずつ短時間で回したい、③祝日やキャンペーンの効果を明示的に入れたい、のいずれかに当てはまるときです。定常性の仮定や次数を詰めるARIMA系の考え方は[時系列とは？意味と分析手法の使い分け](/column/details/6071/)で整理しています。学習なしで予測できる基盤モデルは、BigQueryから使う手順を[TimesFMとは：BigQueryのAI.FORECASTで試す時系列予測](/tech/details/18334/)で解説しています。学習不要でCPUだけで動く基盤モデルの選択肢は[Timestralとは：Mistralの時系列基盤モデルをCPUで動かす手順](https://www.issoh.co.jp/tech/details/19096/)で扱っています。

### Prophetを選ばないほうがよい場面

多数の系列に共通するパターンを1つのモデルで学ばせたい予測では、系列ごとに学習するProphetは第一候補になりません。説明責任が薄く精度だけが問われるバッチ予測なら、最初からstatsforecastやLightGBMなどの勾配ブースティングと誤差を比べてください。保守モードなので、足りない機能が今後追加されることもありません。比較の基準線には、ナイーブ予測や季節ナイーブ予測など、データに合う単純な手法を置きます。同じ検証条件で誤差を比べ、説明可能性や計算負荷も含めて採否を決めます。予測モデルを業務システムに組み込むところまで任せたい場合は、[AI予測分析開発・需要予測開発](/service/ai/predictive/)でデータの確認から相談できます。

## よくある質問

### Prophetの読み方は？fbprophetとは違うライブラリですか？

読み方は「プロフェット」です。`fbprophet` はv1.0で `prophet` に改名される前の名前で、同じライブラリの古い版です。今は `pip install prophet` で入れ、`from prophet import Prophet` で読み込みます。

### Prophetは開発終了したのですか？

終了していません。2026年10月5日にv1.5.0が出ています。ただしv1.4.0から保守モードで、受け付けるのは不具合修正・依存ライブラリの更新・R版の追随だけです。新機能の予定はありません。

### Prophetのライセンスは？商用利用できますか？

MITライセンスです。著作権表示とライセンス文を残せば、商用利用・改変・再配布ができます。

### Prophetの的中率（予測精度）はどれくらいですか？

データ次第で、一律の数字はありません。自分のデータで `cross_validation()` を回し、`performance_metrics()` でMAPEやMAEを計算する方法があります。時系列順に分けた未学習データで予測を評価する方法も使えます。同じ検証期間で季節ナイーブ予測（前年同日の値）やARIMAの誤差も出し、それを下回るかで採否を決めてください。

### 数千本の系列をまとめて予測できますか？

Prophetは1系列に1モデルが基本です。本数が多いときは系列ごとの学習を並列で回します。PyPI版には `parallel` extra としてDask連携の依存が用意されています。Sparkで回したい場合、READMEは2026年10月から、Amadeusが開発したScala製の簡略版再実装[Helter Skelter](https://github.com/AmadeusITGroup/HelterSkelter)を紹介しています。こちらは別実装なので、Prophetと同じ結果になるとは限りません。

## 関連記事

- [時系列とは？意味と分析手法の使い分け｜ARIMAからPython実装まで](/column/details/6071/)
- [TimesFMとは：BigQueryのAI.FORECASTで試す時系列予測とTimesFM 3.0の多変量・共変量【2026年10月時点】](/tech/details/18334/)
- [Amazon Forecastとは？新規受付終了後の移行先と実装判断【2026年版】](/tech/details/15922/)
- [需要予測とは？AI・機械学習による手法とシステム導入の進め方を解説](/column/details/12930/)
- [Pandasとは？できること・使い方とPandas 3.1の変更点【2026年10月】](/tech/details/3123/)

---

出典: [Prophet（Meta・旧Facebook）とは：時系列予測の使い方とv1.5の開発状況【2026年10月】](<https://www.issoh.co.jp/tech/details/3618/>)（株式会社一創）
