A Case for an Aggression Quotient

Forum for users that want to write their own custom queries against the PT database either via the Structured Query Language (SQL) or using the PT3 custom stats/reports interface.

Moderator: Moderators

A Case for an Aggression Quotient

Postby bloodndef » Wed Apr 22, 2009 5:29 am

Truth is, I find all aggression stats presently available to be misleading. This is no fault of the programmers but rather I believe the fault of poker tradition in which we have the vague notion of aggressive and passive behavior. I think we need to define aggression more clearly and create alongside it a new axis of opponent modeling that also better defines what is actually happening at the table. I would call this new axis the Strength Quotient (SQ - or the Sticky Quotient) to go with a new Aggression Quotient. The SQ measures Timidness vs. Strength. A player who is Timid will be folding often. A player who is Strong will stick with pots and be tough to push around. This will help us define the old vague notions of passive and aggressive. A player who is passive is not necessarily a mouse who will fold if you breathe on a pot, nor are they a fish who will call down all streets with an underpair to the board. A Passive player is simply one who does not choose aggressive actions when faced with the opportunity. They are more likely to check/call or cold call. Conversely an Aggressive player can be blown off of hands themselves or call all the way - these actions do not define aggression. An Aggressive player chooses aggressive actions when faced with the opportunity. They are more likely to check with the intention of check/raising, bet, raise and 3-bet.

I'll start with the lesser controversial Strength Quotient (SQ)

Strength Quotient Total Postflop
Total quotient of strong actions over timid actions postflop.

((cnt_f_call + cnt_f_raise + cnt_t_call + cnt_t_raise + cnt_r_call + cnt_r_raise) / (cnt_f_fold + cnt_t_fold + cnt_r_fold)) * 100

With my small sample size, 400k hands at 6-Max, I observe that the top 20% have an SQ of 100 or greater. In practice, a player with an SQ of 100 or more is a resilient player - calling or raising in pots as opposed to folding. I don't believe we should separate calling and raising in this stat for as we move up in limits we see that a call in position from a good player is a strong, scary thing. The SQ is measuring resilience, stickiness to pots, the will to not give up easily. However, a high SQ can also identify a player as a calling station. For example, a player who is LPS or Loose Passive Strong is a player you can take to valuetown with top pair all day long. I also observe that the bottom 20% or most Timid opponents have an SQ or 50 or below. This player folds over twice as much as the other 2 actions of calling or raising. Two thirds of the time or more they are giving the pot up to your aggressive maneuvers. I hope you will note that the SQ is reactionary stat. You can only call, raise or fold postflop when faced with action before you. This separates itself from and works in harmony with the Aggression Quotient.

The more controversial Aggression Quotient (AQ)

Aggression Quotient Total Postflop
Total quotient of aggressive actions over passive actions postflop.

((cnt_f_bet + cnt_f_raise + cnt_t_bet + cnt_t_raise + cnt_r_bet + cnt_r_raise) / (cnt_f_call + (cnt_f_check AND cnt_f_call) + (cnt_f_check AND cnt_f_fold) + cnt_t_call + (cnt_t_check AND cnt_t_call) + (cnt_t_check AND cnt_t_fold) + cnt_r_call + (cnt_r_check AND cnt_r_call)+ (cnt_r_check AND cnt_r_fold))) * 35

Looking over this stat you can see that purely aggressive actions (like betting and raising) are divided over purely passive actions (like check/calling, check/folding, and calling). I like this definition of passive far more than any other. The problem with Total AFq is that it has in its denominator cold-folding, meaning if the action goes bet, raise and then fold, the folder is considered to be making a passive move. Folding is not passive. Very aggressive players can also know how to fold; and just because they might fold doesn't change the fact that they are aggressive players who often bet, raise, and check/raise. My point is that AFq diminishes how truly aggressive a player might be by having cnt_f_fold, etc. in the denominator. Hold Em Manager's AFq and the PT3 custom stat Total Postflop HM AFq that emulates HEM's AFq is even worse in my opinion because it includes checking in the denominator. This blankets over all checking actions including the check/raise - one of the more aggressive moves a player can make. AF (Aggression Factor) doesn't work for me because I don't believe calling is the only and best indicator of passive behavior, a player who check/calls out of position says "passive" more so than one who cold calls in position. I think we need to include check/calling and check/folding in the stat denominator (check/folding is an ok indicator of passiveness; cold-folding is not). Plus AF with its limited denominator takes the most time to converge and is hard to understand at a quick glance while multi-tabling. It is this last point of being easy to understand that explains the " * 35" in the Aggression Quotient. To get a broad quick-glance overview of our opponents' postflop play I think AQ and SQ should be used in conjunction. So while having the " * 35" in the stat makes the stat less literal, it makes it a helluva lot more readable. As with SQ, an AQ of 100 or more is the top 20% of players (the most aggressive). An AQ of 50 or below is the bottom 20% of player (the most passive).

