Commit 34effc1b authored by pfreon's avatar pfreon
Browse files

Minor changes and addition of data

Addition or modification of data sets.
Cosmetic changes on displays and texts of models description.
Reorganization of the rules file.
parent b86db754
Years;Production;Effort;Environment;;
1.00;54.28034816;5.0;16;
2.00;56.28034816;5.2;17;
3.00;53.28034816;4.99;18;
4.00;55.28034816;5.14834649;1;
5.00;84.66992398;3.00680635;2;
6.00;8.89964635;0.26853304;3;
7.00;36.32895858;1.19780445;4;
8.00;90.16381982;2.71468457;5;
9.00;55.60481641;1.09155193;6;
10.00;52.48768878;1.08372534;7;
11.00;49.75958709;1.1309877;8;
12.00;68.05856244;1.22488726;9;
13.00;24.65675785;0.49309695;10;
14.00;79.2071965;1.33795696;11;
15.00;12.55295715;0.26169531;12;
16.00;19.61945368;0.40394008;13;
17.00;55.77918908;1.13299769;14;
18.00;96.73988912;2.64686452;15;
19.00;89.68769425;3.32027634;16;
20.00;28.25080188;0.91207568;17;
21.00;61.13059116;2.03921983;18;
Years;Production;Effort;Environment;;
1.00;55.28034816;5.14834649;1;
2.00;84.66992398;3.00680635;2;
3.00;11.89964635;0.35853304;3;
4.00;36.32895858;1.19780445;4;
5.00;90.16381982;2.71468457;5;
6.00;55.60481641;1.09155193;6;
7.00;52.48768878;1.08372534;7;
8.00;49.75958709;1.1309877;8;
9.00;68.05856244;1.22488726;9;
10.00;24.65675785;0.49309695;10;
11.00;79.2071965;1.33795696;11;
12.00;12.55295715;0.26169531;12;
13.00;19.61945368;0.40394008;13;
14.00;55.77918908;1.13299769;14;
15.00;96.73988912;2.64686452;15;
16.00;89.68769425;3.32027634;16;
17.00;28.25080188;0.91207568;17;
18.00;61.13059116;2.03921983;18;
Years;Production;Effort;Environment;;
1.00;55.28034816;5.14834649;1;
2.00;84.66992398;3.00680635;2;
3.00;11.89964635;0.35853304;3;
4.00;36.32895858;1.19780445;4;
5.00;90.16381982;2.71468457;5;
6.00;55.60481641;1.09155193;6;
7.00;52.48768878;1.08372534;7;
8.00;49.75958709;1.1309877;8;
9.00;68.05856244;1.22488726;9;
10.00;24.65675785;0.49309695;10;
11.00;79.2071965;1.33795696;11;
12.00;12.55295715;0.26169531;12;
13.00;19.61945368;0.40394008;13;
14.00;55.77918908;1.13299769;14;
15.00;96.73988912;2.64686452;15;
16.00;89.68769425;3.32027634;16;
17.00;28.25080188;0.91207568;17;
18.00;61.13059116;2.03921983;18;
19.00;29.35310344;5.4;19;
20.00;5.0;5.8;22;
21.00;6.0;5.7;21;
Years;Production;Effort;Environment;;
1.00;552.8034816;51.4834649;1;
2.00;846.6992398;30.0680635;2;
3.00;118.9964635;3.5853304;3;
4.00;363.2895858;11.9780445;4;
5.00;901.6381982;27.1468457;5;
6.00;556.0481641;10.9155193;6;
7.00;524.8768878;10.8372534;7;
8.00;497.5958709;11.309877;8;
9.00;680.5856244;12.2488726;9;
10.00;246.5675785;4.9309695;10;
11.00;792.071965;13.3795696;11;
12.00;125.5295715;2.6169531;12;
13.00;196.1945368;4.0394008;13;
14.00;557.7918908;11.3299769;14;
15.00;967.3988912;26.4686452;15;
16.00;896.8769425;33.2027634;16;
17.00;282.5080188;9.1207568;17;
18.00;611.3059116;20.3921983;18;
19.00;293.5310344;54.0;19;
20.00;50.0;58.0;22;
21.00;60.0;57.0;21;
Years;Production;Effort;Environment
1974; 48.80; 6.16; 1370
1975; 65.60; 12.98; 2558
1976; 105.00; 18.33; 2196
1977; 117.20; 31.14; 1528
1978; 280.50; 59.73; 3114
1979; 573.20; 151.08; 1863
1980; 795.20; 317.47; 1786
1981; 1113.70; 379.72; 2004
1982; 1258.60; 574.34; 828
1983; 1351.30; 453.70; 905
1984; 1635.30; 763.78; 934
1985; 2200.80; 898.59; 1327
1986; 2397.30; 937.33; 1242
1987; 2168.10; 1175.28; 1055
1988; 2468.50; 1297.65; 1235
1989; 2786.50; 1254.23; 1841
1990; 2870.60; 1545.74; 917
1991; 2659.00; 1434.05; 1049
1992; 2660.30; 1560.53; 702
1993; 2848.30; 1550.63; 1277
1994; 2641.00; 1339.33; 898
1995; 2201.60; 1464.15; 563
1996; 2115.10; 1330.54; 753
1997; 2296.10; 1439.95; 1289
1998; 2324.80; 1284.04; 1276
......@@ -403,13 +403,12 @@ public class Cadre_Question extends JFrame
String[] item;
String message;
modele = new DefaultListModel<String>();
numQ = QuestionReponse.getNum();
numQ = QuestionReponse.getNum(); // Numéro de règle appliquée (4ème colonne de fichier Arbre_decisions.csv).
numR = QuestionReponse.getNumRegle();
//System.out.println("Dans Cadre_Question ligne 406: n° de question numQ = " + numQ + " n° de règle numR = " + numR);
if (numQ == -1)
{
String m$ = "Your data set is not appropriate.";
//String m$ = ""; // Modif. 2020
if (numR > 6) // Modif. 2020
m$ = "Your data set is not appropriate for this model (see statistical results in the 'Current Known facts' table).\nI stop here the procedure.";
if (!Global.bavard)
......
......@@ -55,8 +55,8 @@ public class Cadre_Resultats extends JFrame {
// gridLayout1.setRows(3);
// gridLayout1.setVgap(5);
jScrollPane1.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Final Jackknife results"));
jScrollPane3.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Noteworthy values for MSY"));
jScrollPane2.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Noteworthy values for MSE"));
jScrollPane3.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Noteworthy jackknife values for MSY"));
jScrollPane2.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Noteworthy jackknife values for MSE"));
gridLayout1.setColumns(2);
jScrollPane4.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Intermediate Jackknife results"));
jPanelValidation.add(jPanel1, null);
......
......@@ -175,8 +175,8 @@ public class Data {
return null;
}
}
/**
* Retourne Catches
/**
* Retourne Catches
*
* @return un double[], ou null si fichier non valide
*/
......@@ -262,7 +262,7 @@ public class Data {
int agerec = Global.recruitment_age;
int begining = Global.begin_influence_period;
int ending = Global.end_influence_period;
//System.out.println(nbexploit+"****"+agerec+ "**********" +begining+"******"+ending);
//System.out.println(nbexploit+"****"+agerec+ "**********" +begining+"******"+ending);
/*int nbexploit=Integer.parseInt((String)Global.htVar.get("nb_classes_exploitees"));
int agerec=Integer.parseInt((String)Global.htVar.get("recruitment_age"));
......
......@@ -100,7 +100,7 @@ public class Plot implements Cloneable {
//System.out.println("Flag PlotSerie s, ligne 100 Plot.java"); // test 2020
int divX = 10;
if (nbSerie == 0) {
extremasSeries[0] = s.getMinX()-((s.getMaxX() - s.getMinX())/20); //Pour éloigner valeur Xmin de l'axe des Y Modif. 2020
extremasSeries[0] = s.getMinX()-((s.getMaxX() - s.getMinX())/20); //Pour éloigner valeur Xmin de l'axe des Y Modif. 2020
extremasSeries[1] = s.getMaxX()+((s.getMaxX() - s.getMinX())/20); //Pour éloigner valeur Ymax du bout de l'axe des X. Modif 2020
titre[0] = s.getNameX();
extremasSeries[2] = s.getMinY()-((s.getMaxY() - s.getMinY())/20); //Pour éloigner valeur Ymin de l'axe des X Modif. 2020
......@@ -131,7 +131,7 @@ public class Plot implements Cloneable {
ajusteExtrema(0, 1);
}
//System.out.println("Ligne 133 PlotSerie s, calcul pas[1] extremasSeries[3]= " + extremasSeries[3]+" et extremasSeries[2]= " + extremasSeries[2]); // test 2020
pas[1] = Math.abs((extremasSeries[3] - extremasSeries[2]) / 10); // Le pas sur l'axe des Y (pas[1] est égal à 1/10ème del'étendue, arondi à unité entière. // Commentaire 2020
pas[1] = Math.abs((extremasSeries[3] - extremasSeries[2]) / 10); // Le pas sur l'axe des Y (pas[1] est égal à 1/10ème del'étendue, arondi à unité entière. // Commentaire 2020
if (pas[1] > 1) {
pas[1] = Math.round(pas[1] + 0.5);
}
......@@ -141,7 +141,7 @@ public class Plot implements Cloneable {
// the PAS is equal to zero because the values are constant...
//if (pas[0] == 0 || pas[1] == 0) {
if (pas[0] == 0) {
System.out.println("We reject the serie because of the STEP");
System.out.println("We reject the serie because of the STEP");
return;
}
ListeSerie.add(s);
......@@ -211,8 +211,8 @@ public class Plot implements Cloneable {
} else {
grad = (int) (dimPlot.height * 0.01);
}
x1 = (extremasAxes[0] * paramEchelle[0] - paramEchelle[2]);
// System.out.println("extremasAxes[0] 1 = " + extremasAxes[0]);
x1 = (extremasAxes[0] * paramEchelle[0] - paramEchelle[2]);
x2 = (extremasAxes[1] * paramEchelle[0] - paramEchelle[2]);
y1 = ((extremasAxes[2] + origine[0]) * paramEchelle[1] + paramEchelle[3]);
y2 = ((extremasAxes[3]) * paramEchelle[1] + paramEchelle[3]);//ici16/7
......@@ -245,7 +245,8 @@ public class Plot implements Cloneable {
textTl = new TextLayout(titre[2], getPoliceTitre('g'), new FontRenderContext(null, false, false));
textTl.draw(g2, (float) (x1 + (x2 - x1) / 2 - (textTl.getBounds().getWidth()) / 2), (float) (y2 - 2 * (textTl.getBounds().getHeight())));
}
x1 = ((extremasAxes[0] + origine[1]) * paramEchelle[0] - paramEchelle[2]);
x1 = ((extremasAxes[0] + origine[1]) * paramEchelle[0] - paramEchelle[2]);
//System.out.println("extremasAxes[0] 2 = " + extremasAxes[0]);
x2 = ((extremasAxes[1] + origine[1]) * paramEchelle[0] - paramEchelle[2]);
y1 = (extremasAxes[2] * paramEchelle[1] + paramEchelle[3]);
y2 = (extremasAxes[3] * paramEchelle[1] + paramEchelle[3]);
......@@ -255,7 +256,7 @@ public class Plot implements Cloneable {
if (ShowLegend) {
traceLegende(g, posLeg);
}
//line=new Line2D.Double(x1-grad,y1,x1+grad,y1);
//line=new Line2D.Double(x1-grad,y1,x1+grad,y1);
//g2.draw(line);
// nb=extremasAxes[2]+pas[1];
nb = extremasAxes[2];
......@@ -377,6 +378,7 @@ public class Plot implements Cloneable {
* @return double le minimun de la série sur X.
*/
public double getMinSerieX() {
//System.out.println("extremasSeries[0] de getMinSerieX() = " + extremasSeries[0]);
return extremasSeries[0];
}
......@@ -413,6 +415,7 @@ public class Plot implements Cloneable {
* @return double le miniimum sur X.
*/
public double getMinAxeX() {
//System.out.println("extremasSeries[0] de getMinAxeX() = " + extremasSeries[0]);
return extremasAxes[0];
}
......@@ -491,7 +494,8 @@ public class Plot implements Cloneable {
* @param double le minimum ext.
*/
public void setMinAxeX(double ext) {
extremasAxes[0] = ext;
//System.out.println("extremasSeries[0] de setMinAxeX() = " + extremasSeries[0]); // = 0 puis <0 avant plot CPUE=f();.
extremasAxes[0] = ext;
}
/*
......@@ -505,7 +509,7 @@ public class Plot implements Cloneable {
}
/*
* Affecte le minimiun sur l'axe X du graphique.
* Affecte le minimiun sur l'axe Y du graphique.
*
* @param double le minimum ext.
*/
......@@ -920,6 +924,7 @@ public class Plot implements Cloneable {
int typemark = s.getMark();
if ((s.getMinX() >= extremasAxes[0] && s.getMaxX() <= extremasAxes[1] && s.getMinY() >= extremasAxes[2] && s.getMaxY() <= extremasAxes[3]) == false) {
//System.out.println("s.getMinX() = " + s.getMinX() + " extremasAxes[0] = " + extremasAxes[0]);
LimitePlot lp = new LimitePlot(s.getDataX(), s.getDataY(), extremasAxes);
vx = lp.getXs();
vy = lp.getYs();
......@@ -948,7 +953,7 @@ public class Plot implements Cloneable {
case Courbes:
g2.setColor(s.getCouleur());
g2.setStroke(s.getBasicStroke());
vx[0] = vx[0] * paramEchelle[0] - paramEchelle[2];
vx[0] = vx[0] * paramEchelle[0] - paramEchelle[2];
vy[0] = vy[0] * paramEchelle[1] + paramEchelle[3];
for (i = 1; i < vx.length; i++) {
vx[i] = vx[i] * paramEchelle[0] - paramEchelle[2];
......@@ -963,8 +968,8 @@ public class Plot implements Cloneable {
currentColor = s.getCouleurPoints();
traceMark(g2, vx, vy, typemark, currentColor);
break;
case CourbesModales:
System.out.println("\na FLAG CourbesModales LIGHE 967 Plot.java"); // N'apparait pas... . Test 2020
case CourbesModales: // graphiques dont l'axe des X repr�sente une variable qualitative?
System.out.println("\na FLAG CourbesModales LIGNE 967 Plot.java"); // N'apparait pas... . Test 2020
g2.setColor(s.getCouleur());
g2.setStroke(s.getBasicStroke());
x1 = vx[0] * paramEchelle[0] - paramEchelle[2];
......@@ -1072,7 +1077,7 @@ public class Plot implements Cloneable {
int py = (int) (fm.getHeight());
Color cf = panel.getForeground();
g.setColor(panel.getBackground());
// Rectangle2D.Float point=new Rectangle2D.Float(4.0f,(float)(d.height-py),(float)(d.width*0.95f), (float)py);
// Rectangle2D.Float point=new Rectangle2D.Float(4.0f,(float)(d.height-py),(float)(d.width*0.95f), (float)py);
//g2.draw(point);
g.fillRect(4, d.height - (2 * py), (int) (d.width * .95), py);
g.setColor(cf);
......@@ -1123,7 +1128,7 @@ public class Plot implements Cloneable {
* Ajuste les extremas des axes de façon automatique de telle sorte que
* l'extremité des axes correspondent à une graduation.
*/
protected void ajusteExtrema(int i, int j) {
protected void ajusteExtrema(int i, int j) { // différent de ajuste Extremas (pluriel) ci-dessous.
int p = 0;
if (j == 3) {
p = 1;
......@@ -1133,8 +1138,6 @@ public class Plot implements Cloneable {
}
extremasAxes[i] = extremasSeries[i]; // Définition extremasAxes minima < 1; i=0 min X et i=2 min Y. Commentaire 2020
extremasAxes[j] = extremasSeries[j]; // Définition extremasAxes maxima < 1; j=1 max X et j=3 max Y. Commentaire 2020
//System.out.println("ajusteExtrema(), ligne 1133 Plot.java, i="+ i + " extremasAxes[i]= " + extremasAxes[i]);
//System.out.println("ajusteExtrema(), ligne 1133 Plot.java, j="+ j + " extremasAxes[j]= " + extremasAxes[j]);
if (Math.abs(extremasAxes[i]) > 1) {
extremasAxes[i] = Math.round(extremasAxes[i] - 0.5); // Définition extremasAxes > 1 (=arrondi de valeur). Commentaire 2020
......@@ -1142,16 +1145,18 @@ public class Plot implements Cloneable {
if (Math.abs(extremasAxes[j]) > 1) {
extremasAxes[j] = Math.round(extremasAxes[j] + 0.5);
}
//System.out.println("ajusteExtrema(), ligne 1133 Plot.java, i="+ i + " extremasAxes[i]= " + extremasAxes[i]);
//System.out.println("ajusteExtrema(), ligne 1133 Plot.java, j="+ j + " extremasAxes[j]= " + extremasAxes[j]);
double adj = extremasAxes[i];
int z = 0;
while (adj < extremasAxes[j]) {
adj = adj + pas[p];
//z=z+1;
//z=z+1;
// if(z>100)
// {
// System.out.println(adj + "pas" + pas[p]+ " "+extremasAxes[j]);
// return;
// }
// }
}
extremasAxes[j] = (double) adj;
......@@ -1161,7 +1166,7 @@ public class Plot implements Cloneable {
* Ajuste les extremas des axes de telle sorte que les graduations soient
* des multiples de 10. (PF 2020: c'est un pb pour graphique résidus car amplitude divisée 2 !!!)
*/
public void ajusteExtremas(boolean surX, boolean surY, boolean minzeroSurX, boolean minzeroSurY) {
public void ajusteExtremas(boolean surX, boolean surY, boolean minzeroSurX, boolean minzeroSurY) { // différent de ajuste Extrema (singulier) ci-dessus.
// Selon valeur booléenne (vrai ou faux) applique ou non l'ajustement surX, sur X et met ou non le minimum à zéro sur Y et sur Y
// System.out.println("Flag ajusteExtremas(), ligne 1163 Plot.java"); // test 2020
long[] bornes = {1, 10, 100, 1000, 10000};
......@@ -1181,9 +1186,9 @@ public class Plot implements Cloneable {
return;
}
for (int i = deb; i < fin; i++) {
// System.out.print("i " + i + "OLD " +extremasSeries[i]);
//System.out.println("i " + i + "OLD extremasSeries[i] " +extremasSeries[i]);
double extabs = Math.abs(extremasSeries[i]); // extabs pour extension absolue
// System.out.print("ajusteExtremas(), ligne 1181 Plot.java i =" + i + " extremasSeries[i]=" + extremasSeries[i]);
//System.out.println("ajusteExtremas(), ligne 1181 Plot.java i =" + i + " extremasSeries[i]=" + extremasSeries[i]);
int index = 4;
if (extabs < 1) {
index = 0;
......@@ -1221,7 +1226,7 @@ public class Plot implements Cloneable {
} else {
extremasAxes[i] = newext;
}
//System.out.println(" new " +extremasAxes[i]);
//System.out.println(" NEW extremasSeries[i] " +extremasAxes[i]);
}
//System.out.println();
if (minzeroSurX && extremasAxes[0] > 0) {
......@@ -1238,8 +1243,8 @@ public class Plot implements Cloneable {
}
if (pas[1] > 100) {
this.setDecimalsurY(0);
}
//if(surX) ajusteExtrema(0,1);
}
//if(surX) ajusteExtrema(0,1);
//if(surX) ajusteExtrema(2,3);
}
......
......@@ -359,7 +359,7 @@ public class PlotPreferences extends JDialog
graNew.setpasX(ValidationText(txtonX, graNew.getpasX()));
graNew.setpasY(ValidationText(txtonY, graNew.getpasY()));
graNew.setMaxAxeX(ValidationText(txtaxeXmax, graNew.getMaxAxeX()));
graNew.setMinAxeX(ValidationText(txtaxeXmin, graNew.getMinAxeX()));
graNew.setMinAxeX(ValidationText(txtaxeXmin, graNew.getMinAxeX()));
graNew.setMaxAxeY(ValidationText(txtaxeYmax, graNew.getMaxAxeY()));
graNew.setMinAxeY(ValidationText(txtaxeYmin, graNew.getMinAxeY()));
graNew.setPoliceGraduation(lblExample.getFont());
......
......@@ -66,7 +66,7 @@ public class RechercheModele { //Variables dans fichier ListeModele.csv:
ReadFileText rft=new ReadFileText(file);
dataLine=rft.getLines();
nbData=dataLine.length;
//System.out.println("nbData = " + nbData);
String[] mE=new String[nbData];
String[] mV=new String[nbData];
String[] mEVA=new String[nbData];
......@@ -154,11 +154,8 @@ public class RechercheModele { //Variables dans fichier ListeModele.csv:
listeModeleEVCatchability[c]=mEVC[c];
for(int c=0;c<ievb;c++)
listeModeleEVBoth[c]=mEVB[c];
//System.out.println(ordre[num]+" " +numMod[i]+" "+ type[i]+" "+affichage[i]+" "+equation[i]+" "+nbre_param[i]+" "+help[i]+" "+infl_Env[i]);
//System.out.println(ordre[num]+" " +numMod[i]+" "+ type[i]+" "+affichage[i]+" "+equation[i]+" "+nbre_param[i]+" "+help[i]+" "+infl_Env[i]);
}
}
catch(Exception e)
{
......@@ -166,16 +163,15 @@ public class RechercheModele { //Variables dans fichier ListeModele.csv:
}
}
/*
Slectionne un modle en fonction des parametres connus (Propose en fonction de l'état du
Sélectionne un modèle en fonction des parametres connus (Propose en fonction de l'état du
processus un modèle s'il existe)
*/
public static void select(){
int newIndex=-1;
int i=0;
foundModel=false;
//System.out.println("On recherche d'abord un modèle Global.relationCPU_E = " + Global.relationCPU_E + " Global.relationCPU_V = " + Global.relationCPU_V );
//System.out.println("On recherche d'abord un modèle Global.relationCPU_E = " + Global.relationCPU_E + " Global.relationCPU_V = " + Global.relationCPU_V );
if(Global.relationCPU_E!=2 && Global.relationCPU_E!=6 && Global.cpue_sous_sur_production==1 && Global.relationCPU_V!=0)
{
Global.relationCPU_E=7; // empêche de trouver un modèle si cpue_sous_sur_production lorsque surexploition et que CPUE=f(E) non-exponentile dans case 5: et 8: du fichier TexteRegles.java
......@@ -253,7 +249,6 @@ public static int getNumero(){
}
/*
Donne la forme de la relation entre la CPUE et V
@return : String la forme litrerale de la relation.
......@@ -349,14 +344,10 @@ public static String getModelInformation(){
return "";
}
public static void reset(){
foundModel=false;
for(int i=0;i<nbData;i++)
teste[i]=false;
}
/*
......@@ -381,9 +372,8 @@ public static String[] getlisteModele(int typeModele){
default:
return null;
}
}
/*
Donne l'influence de l'environnement pout le modele s�lectionn�
@return un String ou null si pas de mod�le s�lectionn�.
......
MODEL: CPUE = a V + b V^2 E
This is a production model combining on the one hand a linear relation-
ship between the CPUE and the fishing effort E (Schaefer model), and on
This is a production model combining on the one hand a linear relationship
between the CPUE and the fishing effort E (Schaefer model), and on
the other hand a linear relationship between the CPUE and the environmental
variable V. This latter variable is supposed to only influence the catchability
coefficient and not the stock abundance (surplus production).
......
MODEL: CPUE = ((a V^b) c E)^(1/(d - 1))
MODEL: CPUE = ((a V^b) d E)^(1/(c - 1))
This is a production model combining on the one hand the generalized
model (Pella and Tomlinson model) between the CPUE and the fishing
effort E, and on the other a power relationship between the CPUE
and the environmental variable V. This latter variable is supposed to
This is a surplus production model combining on the one hand the
generalized model (Pella and Tomlinson model) between the CPUE and the
fishing effort E, and on the other hand a power relationship between the
CPUE and the environmental variable V. This latter variable is supposed to
only influence the abundance of the stock (surplus production) and not
the catchability coefficient.
After fitting this model, if the value of the parameter d is not
After fitting this model, if the value of the parameter c is not
significantly different from 2, it is suggested to try the following
model which has more degrees of freedom and which corresponds to the
Schaefer model as far as the relationship between CPUE and E is
concerned: CPUE = a V^b + c E. If the value of the parameter d is not
concerned: CPUE = a V^b + c E. If the value of the parameter c is not
significantly different from 1, it is suggested to try the following
model which has more degrees of freedom and which corresponds to the
Fox model as far as the relationship between CPUE and E is concerned:
......
MODEL: CPUE = aV^b exp(cV^d E)
This is a surplus production model combining on the one hand the exponential
model between the CPUE and the fishing effort E, and on the other hand
a power relationship between the CPUE and the environmental variable V.
model (Fox model) between the CPUE and the fishing effort E, and on the other
hand a power relationship between the CPUE and the environmental variable V.
This latter variable is supposed to only influence the abundance of the
stock (surplus production) and not the catchability coefficient.
In contrast to most of the other CPUE=f(E,V) exponential models presented
in CLIMPROD in which MSE is constant, here MSE and MSY vary according to
V values. This is due the fact that before reparametrization in this model
it is considered that the environmental influence acts independently on
parameters k and B∞ of the fully parameterized Fox model. This property is
shared with the model
Note that the equation of this model is the same (at least under
equilibrium conditions, without averaging V*) as that of model 30
where V influences both the abundance and the catchability. The only difference
......
MODEL 6: CPUE = a V + b V^2 + c
MODEL 6: CPUE = a + b.V + c.V^2
This is not a production model but an ordinary quadratic regression
(parabola) between the CPUE and the environmental variable V. The
fitted model CPUE versus V must be non-monotonic in the interval of
This is not a surplus production model but an ordinary quadratic
regression (parabola) between the CPUE and the environmental variable V.
The fitted model CPUE versus V must be non-monotonic in the interval of
observation. If not, the data-set does not justify such a model.
It can be used as a first step to check the relationship between
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment