How can I compute the volume under a three class ROC surface
2 views (last 30 days)
Show older comments
Hi, I am working on a three class diagnosis problem where I need to compute the volume under a three class receiver operator characteristic (ROC) surface. An example of such a surface is provided with the link below.
I am having problem with the way of computing the volume under this non-uniform complex surface. As a resource, I have a set of triplets (x,y,z points), but these are not organized as meshgrid.
If anyone can provide me a solution of this problem,this would be really helpful for me. Thanks in advance.
0 Comments
Accepted Answer
Roger Stafford
on 5 Aug 2013
Edited: Roger Stafford
on 6 Aug 2013
Based on what I see in your link, your ROC volume can be subdividing into individual five-faced polyhedrons each of whose base is a triangle in the x-y plane, whose three sides are trapezoids orthogonal to this plane and whose top is another (slanted) triangle. Your volume is the sum of the volumes of these separate polyhedrons.
Call the cartesian coordinates of the vertices of a top triangle (x1,y1,z1), (x2,y2,z2), and (x3,y3,z3) where the ordering from points 1 to 2 to 3 is counterclockwise with respect to the x-y plane. Then the volume of the polyhedron underneath this top triangle is:
V = 1/6*det([x1,x2,x3;y1,y2,y3;1,1,1])*(z1+z2+z3)
(The area of its triangular base is 1/2*det([x1,x2,x3;y1,y2,y3;1,1,1]) and the average height is 1/3*(z1+z2+z3).) Note that if the ordering of the three points is clockwise, this expression will be the negative of the actual volume.
Thus, your job is now to determine the coordinates of all those points in the surface.
(Corrected)
1 Comment
Roger Stafford
on 6 Aug 2013
Note that I corrected the array in the determinant which had an erroneous comma in place of a semicolon.
More Answers (0)
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!