I was looking at a very nice answer here, where the question was applying a confidence region to some data.
If we plot some data as a scatter plot:
XData = RandomVariate[NormalDistribution[1,1], 100000];
YData = RandomVariate[NormalDistribution[1,1], 100000];
XYDATA = Transpose[{XData, YData}];
XYCoVarMat = Covariance[XYDATA];
XYMean = {Mean[XData], Mean[YData]};
ListPlot[
XYDATA, Frame->True, FrameLabel->{"X","Y"}, LabelStyle->16, AspectRatio->1,
Epilog -> {
Opacity[0.32, Green], EdgeForm[{Green, AbsoluteThickness[1]}], Ellipsoid[XYMean, 4 XYCoVarMat],
Opacity[0.32, Blue], EdgeForm[{Blue, AbsoluteThickness[1]}], Ellipsoid[XYMean, 3 XYCoVarMat],
Opacity[0.32, Red], EdgeForm[{Red, AbsoluteThickness[1]}], Ellipsoid[XYMean, 2 XYCoVarMat],
Opacity[0.32, Yellow], EdgeForm[{Yellow, AbsoluteThickness[1]}], Ellipsoid[XYMean, 1 XYCoVarMat]
},
PlotRange->{{-8,8},{-8,8}}
]
I was wondering if anyone knew a way of filtering the data using this approach for example only select data that is with the ellipsoid boundary of
Ellipsoid[XYMean, 1 XYCoVarMat]?
With[{rmf = RegionMember[Ellipsoid[XYMean, 1 XYCoVarMat]]}, Select[XYDATA, rmf]]work for you? – J. M.'s missing motivation Nov 15 '19 at 16:09