pattern analysis techniques