この記事では商品を仕入れてAmazonで販売する際の需要予測の方法について見ていきたいと思います。
具体的な方法を見る前になぜ需要予測をするべきかについて考えてみましょう。
目次
需要予測の重要性
Amazonを活用した物販ビジネスでは在庫を長い期間眠らせてキャッシュフローが悪くなるのを避ける必要があります。
必要な商品を必要なだけ仕入れることで限られた予算を効率よく増やしていくことが出来ます。
利益しか考えていない人であれば500万円で仕入れて700万円で商品が売れたと聞くとすごい、と感じてしまうかもしれませんがもし500万円分商品を仕入れて3ヶ月ほど売れなかったのちに700万円の売上が立ったとしたら一月辺りは66.7万円しか稼ぐことが出来ていませんしその3ヶ月は別な商品を仕入れて販売して資金を増やしていた方が良かったことになってしまいます。
一度商品を仕入れてしまうと無理に現金化をしようとしてもマイナスになってしまうのでやはり過剰な在庫を持たないように需要予測を適切に行っていく必要があります。
反対に過剰在庫よりはましですが過少在庫になってしまった場合もビジネスチャンスを逸していることになります。
前回仕入れた時は過少在庫になってしまったから今回は多めに在庫を持っておこう、なんていう感覚的な需要予測を行ってしまうと季節変動や需要変動を読み切れず今度は過剰在庫になってしまう可能性もあるので注意しましょう。
メーカー仕入れやOEMでは在庫を多めに保有することが一般的ですがこの需要予測こそが適切な在庫管理に繋がり銀行の評価もアップしますので少し難しいですが中級者以上の人はしっかりと学習しましょう。
需要予測は当たらない?
需要予測は当たりません。
しかし需要予測は当たらないからチャレンジしてみたけどやめてしまった こんな声を聞くことがありますがそれは非常にもったいないことです。
まず前提として需要予測がぴったりと当たることは多くはないのです。
まなぜならば商品の売上は気象や気温などによっても大きく変動する為です。
天気予報でさえ1週間後の予想の精度は60%程度と言われているので気象の影響を受けやすい小売販売の売上予測は実は難しいテーマとなっています。
また需要予測の計算には必ず誤差が含まれます。
そのためピタリと当てることは難しいですがそれにも関わらず多くの企業が需要予測をに精力的に取り組んでいるのにはやはり需要予測をして在庫の過不足を防ぐことが物販では何よりも重要だからです。
需要予測の誤差は予測期間が長くなればなるほど増えていきます。
上の図が分かりやすいと思います。
確定的な未来はあり得ないということが分かります。しかし確定的な未来は分からなくともその方向は予想出来ます。
需要予測の方法
需要予測の方法は大きく2つに分けることができます。
- まだ販売を行ったことがない商品
- すでに販売を行っている商品
まだ販売を行ったことがない商品
まだ販売を行ったことがない商品の需要予測はさらに2つに分類されます。
- 既製品
- 新規商品
既製品
Amazonの過去の販売数をKeepaなどのツールで調べてFBAセラーの数+1で割って予想販売数を導き出しましょう。私の会社で販売しているアマトピアでも規制の販売数の予測はこの原理に基づいています。(販売数自体はKeepaから取得したビッグデータをAIで補正しています)
ただしライバルが増加傾向にある商品であったり販売数が減少している商品の場合この手法では需要予測を誤る可能性があるので前後の変化についてもチェックするようにしましょう。
また季節性の商品の場合直近のデータでなく旬の時期やそうでない時期の販売数を見ることが大切です。
新規商品
POSデータなどから他社の類似商品の販売データを入手するかECサイトであれば過去の販売数を取得するツールなどで類似商品の販売数を取得しその数を参考に需要予測を行いましょう。
Amazonの場合は同一の商品でも商品ページ単位で売れる数が異なってくるので販売ページを上位表示できるかどうかで予想販売数は変わってくるので注意しましょう。
また参考商品と自社商品が似ているように見えても一般ユーザーから見ると訴求ポイントが異なり思ったより売れないという可能性もあります。
この辺りは機械的な需要予測ではなくマーケティングをきちんと行う必要があるので難易度は高めです。
すでに販売を行っている商品
実売データからAIや(需要予測モデル)を使って販売数を導き出すのが最も確実な方法です。
アマトピアの需要予測もAI活用で行っています。結局何度も繰り返しをしていけるような商品を扱っていくことが重要でその上でなるべく投資効率が良い商品を適切な量だけ仕入れていくことが大切です。
また一度市場に並べた以上リサーチ系のツールの販売数は関係ありません。競合の状況などに影響され近い未来売れる量は自社の販売量でしか予測出来ません。中級者以上だと必ず行なっているのがこの需要予測ですが未だに定点発注を行なっている人も多いのでそういった人に差をつける意味でも需要予測を行いましょう。
定点発注とは例えば在庫が50個を切ったら100個仕入れる、といった手法です。在庫が一定数を切ったタイミングで仕入れること自体は何も悪いことではありませんが次に仕入れる100個がすぐに売れるかどうかが重要です。
それが売り切れるのに4ヶ月以上かかるようであれな在庫保管料が勿体無いですし他の商品に投資していればもっと利益を出せたはずです。一部のOEM商品は別ですが長くとも3ヶ月で売れる量を扱うべきであろいその為には需要予測は必須だと思ってください。
また予算が限られている場合ABC分析を行い優先順位をつけて商品を仕入れていくことが望まれます。
需要予測モデルについてはこれから解説します。
需要予測の種類と適用すべき商品の特徴
需要予測モデルとそれを適用すべき商品の特徴をまとめました。
まず大きく分けて需要予測モデルは2つに分かれます。
- 機械学習(AI)モデル
- 理論モデル
の2つです。
理論モデルを適用した上で最適なモデルを選択するタイプの需要予測は理論モデルの方に含むことにします。
機械学習(AI)モデルはビッグデータと呼ばれる大量のデータを必要としますが人間では考え付かないデータ間の関係性を見出すことができるというメリットがあります。
理論モデルは必要なデータの数が少なくて済みますが非線形な関係性を考慮できないというデメリットがあります。
ただし非線形の理論モデルも存在し精度が高いので非線形モデルを適用するのが需要予測としては一般的です。
ここで代表的な理論モデルを紹介します。
- 移動平均法
- 非季節手法
- 季節手法
- 重回帰分析
- 指数平滑法
- ARIMA(自己回帰和分移動平均モデル)
- SARIMA(季節自己回帰和分移動平均モデル)
また理論モデルの中の指数平滑法だけでも
- 1次指数平滑法
- ホルト法
- ホルト・ウィンタース法
- 可変応答平滑法
などに分かれるので需要予測の種類は豊富です。
精度の高い理論モデルの適用はソフトを使わないと難しいですが初心者でもできる需要予測の方法を紹介します。
有料のソフトを使わずに需要予測をしたい場合はExcelやGoogleスプレッドシートを使いましょう。
ExcelやGoogleスプレッドシートにはforecast関数と呼ばれる関数を使えば簡単に線形回帰を行うことが可能です。
FORECAST(x, データ_y, データ_x)
x – 予測に使用する x 軸の値です。
データ_y – 依存データの配列または行列を表す範囲です。
データ_x – 独立データの配列または行列を表す範囲です。
Pythonによる需要予測
様々なプログラミング言語がある中初学者でも需要予測がやりやすいPythonを例にして需要予測の具体的なやり方を紹介します。
a. 移動平均法
過去の一定期間のデータの平均値を計算し、それを将来の予測値とします。
import pandas as pd
# 過去の販売データ
sales_data = [120, 130, 125, 140, 150, 160, 155, 170, 165, 175]
# データをPandasのシリーズに変換
sales_series = pd.Series(sales_data)
# 移動平均を計算(期間を設定、例:3ヶ月)
moving_average = sales_series.rolling(window=3).mean()
print(moving_average)
b. 時系列分析 (ARIMA)
ARIMAモデルは、過去のデータに基づいて将来の値を予測するために使用されます。
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
# 過去の販売データ
sales_data = [120, 130, 125, 140, 150, 160, 155, 170, 165, 175]
# データをPandasのシリーズに変換
sales_series = pd.Series(sales_data)
# ARIMAモデルを適用
model = ARIMA(sales_series, order=(1, 1, 1))
model_fit = model.fit(disp=0)
# 予測
forecast = model_fit.forecast(steps=5)[0]
print(forecast)
c. 回帰分析
複数の変数(価格、広告費、経済指標など)を使って予測する方法です。
import pandas as pd
import statsmodels.api as sm
# サンプルデータ(例:過去の販売数、価格、広告費)
data = {
'sales': [120, 130, 125, 140, 150, 160, 155, 170, 165, 175],
'price': [10, 10, 11, 11, 12, 12, 11, 11, 12, 12],
'ad_spend': [200, 220, 210, 230, 240, 250, 240, 260, 255, 270]
}
# データをPandasのデータフレームに変換
df = pd.DataFrame(data)
# 目的変数(売上)と説明変数(価格と広告費)を指定
X = df[['price', 'ad_spend']]
y = df['sales']
# 定数項を追加
X = sm.add_constant(X)
# 回帰モデルを適用
model = sm.OLS(y, X).fit()
# 結果の概要を表示
print(model.summary())
# 予測
new_data = {'price': [11], 'ad_spend': [250]}
new_df = pd.DataFrame(new_data)
new_df = sm.add_constant(new_df)
forecast = model.predict(new_df)
print(forecast)
4. モデルの評価
予測モデルがどれだけ正確かを評価するために、以下の指標を使用します:
- MAPE(平均絶対誤差率)
- RMSE(平方根平均二乗誤差)
- MAE(平均絶対誤差)
from sklearn.metrics import mean_absolute_error, mean_squared_error
import numpy as np
# 実際の販売データと予測値
actual_sales = [160, 165, 170, 175, 180]
predicted_sales = forecast
# MAEを計算
mae = mean_absolute_error(actual_sales, predicted_sales)
print('MAE:', mae)
# RMSEを計算
rmse = np.sqrt(mean_squared_error(actual_sales, predicted_sales))
print('RMSE:', rmse)
Amazonの需要予測の方法まとめ
需要予測は後回しになりがちですが非常に重要なテーマなのでもし今までどんぶり勘定で商品を仕入れていたという方はぜひ取り入れてみてください。
また本格的な需要予測を行いたい場合は今回紹介した理論モデルを採用しているようなソフトを利用することをおすすめします。
機械学習(AI)の方は自分で実践するのは現実的ではないので紹介しませんでしたが私がプロデュースしているアマトピアの需要予測機能にも機械学習を活用した需要予測の仕組みを導入中でそちらは売上レポートから自動で値を抽出して需要予測が出来るようになっている為本格的な需要予測をしたい、需要予測で悩んでいるという方はぜひ活用していただければと思います。