Xtra etc

日記系雑記ブログ: 農業、データサイエンス、自然

【スポンサーリンク】

農家だってベイズ統計したい! 採花量の時系列予測を Python と R で実装してみた

昨年から時系列予測というキーワードが気になっていて、これならデータさえしっかり集めれば、もしかして何かしらの結果を得られるのでは? と思い、データをとってきました。

農業という職業にはさまざまな課題がありますが、特に小規模農家の場合、経営安定がそのうちの 1 つでしょう。

経営安定は、畢竟、上手に作物を栽培することが肝心ですが、天候に左右されたり、2020 年現在のような感染症流行のような状況では、栽培スキルを維持・向上させるだけでは太刀打ちできない場合があります。

大切なのは、経営が不安定になってから慌てるのではなく、その前に予防策を打っておくことです。不安定な時期に備えて、余剰資金を貯めておくとか、そういう策ですね。2020 年現在の感染症流行ような、年単位の周期で襲ってくる不安定な時期には、それ用の余剰資金を貯めておくべきだと思いますが、もう少し短い、月単位・週単位の周期で予測できれば、それはそれで、経営安定につながるでしょう。たとえば、収穫量が多い数週間時期が続いたから、次の数週間は、収穫量が減るかもしれない… といった具合です。

要するに、過去の収穫量から、未来の収穫量をある程度予想できれば、経営安定の一助になるのではないか? ということですね。

こういった時間の経過に関係するデータを時系列というのですが、収穫量はまさに、時系列データで、収穫量を地道にデータ化していけば、収穫量の時系列予測が可能になる、かもしれないのです。

というかいままで、収穫量をちゃんとしたデータとして残していなかった方が問題だと思うのですが。

それはさておき、過去の自分を責めても仕方ないので、今年の 5 月から、10 月まで集めたデータで、収穫量の時系列予測をしてみました。

ちなみに作物は、グロリオーサという高知特産の花です。花ということで、以下、収穫量ではなく、採花量と表現します。

結論から言うと、上手くいかなかったのですが、これは自分がもっともっと時系列についてお勉強しないといけない、ということですね。

ちなみに、R と Python、両方で実装してみたのですが、どちらかというと、R の方が実装しやすかったし、参考文献も豊富にあるのではないでしょうか。

[目次]

 

1. Python で ARIMA モデルの実装

コチラのサイトを参考にしたのですが、

残念ながら、予測値 (赤線) がマイナスになってしまいました。採花量なので、マイナスになるわけないのですが…

おそらく、どこかで計算式を間違えたのでしょうねえ。

なお、このマイナスになったグラフを、知り合いの大学の先生 (野菜の栽培が専門で、時系列解析は専門外) に見せたら、「赤線をプラスマイナス逆にしたら、青線に近くのでは?」と、要するに、ゼロを中心に赤線 (予測値) と青線 (実測値) が上下対称になっている、と指摘を受けました。

なるほど… やはり大学の先生に見せると違う...

どなたか、時系列解析にお詳しい方がいらしゃったら、ぜひお手伝い願いたいところです。おいしいミョウガをプレゼントします。

2. R による状態空間モデル

RとStanではじめる ベイズ統計モデリングによるデータ分析入門』を参考にして、同じデータで、ローカルレベルモデルの推測と予測を実装してみました。

推測、予測ともに、図示はできていますが、予測は残念な結果になっています。もう少し変動のある予測値が出たら楽しかったのですが… これだと、ARIMA モデルの方が楽しそうですね。もっと勉強しないと。

3. 今後について

ARIMA モデルはもっと勉強すること。というか ARIMA も R で実装した方が良さそう。そもそも ARMA から実装していった方が良いのでは…

と、課題は山積です。

ARIMA を R である程度実装できるようになったら、次は VAR に挑戦ですね。

状態空間モデルの方は、次は、ローカルレベルモデルではなく、時変係数モデルに挑戦ですね。日平均気温や、摘芯数と、採花量の関係を調べていきたいと思っています。

まだまだお勉強は止まらない!

【スポンサーリンク】