害虫カウント数だけで判断しない|時系列・地点差・生育段階で見る異常の捉え方

産業インサイト・課題解決///

粘着トラップやフェロモントラップ(特定の害虫を性フェロモンで誘引する捕獲器)の回収数を毎週記録していると、「先週より増えた」「昨年より多い」といった数字の変化に目が向きやすくなります。捕獲数は、圃場やハウスの状況を客観的に記録できる大切な基礎データです。

一方で、同じ捕獲数であっても、回収間隔、トラップの置き場所、気温の推移、作物の生育段階が違えば、その意味は変わる場合があります。数字の大小だけで防除の要否を決めると、不要な防除が増えることもあれば、確認が遅れることもあります。

最初に決めたいのは「何匹から防除するか」ではなく、「その数字を何と比べ、どの被害に結びつけて読むか」です。捕獲数は発生密度(Pest density:一定の場所にいる害虫の多さ)の目安であり、被害リスク(作物が被害を受けやすい度合い)そのものではありません。

本記事では、害虫モニタリングデータを整える4つの視点と、生育段階別の閾値(判断の目安となる値)と組み合わせる方法を、Pythonの疑似データ例を交えて整理します。本記事に登場する数値・閾値はすべて説明用の架空値であり、実際の基準ではありません。

結論:害虫の異常判断は「数」ではなく「文脈」で行う

害虫の異常判断は、捕獲数を正規化(回収日数などの条件をそろえ、比較できる形に直すこと)したうえで、時系列・地点差・環境・生育段階の文脈と被害閾値を組み合わせて行う、という考え方が基本です。

  • 正規化:捕獲数を回収日数で割り、1日あたりにそろえてから比べる
  • 文脈:自地点の過去、他地点、気温、生育段階の4つの視点で読む
  • 閾値:公的な発生予察情報や自社の記録をもとに、生育段階別に目安を持つ
  • 最終判断:データの判定は見回りの優先順位づけに使い、防除の要否は現地確認とあわせて決める

ただし、これは捕獲数が不要という意味ではありません。捕獲数はすべての判断の土台となる基礎データであり、本記事の主旨は、その土台を比べられる形に整えて使うことにあります。

なぜカウント数だけでは判断を誤るのか

発生密度と被害リスクは別の概念です。捕獲数は発生密度の間接的な指標にとどまり、被害リスクは害虫の数に加えて、生育段階、害虫の種類、加害部位(害虫が食害・吸汁する部位)などによって決まります。捕獲数だけを見ていると、次のような見落としが起こる場合があります。

  • 回収間隔の違い:「10匹/10日」と「10匹/5日」では、1日あたりの捕獲数が2倍異なります。
  • 地点の違い:全体では平常でも、特定の地点だけが急増している場合は、局所的な侵入や発生源が疑われます。ただし、設置条件の違いによる可能性も確認が必要です。
  • 環境の違い:気温が高く推移すると、暦日より早く発生ピークを迎える可能性があります。
  • 生育段階の違い:同じ捕獲数でも、作物の状態によって被害の受けやすさが変わります。

こうした差を、担当者の経験で補っている現場は少なくありません。経験は有効ですが、共有や引き継ぎが難しくなります。判断の根拠を、言葉と数字で残せる形にすることが重要です。

同じ10匹でも意味が違う。苗期と収穫期の比較

説明用の仮想例として、同じ地点で、苗期と収穫期にそれぞれ10匹(回収間隔は同じ)が捕獲されたとします。観測値は同じですが、読み方の軸は生育段階によって変わります。

発生密度と被害リスクの読み方のずれ(概念図)
観測されること:同じ捕獲数(1日あたりに換算しても同じ水準)発生密度の目安は同じでも、被害リスクの読み方は生育段階によって変わります。
生育段階ごとの、読み方の軸と確認点
苗期軸:株の小ささ、侵入の初期初期侵入か、ウイルス媒介の可能性があるかを確認する
生育中期軸:害虫種と加害部位増加傾向が続いているか、他地点との差があるかを確認する
収穫期軸:収穫物への加害、残り期間加害部位が果実などの収穫物か、出荷基準に関わるかを確認する

概念図であり、特定の害虫種・作物における被害の大小や順序を示すものではありません。

