1. A method for fault detection in a distributed system comprising: (a) randomly selecting one measurement from a plurality of flow intensity measurements; (b) searching for a relationship between said one measurement and each remaining one of the plurality of flow intensity measurements; (c) grouping said one measurement and each one of the plurality of flow intensity measurements other than said one measurement grouped into the cluster; (d) determining relationships between each of the flow intensity measurements other than said one measurement grouped into a cluster; (e) iteratively repeating steps (a)-(d) for remaining ones of the plurality of flow intensity measurements not grouped into a cluster until each of the remaining ones of the plurality of flow intensity measurements is grouped into a cluster; (f) validating relationships determined between ones of the plurality of flow intensity measurements to determine whether the relationships are invariant relationships; (g) predicting flow intensities based on the relationships determined to be invariant relationships; and (h) detecting faults in the distributed system by comparing measured flow intensity measurements to the predicted flow intensities.