４．魚の成長－体長組成と成長曲線－

4.1 概要
魚のサイズは季節や年により変化します。資源全体として見たとき、成長により１尾の体重は増加しますが、個体数は減少していきます。水産資源の有効利用を考え、どのサイズの魚を漁獲するか、あるいは漁獲を制限するかを提案するためには、魚の成長をモデルで表す必要があります。これが成長曲線です。
成長曲線をモデルで表すために必要なデータは、年齢別の体長や体重です。これらの元となるデータは魚体測定によって得ることができます。魚体測定データを整理して体長組成を作成します。体長組成おける複数のモードが年齢群であるかどうかは、体長組成の季節変化から、１年後にそれぞれのモードが大きい方に移動していれば年齢と確認できます。
体長組成の季節変化が追えない場合、各モードにあたる個体から採集した鱗や耳石などの年齢形質から年齢群を確認することができます。この場合でも年輪が本当に１年に１本形成されているかを確認することが必要です。そのためにも季節的な魚体測定が必要になります。
ここでは、まず体長組成に複数のモードが見られる場合、これらを各年齢群に分解し、平均体長などを求める方法を紹介します。この方法については、相澤・滝口(1999)に詳しく紹介されています。次に各年齢群の平均体長からエクセルのソルバーを利用して成長曲線を求める方法を紹介します。成長曲線の当てはめについては、赤嶺(2007)に詳しく紹介されています。なお、体長組成から平均体長などを計算するためのワークシートは神奈川県水産技術センターの相澤康主任研究員から、また成長曲線を求めるワークシートは中央水産研究所の赤嶺達朗主幹研究員から提供していただいたものを利用しやすいように変更しました。
補足ではベルタランフィーの成長曲線の導き方を紹介しています。また、ワルフォード(Walford)の定差図を利用した成長曲線の求め方と定差図の導き方も紹介していますが、定差図を利用した成長曲線は、推定モデルで仮定される誤差が想定される測定誤差と一致しないため、最近では使われていません。しかし、ワルフォードの定差図により求めたパラメータをソルバーによる方法の初期値として利用するとより安定した結果を得ることができます。
4.2 具体例4.2.1 体長組成の解析(4-growth.xls - Sheet 4.2.1)
相澤・滝口(1999)は、繰り返し計算で最尤法を解く Hasselblad 法(1966)に加えて、エクセルに組み込まれているソルバーを利用して目的関数の最適解を探索する方法で、使用する目的関数により最尤法、カイ二乗の最小化法、最小二乗法の３つの方法、計４つの方法を紹介しています。Sheet 4.2.1 はこれら４つの方法で、年齢群ごとの個体数割合 K(%)、平均体長μ、標準偏差σを求めることができます。
13 / 36

Hasselblad の方法の操作手順
第１段階：エクセルのオプションを開き、「数式」を選択し、「計算方法の設定」が「自動」になっていることを確認して下さい。
「手動」となっているときは「自動」に変更して下さい（注 1 参照）。
第２段階：体長階級別の個体数を①の黄色の実測値個体数の欄に入力して下さい。また、必要に応じて②の８～３３の体長階級の値も変更してください。これにより表示されている体長組成が変化します。
第３段階：体長組成を見ながら、③の黄色に初期値を入力して下さい。Ｋ（％）の個体数割合は合計が１になるように調整してください。μの平均体長はモードの値で結構です。
σの標準偏差は全て階級幅でも結構です。例の場合では、σ＝１．０です。
第４段階：③の黄色の初期値の部分をコピーして、④の正規分布に貼り付けて下さい。こ
れにより、⑤の C122:L124 に各年齢群の割合 K(%)、平均体長μ、標準偏差σの新しいパラメータが出力されます。
第５段階：反復計算機能に切り替えるために、再び、エクセルのオプションを開き、「数式」を選択し、「計算方法の設定」で、「手動」と「反復計算を行う」を選択します。ここでは「最大反復回数」や「変化の最大値」を必要に応じて変更したのち「ＯＫ」をクリックします。
第６段階：④の正規分布の表の C23:L25 に第４段階で C122:L124 に出力された新しいパラメータが入るように式を入れます。すなわち、C23 に=C122、C24 に=C123、C25 に=C125・・
L25 に=L124 を入力します。省力化のため、C23 に=C122 を入力し、このセルを C23:L25 のセルにコピーしても結構です。
第７段階：手動での繰り返し計算を起動させるためにＦ９を押すと、⑥に計算結果が出力されます。
ソルバーによる計算法の操作手順
第１段階から第４段階までは上記と同じです。なお、エクセルのオプションを開き、「数式」を選択し、「計算方法の設定」が「自動」になっていることを確認して下さい。「手動」となっているときは「自動」に変更して下さい。
第５段階：「データ」から「ソルバー」を選択します（エクセル 2003 では「ツール」から）。
ソルバーを選択すると「パラメータ設定」が表示されます。最小二乗法の場合は、目的セルとして⑦の最小二乗法の目的関数のセルを指定し、最小値を選択します。カイ二乗法の場合は、目的セルとして⑧のカイ二乗法の目的関数のセルを指定し、最小値を選択します。
最尤法の場合は、目的セルとして⑨の最尤法の目的関数のセルを指定し、最大値を選択します。また、変化させるセルの範囲は各年齢群の割合 K(%)、平均体長μ、標準偏差σです。
制約条件は各年齢群の割合が負でないこと、割合 K(%)の合計が１であることです。これらが妥当かを確認した後、「実行」をクリックして下さい。④の正規分布の表の C23:L25 に結14 / 36