生育段階同じ10匹の読み方の例追加で確認したいこと
苗期株が小さく被害への耐性が低いため、初期侵入やウイルス媒介の影響が大きい場合があり、少数でも現地確認を優先する判断になりえます。ウイルス媒介の有無、侵入経路、株の症状
生育中期害虫種と加害部位によって、栽培の進み具合との関係で影響が変わります。増加の傾向(時系列)、他地点との差
収穫期残りの栽培期間が短く、影響範囲が限られる場合があります。ただし、果実など収穫物を直接加害する害虫では、少数でも品質に影響する場合があります。加害部位が収穫物か、出荷基準

ただし、これは「苗期のほうが常に重大」という意味ではありません。害虫種、加害部位、ウイルス媒介の有無によって意味は変わります。この例から結論を断定せず、自社の害虫種と作物に当てはめて確認してください。

すぐ試せる確認作業として、直近の記録から捕獲数が近い週を2つ選び、生育段階と回収日数を並べてみてください。同じ数字でも、読み方が異なる場面が見つかる場合があります。

カウントデータを判断に使える形に整える4つの視点

捕獲数を判断に使うには、比べられる形に整える必要があります。視点は、正規化・時系列・地点差・環境の4つです。

視点目的計算方法の例注意点
正規化回収間隔の違いをそろえる捕獲数÷回収日数(トラップ数が違う場合は設置数でも割る)回収日と設置数を必ず記録する。種類の異なるトラップは混ぜない
時系列自地点の「いつもの水準」からのずれを見る直近数週の移動中央値と、MAD(中央絶対偏差:中央値からのばらつきの目安)による偏差履歴が短いと不安定。季節で水準が変わる
地点差局所的な侵入や発生源の手がかりを得る同じ週の全地点の中央値に対する比率設置条件(出入口付近、日当たり、高さ、粘着面の汚れ)の違いを先に確認する
環境発生時期の前倒し・遅れの手がかりを得る気温から有効積算温度を算出ハウス内と外部気象データでは気温条件が異なる

有効積算温度(Effective accumulated temperature)とは、発育ゼロ点(それ以下では発育が進まないとみなす温度)を超えた分の気温を、日ごとに積み上げた指標です。発育ゼロ点や、発生ピークの目安となる積算値は害虫種ごとに異なるため、公的な発生予察情報や自社の記録で確認します。

4つを一度にそろえる必要はありません。まずは正規化だけを行い、回収日数の列を追加して1日あたりの捕獲数を計算するところから始められます。

被害閾値・生育段階と統合した判断ルールの作り方

整えた数値は、閾値と照らして初めて判断に使えます。関連する用語として、要防除水準(Action threshold:防除を開始する目安となる密度)と、経済的被害許容水準(Economic injury level:防除費用と被害額が釣り合い始める密度)があります。この2つは別の概念で、実際の値は作物・害虫種・地域で異なります。都道府県の病害虫防除所などが出す発生予察情報や防除指針を参照し、自社の記録で検証しながら設定してください。

生育段階注意の目安現地確認の目安設定の考え方の例
苗期0.31.0初期侵入やウイルス媒介を考慮し、低めに設定する例
生育中期0.82.0害虫種・加害部位に応じて調整する
収穫期1.53.0残り期間が短い場合に高めとする例。収穫物を直接加害する害虫では低めに設定する場合がある
害虫モニタリングデータの判断補助の流れ(概念図)
整える正規化捕獲数を回収日数(とトラップ数)で割り、1日あたり・1トラップあたりにそろえる
整える時系列同じ地点の直近数週と比べ、いつもの水準からのずれを見る
整える地点差同じ週の他地点と比べ、局所的な増加がないかを見る
整える環境気温から有効積算温度を求め、発生時期の目安と照らす
判断生育段階別の閾値との照合公的な発生予察情報と自社の記録をもとに設定した目安と照合する
判断3段階判定観察継続・注意・現地確認に整理し、見回りの優先順位をつける
現場現地確認と、記録・見直し確認結果を記録し、閾値や判定ルールを定期的に見直す

判定は見回りの優先順位づけの補助であり、防除の実施可否は現地確認とあわせて判断します。

判定ルールは、説明できる範囲で簡素にしておくことをおすすめします。次の例は、説明用の最小構成です。

  1. 1日あたり捕獲数を、生育段階別の閾値(上表)と照合し、観察継続・注意・現地確認の基準判定を決める
  2. 補助条件を3つ確認する:自地点の急増、他地点との差が大きい、有効積算温度が発生ピークの目安期間に入っている
  3. 補助条件が2つ以上重なった場合は、基準判定を1段階引き上げる(最上位の現地確認を除く)

ここで示したのは考え方の一例です。補助条件の組み合わせ方や閾値は、データの蓄積に応じて検証しながら調整します。「完璧な基準を作ってから始める」のではなく、小さな範囲で運用し、現地確認の結果と照らして見直す進め方が現実的です。

Pythonによる簡易的な判断補助の例(疑似データ)

上記のルールを、pandasで再現する例を示します。データは3地点×10週の架空のもので、機械学習は使わず、統計処理とルールベース判定にとどめています。コードを読まない場合は、次の表のとおりスプレッドシートでも同様に再現できます。

列内容式の例(2行目の場合)
C・D捕獲数・回収日数記録値を入力
E1日あたり捕獲数=C2/D2
F直前4週の移動中央値=MEDIAN(E2:E5)(同じ地点の直前4週の範囲を指定)
G地点比=E2/MEDIAN(同じ週の各地点のE列)
H・I有効積算温度(週・累計)H:=MAX(平均気温-発育ゼロ点,0)*D2 I:=SUM(H$2:H2)
import numpy as np
import pandas as pd

# 注意: 以下の数値・閾値・発育ゼロ点はすべて説明用の架空値です。
# 実際は作物・害虫種・地域の公的情報や自社の記録をもとに設定してください。
T0 = 10.0                 # 発育ゼロ点(架空値)
ACC_RANGE = (150, 300)    # 発生ピークの目安とみなす有効積算温度の範囲(架空値)
SPIKE = 3.0               # 急増とみなす偏差スコア(架空値)
GAP = 2.0                 # 地点差ありとみなす比率(架空値)
MAD_FLOOR = 0.05          # ばらつきがほぼ0のときの下限(1日あたり捕獲数)
THRESH = {                # 1日あたり捕獲数の (注意, 現地確認) 閾値(架空値)
    "苗期": (0.3, 1.0),
    "生育中期": (0.8, 2.0),
    "収穫期": (1.5, 3.0),
}
LABELS = ["観察継続", "注意", "現地確認"]

# 1. 疑似データの作成(3地点 x 10週)
counts = {
    "A": [2, 3, 10, 6, 7, 8, 9, 8, 10, 7],
    "B": [3, 3, 4, 5, 5, 6, 6, 6, 6, 5],
    "C": [2, 2, 3, 3, 4, 4, 5, 5, 4, 4],
}
days = [7, 7, 7, 7, 5, 7, 7, 7, 7, 10]            # 回収間隔(日)
temps = [14, 14, 15, 16, 17, 18, 19, 20, 20, 19]  # 期間の平均気温(施設内を想定)

def stage_of(week):
    return "苗期" if week <= 3 else "生育中期" if week <= 7 else "収穫期"

rows = [
    {"site": s, "week": w, "count": c[w - 1], "days": days[w - 1],
     "temp": temps[w - 1], "stage": stage_of(w)}
    for s, c in counts.items() for w in range(1, 11)
]
df = pd.DataFrame(rows)

# 2. 1日あたり捕獲数への正規化
df["rate"] = df["count"] / df["days"]

# 3. 地点ごとの移動中央値と、MADによる偏差スコア(直前4週を基準にする)
def add_baseline(g, window=4):
    prev = g["rate"].shift(1)
    mad = prev.rolling(window, min_periods=2).apply(
        lambda x: np.nanmedian(np.abs(x - np.nanmedian(x))), raw=True)
    g["base"] = prev.rolling(window, min_periods=2).median()
    g["score"] = (g["rate"] - g["base"]) / (1.4826 * mad.clip(lower=MAD_FLOOR))
    return g

df = pd.concat([add_baseline(g.copy()) for _, g in df.groupby("site")])
df = df.sort_values(["site", "week"]).reset_index(drop=True)

# 4. 同じ週の全地点中央値に対する比率(地点差)
df["site_ratio"] = df["rate"] / df.groupby("week")["rate"].transform("median")

# 5. 有効積算温度(地点ごとの累計)
df["gdd"] = (df["temp"] - T0).clip(lower=0) * df["days"]
df["acc"] = df.groupby("site")["gdd"].cumsum()

