Je mène des recherches dans le domaine agricole et j'utilise Excel comme la plupart des gens pour organiser mes données. Cependant, une analyse courante est l'aire sous la courbe de progression de la maladie (AUDPC) pour suivre les changements de la maladie tout au long de la saison de croissance. Existe-t-il un moyen de calculer la surface totale sous un graphique linéaire sans ajuster une ligne de tendance/analyse de régression.
Salut,
La seule façon d'y parvenir est de calculer la zone de polygone définie par vos points de données et le sol du graphique.
area = Polygon Area( {0, 0}, {0, 10}, {10, 10}, {10, 0} );
REMARQUE : 1) vous pouvez utiliser cette fonction dans une formule. 2) Il est essentiel d'inclure les origines du polygone comme indiqué dans l'exemple simple ci-dessus.
Meilleur,
ST
Thierry,
Merci pour votre réponse. Je suppose que la formule que vous avez publiée doit être appliquée dans le logiciel Excel ? Ou existe-t-il une méthode pour l'utiliser dans le logiciel JMP ?
Meilleur,
La formule publiée est pour JMP plutôt qu'Excel. S'appuyant sur la réponse de @Thierry_S vous pouvez faire ce genre de chose en JSL, le langage de script de JMP :
NamesDefaultToHere(1);
// Some simple data
dt =
New Table( "AUDPC Example",
Add Rows( 4 ),
New Column( "x", Numeric, "Continuous", Set Values( [0, 1, 2, 3] )),
New Column( "y", Numeric, "Continuous", Set Values( [3, 4, 4.5, 5] ))
);
// A graph
gb = dt << Graph Builder(
Size( 526, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :x ), Y( :y ) ),
Elements( Line( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x",
ScaleBox,
{Min( -1 ), Max( 4 ), Inc( 0.5 ), Minor Ticks( 0 ),
Add Ref Line( 0, "Dashed", "Red", "", 1 ),
Add Ref Line( 3, "Dashed", "Red", "", 1 )}
),
Dispatch(
{},
"y",
ScaleBox,
{Format( "Best", 12 ), Min( -1 ), Max( 6 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0, "Dashed", "Red", "", 1 ),
Add Ref Line( 1, "Dashed", "Red", "", 1 )}
)
)
);
// Start here . . .
dt = CurrentDataTable();
// Get the x and y values
xVals = Column(dt, "x") << getValues;
yVals = Column(dt, "y") << getValues;
// Insert two points that define the base of the polygon at the value y = 0
baseLine = [0];
xVals2 = VConcat(xVals[1], xVals, xVals[NRow(xVals)]);
yVals2 = VConcat(baseLine, yVals, baseline);
// Get the area
a2 = PolygonArea(xVals2, yVals2);
Print(a2);
// Insert two points that define the base of the polygon at the value y = 1
baseLine = [1];
xVals3 = VConcat(xVals[1], xVals, xVals[NRow(xVals)]);
yVals3 = VConcat(baseLine, yVals, baseline);
// Get the area
a3 = PolygonArea(xVals3, yVals3);
Print(a3);
Faites 'Fichier > Nouveau > Nouveau Script', coupez et collez le code ci-dessus dans la fenêtre qui apparaît, puis faites 'Modifier > Exécuter le script'. Je comprends que vous ne vouliez peut-être pas apprendre le JSL. Notez que cela donne la zone "sous" le polygone défini par les valeurs des données. Vous pouvez ou non souhaiter la zone sous une sorte de courbe ajustée, mais cela est également possible.