果が出力されます。
なお、Excel で ソルバーを 使 用 す る に は 、 ソルバーア ド イ ン を 読 み 込 む 必 要 が あり ま す 。 よ く わ か ら な い 場 合 は 、「 ？ 」 で ソ ル バ ー を 検 索 し て く だ さ い （ 注 2 参照 ）。
4.2.2 ベルタランフィーの成長曲線
ベルタランフィーの成長曲線は次の式で表されます。なお、このベルタランフィーの成長曲線の導き方は、補足 4.3.1 を参考にして下さい。

lt = l∞ {1-e -K(t-t0) }(1)

この式(1)には l∞ 、K、t0 の３つのパラメータが含まれています。l∞ は最大到達体長です。K は成長係数で、大きいほど曲線の立ち上がりが早くなります。t0 は lt =０としたときの年齢で、曲線をスムーズに当てはめるための仮定のものです。
4.2.3 エクセルのソルバーを利用して成長曲線を求める方法(4-growth.xls - Sheet
4.2.3)
年齢別の実際の平均体長を用いて、ベルタランフィーの成長曲線の l∞ 、K、t0 の３つのパラメータを変化させ、実際の体長と計算体長との残差平方和を最小にするパラメータをソルバーで求める方法です。なお、平均体長のバラツキを考慮する場合には、差異の二乗をさらに標準偏差で補正しますが、その補正の必要がない場合は１とします。
なお、ソルバーを利用する際の l∞ 、K、t0 の初期値として、ワルフォードの定差図により求めたパラメータを利用するとより安定した結果を得ることができます。
4.3 補足4.3.1 ベルタランフィーの成長曲線の導き方
ベルタランフィーの成長曲線は、魚が餌から栄養を吸収し、また体を動かして栄養を消費し、その差により成長していると仮定しています。栄養の吸収は消化管の面積に比例し、栄養の消費は体重に比例するとします。この考えを式にすると次のようになります。
（魚の成長）＝（魚の消化管から栄養を吸収する量）－（魚が動いて栄養を消費する量）＝（吸収する量は消化管の面積、つまり体長の２乗に比例）－（消費する量は体重、つまり体長の３乗に比例）
dW/dt = HS - KW(2)

この式(2)は体重の変化が栄養の吸収（同化）HS と栄養の消費（異化）KW の差であること
15 / 36

を示しています。ここで S は消化管の面積で、W は体重で、H と K は定数です。

S は体長の２乗に比例し S=pl2、W は体長の３乗に比例し W=ql3 として、式(2)に代入すると、
dW/dt = Hpl2 - Kql3
先の体重の式 W=ql3 を l で微分すると、(3)
dW = 3ql2dl***** 微 分 の 公 式

xa の 微 分 は axa-1*****
これを式(3)に代入すると、
3ql2dl/dt = H pl2 - K ql3
これから、dl/dt = (Hpl2 - K q l3) / (3 q l2) = Hp / 3q - K l /3 = ( K/3 )( Hp/Kq -l )ここでK/3 = K' Hp/Kq = a とするとこれはdl/(a - l) = K'dt

積分すると-ln(a - l) = K't + C

dl/dt = K'( a - l )***** 積分の公式

1/x の積分は ln(x) + C *****

a - l = C' e-K't
従って

l =a - C' e-K't

初期条件として t= t0 のとき、l = 0 とすると、
0 =a - C' e-K't0 から、C' = a/ e-K't0 = aeK't0
ゆえに