# 6-7. 生育段階別閾値との照合と、3段階判定
def judge(r):
    watch, check = THRESH[r["stage"]]
    level = 2 if r["rate"] >= check else 1 if r["rate"] >= watch else 0
    aux = sum([
        bool(r["score"] >= SPIKE),                       # 時系列: 急増
        bool(r["site_ratio"] >= GAP),                    # 地点差: 他地点より大きい
        bool(ACC_RANGE[0] <= r["acc"] <= ACC_RANGE[1]),   # 環境: 目安期間内
    ])
    if aux >= 2 and level < 2:
        level += 1                                       # 補助条件が重なれば1段階引き上げ
    return LABELS[level]

df["label"] = df.apply(judge, axis=1)
cols = ["week", "count", "days", "rate", "stage", "site_ratio", "acc", "label"]
print(df.loc[df["site"] == "A", cols].round(2))
Python
地点・週捕獲数回収日数1日あたり生育段階地点比判定
A・第3週107約1.43苗期2.5現地確認
A・第5週751.40生育中期1.4注意
A・第9週107約1.43収穫期約1.7観察継続
A・第10週7100.70収穫期1.4観察継続

この例では、A地点の第3週と第9週は同じ10匹・同じ回収日数ですが、苗期の閾値を超えるか否かで判定が異なります。第5週と第10週は同じ7匹でも、回収日数の違いで1日あたりの水準が2倍異なります。ただし、閾値が架空値である以上、この判定結果が実際の防除判断として妥当だと示しているわけではありません。

運用で失敗しないための注意点

  • 記録項目の統一:回収日、設置数、トラップの種類・位置・高さを毎回同じ形式で残します。変更した場合は、その日付も記録します。
  • 履歴が短い間の過信を避ける:移動中央値や偏差は、数週間分の履歴が必要です。最初は正規化と地点比較から始め、記録を蓄積します。
  • 気象データの出どころの確認:ハウス内と外部気象データでは気温条件が異なります。可能であれば、施設内の気温を使います。
  • 判定だけで防除を決めない:3段階判定は見回りの優先順位づけです。最終判断は、現地確認と組み合わせて行います。
  • 閾値の定期的な見直し:現地確認の結果と判定を突き合わせ、過剰な警告や見逃しがなかったかを、シーズンごとに点検します。

よくある質問(FAQ)

Q1. 何匹から防除すればよいですか。

一律の匹数をお示しすることはできません。作物、害虫種、生育段階、地域で異なるため、都道府県の病害虫防除所などの発生予察情報や防除指針を確認し、自社の記録で検証してください。農薬を使用する場合は、登録内容やラベルの記載に従う必要があります。

Q2. 記録が少なくても使えますか。

回収日数による正規化と、地点間の比較は、少ない記録からでも始められます。時系列の偏差は履歴が必要なため、記録を蓄積しながら段階的に取り入れます。

Q3. スプレッドシートだけでも実施できますか。

可能です。表4のように、1日あたり捕獲数、移動中央値、地点比、有効積算温度は、一般的な表計算ソフトの関数で計算できます。複数圃場・複数年に拡げる段階で、プログラムによる処理を検討するとよいでしょう。

Q4. 食品工場や倉庫の害虫管理にも使えますか。

捕獲数を正規化し、時系列・地点差・環境と組み合わせて読む考え方は共通します。ただし、管理基準や許容水準は施設ごとの衛生管理方針に依存するため、閾値は個別に設定する必要があります。

まとめ

捕獲数は重要な基礎データですが、それだけで異常を判断するのではなく、発生密度と被害リスクを分けて捉えることが出発点です。次の項目を確認すると、次の一歩が明確になります。

  • 回収日数とトラップ数を記録し、1日あたりに換算しているか
  • 自地点の過去と、他地点の同時期の両方と比べているか
  • 気温などの環境データを、捕獲数と同じ表で扱えるか
  • 生育段階別の目安を、公的情報と自社の記録から設定しているか
  • 判定の結果と現地確認の結果を、記録して見直しているか

害虫の捕獲数は、時系列・地点・環境・生育段階という文脈と組み合わせることで、はじめて判断の根拠になります。SCI総合研究所では、害虫モニタリングデータを現場の意思決定につなげるための整理・分析・判断ルールの検討を支援しています(G-SENSIA)。閾値設定の妥当性を実データで検証したい場合や、発生予測の仕組みを試験的に構築したい場合は、研究開発サポートもご活用ください。自社のデータで何ができるかを確認したい段階でも、お気軽にお問い合わせください。