In summary, an SQ of 50 or lower is very Timid. An SQ of 100 or more is very Strong.
An AQ of 50 or lower is very Passive. And an AQ of 100 or more is very Aggressive.
Again, these numbers are for 6-Max and are still useful for full ring but will vary slightly.

Do these stats make sense? Are they built correctly for what I want to accomplish? Can anyone test these stats in larger databases than 400k 6-Max? What do the top and bottom 20% look like in a large full ring database?

I appreciate the feedback. :)
bloodndef
 
Posts: 99
Joined: Fri Feb 27, 2009 1:28 am

Re: A Case for an Aggression Quotient

Postby kraada » Wed Apr 22, 2009 1:11 pm

A couple of questions immediately come to mind:

Why don't you include bets in the SQ definition?

Is the AQ definition supposed to literally be that section of code? If so it's not going to give you what you want. (cnt_f_check AND cnt_f_call) will just sum up times they check and times they call, not times they check and call in the same hand. You'd need to make separate columns for those. That said it isn't really necessary, as all check/calls are going to be counted as calls, and you already have cnt_f_call. For check/fold you can build that one though since you don't want just folding to be included.

As to how to use the stat . . . I'm not sure if it's something I'd particularly like or find useful, but I'd have to spend some more time working with it and seeing what values different people have before deciding whether or not there's some value there.
kraada
Moderator
 
Posts: 54430
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: A Case for an Aggression Quotient

Postby bloodndef » Wed Apr 22, 2009 4:27 pm

kraada wrote:Why don't you include bets in the SQ definition?


This stat should be entirely reactionary: how one acts when facing bets. A strong player hangs around in pots longer than a timid player when pressed with action. Maybe we should call it the Resilience Quotient. Strength, resilience, toughness are all ideas I had to describe a player who does not give up in pots easily. I think Timidness is a good way to describe the opposite end of the scale. That being said, these are rough sketches of this idea. I like the SQ (or RQ) idea. And the code looks ok. Here's code for the AQ:

New columns:

cnt_f_check_fold

sum(if[holdem_hand_player_statistics.flg_f_check AND holdem_hand_player_statistics.flg_f_fold, 1, 0])

cnt_t_check_fold

sum(if[holdem_hand_player_statistics.flg_t_check AND holdem_hand_player_statistics.flg_t_fold, 1, 0])

cnt_r_check_fold

sum(if[holdem_hand_player_statistics.flg_r_check AND holdem_hand_player_statistics.flg_r_fold, 1, 0])

Actual Stat:

Aggression Quotient Total Postflop
Total quotient of aggressive actions over passive actions postflop.

((cnt_f_bet + cnt_f_raise + cnt_t_bet + cnt_t_raise + cnt_r_bet + cnt_r_raise) / (cnt_f_call + cnt_f_check_fold + cnt_t_call + cnt_t_check_fold + cnt_r_call + cnt_r_check_fold)) * 55

kraada wrote:As to how to use the stat . . . I'm not sure if it's something I'd particularly like or find useful, but I'd have to spend some more time working with it and seeing what values different people have before deciding whether or not there's some value there.


I know multiplying the stat by an arbitrary value is taboo, but the goal is to produce an aggression summary that is readable and that works in tandem with the Strength Quotient (or Resilience Quotient or Stickiness Quotient if you prefer...) To be honest, we could very easily make a stat that ranked aggression on a scale of 1-5 with 5 being hyper aggressive and 1 being super passive and I think this would serve many people well. My goal is to first create an aggression stat that doesn't count cold-folding or check/raising in its definition of passive, but does count a two-step passive action like check/calling and check/folding. My second goal is to make the stat as equally readable as the SQ stat.
bloodndef
 
Posts: 99
Joined: Fri Feb 27, 2009 1:28 am

Re: A Case for an Aggression Quotient

Postby bloodndef » Wed Apr 22, 2009 4:50 pm

Perhaps it would be better if I kept the actual stats "pure" and made the HUD and Tracker displays read on a 1-5, 1-10, or 0-100 scale... or another type of scale.
bloodndef
 
Posts: 99
Joined: Fri Feb 27, 2009 1:28 am

Re: A Case for an Aggression Quotient

Postby kraada » Wed Apr 22, 2009 5:10 pm

Either is certainly an option, I recommend playing with the stat some to see what you think will work best. I feel like I'd have to actually try it out before I decided what I'd like best.
kraada
Moderator
 
Posts: 54430
Joined: Wed Mar 05, 2008 2:32 am
Location: NY


Return to Custom Stats, Reports, and SQL [Read Only]

Who is online

Users browsing this forum: No registered users and 4 guests