l = a - C' e-K't = a - aeK't0 e-K't = a(1 - e-K'(t-t0))

t=∞ のとき、l = l∞ とすると、***** 指数関数

a = l∞
16 / 36e-∞ = 1/ e∞ = 0*****

ゆえにl = l∞ (1 - e-K'(t-t0))

l に添字 t をつけると

lt = l∞ {1-e -K(t-t0) }(4)となり、ベルタランフィーの成長曲線になります。
ここで、l∞ は最大体長K は成長係数です。この値が大きいほど、最大体長に早く近づきます。つまり初期の成長が良いことになります。
t0は体長が０となる理論上の年齢です。

4.3.2 ワルフォード(Walford)の定差図を利用する方法(4-growth.xls - Sheet 4.3.2)
ベルタランフィーの成長曲線の 3 つのパラメータはワルフォード(Walford)の定差図を利用して推定することもできます。ベルタランフィーの成長曲線(1)を変形して、下記の定差図の式(5)を導きます。なお、この式の導き方は、補足 4.3.3 を参考にして下さい。

lt+1 = l∞ (1 - e -K) + e -Klt

(5)

式(5)は lt+1 が lt に対して直線回帰し、その Y 切片が l∞ (1 - e -K)、回帰係数が e -K であることを示しています。従って、lt に対して lt+1 を直線回帰させると、l∞ と K が推定できます。そして l∞ と K が推定されると、t0 が推定できます。ただし、どの年齢の体長を使うかで t0 が変わるという問題はあります。

lt に対して lt+1 を直線回帰させた図を、ワルフォード(Walford)の定差図と呼んでいます。
Sheet 4.3.2 は以西のキダイを例に、ワルフォードの定差図を作成し、最小二乗法で直線回帰させた場合とエクセルのソルバーで求めた場合を示しています。また、エクセルの関数 slope と intercept を使った場合も示しています。
4.3.3 ワルフォード(Walford)の定差図の導き方
式(4)から lt+1 = l∞ {1-e -K(t+1-t0) }(6)

また、式(4)から e -K(t-t0) = 1 - lt /l∞(7)

式(6)は、lt+1 = l∞ {1-e -K(t+1-t0) } = l∞ {1-e -K(t-t0) e-K
これに式(7)を代入して、17 / 36}

lt+1 = l∞ {1 - (1 - lt /l∞) e-K } = l∞ (1 - e-K + e-K lt /l∞ ) = l∞ (1 - e-K ) + e-K lt(8)

4.4 引用文献
4.4.1 相澤康・滝口直之. 1999. MS-Excel を用いたサイズ度数分布から年齢組成を推定する方法の検討. 水産海洋研究, 63:205-214.
4.4.2 赤嶺達郎. 2007. 水産資源学の基礎. 恒星社厚生閣．115pp.
4.4.3 Hasselblad, V. 1966. Estimation of parameters for a mixture of normaldistributions.

Technometrics, 8:431-444.

4.5 雛形になる文献
4.5.1 養松郁子・廣瀬太郎・白井滋. 2012. 隠岐諸島西方海域におけるベニズワイガニ雌の成長. Nippon Suisan Gakkaishi, 78(2):230-240.
4.5.2 稲川亮・服部努・渡邊一仁・成松庸二・伊藤正木. 2012. 東北地方太平洋沖におけるサメガレイの成長様式および漁獲物の年齢組成. Nippon Suisan Gakkaishi,78(6):1118-1126.

注 1：
Sheet 4.2.1 は例では反復回数 500 回、計算結果の変化の最大値は 0.0001 と設定されていますが、これらを 変 更 す る 場 合 は 次 に 従 っ て 下 さ い 。

1.

(Microsoft Office ボ タ ン ) を ク リ ッ ク し 、 [Excel の オ プ シ ョ ン ] を クリ ッ ク し ま す 。 次 に 、 [数 式 ] を ク リ ッ ク し ま す 。

2. [計 算 方 法 の 設 定 ] の [反 復 計 算 を 行 う ] チ ェ ッ ク ボ ッ ク ス を オ ン に し ま す 。
3. 再 計 算 を 実 行 す る 最 大 の 回 数 を 設 定 す る に は 、 [最 大 反 復 回 数 ] ボ ッ ク ス に 反復 計 算 の 回 数 を 入 力 し ま す 。反 復 計 算 の 回 数 が 多 い ほ ど 、ワ ー ク シ ー ト の 再 計
算に必要な時間は長くなります。

18 / 36

4. 計 算 結 果 の 変 化 の 最 大 値 を 設 定 す る に は 、 [変 化 の 最 大 値 ] ボ ッ ク ス に 数 値 を入 力 し ま す 。数 値 が 小 さ い ほ ど 、計 算 結 果 は 正 確 に な り ま す が 、ワ ー ク シ ー トの再計算に必要な時間は長くなります

注 2：
なお、Excel で ソルバーを 使 用 す る に は 、次 の 手 順 で ソルバーア ド イ ン を 読 み 込 む必要があります。よくわからない場合は、ソルバーで検索してください。
1.

(Microsoft Office ボ タ ン ) を ク リ ッ ク し 、[Excel の オ プ シ ョ ン ] をクリックします。

2.

[ア ド イ ン ] を ク リ ッ ク し 、 [管 理 ] ボ ッ ク ス の 一 覧 の [Excel ア ド イ ン ]をクリックします。

3.

[検 索 ] を ク リ ッ ク し ま す 。

4.

[有 効 な ア ド イ ン ] ボ ッ ク ス の 一 覧 の [ソ ル バ ー ア ド イ ン ] チ ェ ッ ク ボッ ク ス を オ ン に し 、 [OK] を ク リ ッ ク し ま す 。

5.

ソ ル バ ー ア ド イ ン を 読 み 込 む と 、 [デ ー タ ] タ ブ の [分 析 ] で [ソ ル バー] コマンドを利用できるようになります。

19 / 36