Logical problems with stat Face Raise and Face Limp

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

Logical problems with stat Face Raise and Face Limp

Postby preparac » Fri Oct 17, 2008 8:44 pm

I tried hard for hours but I cannot resolve my problem. i really need your help now!

For building my own custom stats I want to have clear the situation which a player can face PF. As I see it thera are 4 this possibilitis

(1) No action before me - covered with the cnt_p_open_opp column
(2) One or more limpers before me - as far as I see no standard column which helps easily to cover this case
(3) Facing a raise. There is seemingly a standard column which covers this case, but I think, this case should be logically differentiated into the followin scenarios:
(3a) One raiser (and possibly callers) in front of me
(3b) One or more limpers and one raiser before me.
(3c) One or more limpers befor me - I limp also - and after I'm confronted wiht a player which raised behind me.
(3d) One or more limpers befor me - I raise - and after I'm confronted wiht a player which reraised behind me.
If I understand well, all this cases are covered by the column cnt_p_face_raise. And I suppose, that case 3c and d) logically also falls under point 2)
(4) Walk (no action, when i am in the BB, but I cannot open)

Now, in order to create my custom stats i would like to create first some well defined denominators

(1) No problem
(2) I would like to creat a denominator cnt_p_face_limp which covers the cases 2), 3c) and 3d) (this woul help me to make a stat for the case BB facing a limp for example)
(3) I woul like to have a denominator which only covers the Cases 3a) and 3b) (i.e. not cnt_p_face_raise?)
(4) I created this expression for the walk:
cnt_p_walk =
sum(if[tourney_holdem_hand_player_statistics.flg_blind_b = true AND tourney_holdem_hand_player_statistics.flg_vpip = false AND tourney_holdem_hand_player_statistics.flg_won_hand, 1 , 0 ] )

Could you give me some Idea how to create this denominators "cnt_p_face-limp" and "cnt_p_face_raise without previous action from my side"?
And ist does the expression (4) make sense?

Last question: Do the four in this way defined denominators
cnt_p_open_opp + cnt_p_face_limp + "cnt_p_face_raise without previous action from my side" + cnt_p_walk sum up to cnt_hands?

Thank you very much for your help!
preparac
 
Posts: 323
Joined: Thu May 15, 2008 6:23 am

Re: Logical problems with stat Face Raise and Face Limp

Postby WhiteRider » Sat Oct 18, 2008 4:58 am

Firstly, let me say that I agree some of these cases are difficult to get accurately, and I've previously made some suggestions for extra fields to Josh, and they could happen at some point.
Anyway, let's see which ones we can solve now:

2) There is no standard column, but I have a limp-opportunity column:
cnt_p_limp_opp = sum( if[ (NOT(holdem_hand_player_statistics.flg_p_face_raise) OR (holdem_hand_player_statistics.flg_p_limp) OR (holdem_hand_player_statistics.flg_p_first_raise)) AND NOT(holdem_hand_player_statistics.flg_blind_b), 1 , 0 ] )
The check for BB is because you can't "limp" if you are in the BB - to just check if you are only facing limpers you can remove that check.

3) This is the tricky one, and I don't have full solutions for you.
3a) If there is a raise and caller(s), you have a squeeze opportunity:
holdem_hand_player_statistics.flg_p_squeeze_opp
If you haven't yet put any money in (i.e. no blind) then you also have a cold call opportunity:
cnt_p_ccall_opp = sum( if[ NOT(NOT(holdem_hand_player_statistics.flg_p_face_raise) OR (holdem_hand_player_statistics.flg_p_limp) OR (holdem_hand_player_statistics.flg_p_first_raise)) AND (holdem_hand_player_detail.amt_blind=0), 1 , 0 ] )
(this is built from NOT my limp opportunity)
However, I don't think you can completely separate that from 3b). I'll bump this post to the developers to raise this issue again.

3c) You can do this one:
cnt_p_limp_faceraise = sum( if[holdem_hand_player_statistics.flg_p_limp AND holdem_hand_player_statistics.flg_p_face_raise, 1, 0] )

3d) Likewise, you can check for limp_opp AND holdem_hand_player_statistics.flg_p_first_raise AND NOT open_opp.

4) You could do:
flg_blind_b AND NOT (limp-opp but with BB check removed) AND NOT face_raise AND NOT flg_p_raise AND NOT flg_f_saw
(posted BB, no limp opp, didn't face a raise, didn't raise, and didn't see the flop)
I *think* that should work, but I don't have time to test it now.
WhiteRider
Moderator
 
Posts: 54025
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Logical problems with stat Face Raise and Face Limp

Postby preparac » Sat Oct 18, 2008 6:30 am

thank you vey much Witherider
I will go through your answer as sonn I have time
In the meantime I found another thread (from sepember) in the General Forum, which adresses similar issues. I posted there the following questions, because it seems to me that there is a problem with your expression cnt_p_prev_callers, which - if correct as I understand this - would satisfy my need for the cnt_p_face_limp.

Thank you again for taking your time to help. There it goes:


White Rider
Probably I really have problems to get the LOGICS clear. Anyway this is about the cases where I'm facing a limp before me and no raise. You formulate the expression cnt_p_prev_callers (which anyway should be better named cnt_p_prev_limp/no raise or cnt_p_face_limp)

Now my questions:

Why cnt_p_prev_callers =
sum( if[ NOT(holdem_hand_player_statistics.flg_p_face_raise) OR (holdem_hand_player_statistics.flg_p_limp) OR (holdem_hand_player_statistics.flg_p_first_raise), 1 , 0 ] )
??
This are the problems which I have with this Formula:

(1)
On the first glance obviously correct seems to be:

If flg_p_face_raise = false

This means the pot was not raised before me. BUT it als excludes hands, where there where previous callers, I limped behind or raised them and then afterwards I faced a raise/reraise from a player behind. I think this hands also should be count under cnt_p_prev_callers. So you add the following 2 checks:

(2)
if flg_p_limp = true
if flg_p_first_raise = true

This means I limped (raised as first player), which implies, that there was no raise BEFORE me. If I understand well, this two checks allow to include the above (1) mentioned cases, where there are limpers before me, I act, and get a raise/reraise from behind. Yes?

But now: don't we include way to much hands whit this two check, i.e. also hands, where I OPENED the hand with a limp or a raise??? SHOULDN'T we not exclude this cases with flg_p_open_opp = false

MAKING THE TEST:
I tested your expression
cnt_p_prev_callers =
sum( if[ NOT(tourney_holdem_hand_player_statistics.flg_p_face_raise) OR (tourney_holdem_hand_player_statistics.flg_p_limp) OR (tourney_holdem_hand_player_statistics.flg_p_first_raise), 1 , 0 ] )

...and it seems to give me wrong numbers., i.e. for example about 13000 hands from a sample of 20000 hands, where I already have a Nr of 8000 hands facing a raise. So

facing a raise + facing previous callers > hands ???

This makes no sense, especially when I take into account, that with the same sample cnt_p_open_opp gives me a number of about 9000 more hands. This makes together 30000 hands (not counting the walks) in a sample of 20000 ... ???

Please help me: OR something is wrong with your expression OR my logical thinking process really is somehow limited :(


(3)
Side question: how we exclude all cases, where I had a walk in the BB? Then I didn't face a raise but I also was not able to open the hand...


I will put this also in the forum about custom stats, where I opened a thread about similar issues. Please answer me there

thnk you very much
preparac
 
Posts: 323
Joined: Thu May 15, 2008 6:23 am

Re: Logical problems with stat Face Raise and Face Limp

Postby WhiteRider » Sat Oct 18, 2008 8:07 am

...and it seems to give me wrong numbers., i.e. for example about 13000 hands from a sample of 20000 hands, where I already have a Nr of 8000 hands facing a raise. So

facing a raise + facing previous callers > hands ???

You can limp and then face a raise, so yes, this will be true.

Side question: how we exclude all cases, where I had a walk in the BB? Then I didn't face a raise but I also was not able to open the hand...

Please clarify what you mean. I gave you what I think will work for counting hands where you have a walk.
WhiteRider
Moderator
 
Posts: 54025
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Logical problems with stat Face Raise and Face Limp

Postby preparac » Sat Oct 18, 2008 9:01 am

sry, probably I didn't express myself well

I want to have a clearcut definition of the preflop Situations (no double countings) when it's up to the player to act for the first time (regardless what will happen after him)

As I see it in the moment

(1) No action before =
cnt_p_open_opp column


(2) one ore mor limpers before (regardless if after will come a raise or reraise) =
sum( if[(tourney_holdem_hand_player_statistics.flg_p_face_raise = false OR tourney_holdem_hand_player_statistics.flg_p_limp = true OR tourney_holdem_hand_player_statistics.flg_p_first_raise = true) AND tourney_holdem_hand_player_statistics.flg_p_open_opp = false, 1 , 0 ] )


(3) one ore more raiser before, regardless if there where also limpers before the raiser(s) =
cnt_p_face_raise

but without

(3a)
cnt_p_face_raise_after_limp =
sum(if[tourney_holdem_hand_player_statistics.flg_p_limp AND tourney_holdem_hand_player_statistics.flg_p_face_raise, 1, 0] )

and without

(3b)
cnt_p_face_raise_after_first_raise_after_limp=
sum(if[tourney_holdem_hand_player_statistics.flg_p_open_opp = false AND tourney_holdem_hand_player_statistics.flg_p_first_raise = true AND tourney_holdem_hand_player_statistics.flg_p_face_raise = true, 1, 0] )

(both cases are already counted under (2))

(4) Walk
sum(if[tourney_holdem_hand_player_statistics.flg_blind_b = true AND tourney_holdem_hand_player_statistics.flg_p_open_opp = false AND tourney_holdem_hand_player_statistics.flg_p_face_raise = false AND tourney_holdem_hand_player_statistics.flg_p_first_raise = false AND tourney_holdem_hand_player_statistics.flg_f_saw = false,1 , 0 ] )

Then this should give me the following formula
(1)+(2)+(3)-(3a)-(3b)+(4) = cnt_hands

correct?
... No? I tested the numbers with my database and it seems that with this formulas I still count about 2% of the situations double, where it is up to me to act for the first time

... but for now I don't see where ...
preparac
 
Posts: 323
Joined: Thu May 15, 2008 6:23 am

Re: Logical problems with stat Face Raise and Face Limp

Postby WhiteRider » Sat Oct 18, 2008 9:20 am

I think 1, 2, and 4 are ok (although I haven't tested 4, as I said).

For 3, "facing a raise at your first action", I think we should be able to adapt my Cold Call stat:

cnt_p_ccall_opp = sum( if[ NOT(NOT(holdem_hand_player_statistics.flg_p_face_raise) OR (holdem_hand_player_statistics.flg_p_limp) OR (holdem_hand_player_statistics.flg_p_first_raise)) AND (holdem_hand_player_detail.amt_blind=0), 1 , 0 ] )

I think just removing the amt_blind would solve it.
cnt_p_faceraiseatfirstaction = sum( if[ NOT(NOT(holdem_hand_player_statistics.flg_p_face_raise) OR (holdem_hand_player_statistics.flg_p_limp) OR (holdem_hand_player_statistics.flg_p_first_raise)), 1 , 0 ] )

This is basically "NOT (limp-opp)", where limp-opp is "(NOT face-raise) OR limp OR make-first-raise".
WhiteRider
Moderator
 
Posts: 54025
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Logical problems with stat Face Raise and Face Limp

Postby preparac » Sat Oct 18, 2008 10:25 am

Good idea, seems logical

Now if I make the test and put together the formulas with your new expression

(3) cnt_p_faceraiseatfirstaction

it gets really close

in a sample of 29719 hands

I get now

(1) = 12455
(2) = 6615
(3) = 10720
(4) = 127

= 29917

If I add this up It almost equals the cnt_hands ...

I will think later about where we still have a small mistake ...
preparac
 
Posts: 323
Joined: Thu May 15, 2008 6:23 am

Re: Logical problems with stat Face Raise and Face Limp

Postby WhiteRider » Sat Oct 18, 2008 1:25 pm

At a guess it will be the 'walk' which is wrong.
If you want to test (or I will later if when I have time) you could create equivalent 'boolean' stats in the 'holdem cash hand' section and then run a custom report and use them to filter and see where you get overlaps.
WhiteRider
Moderator
 
Posts: 54025
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Re: Logical problems with stat Face Raise and Face Limp

Postby preparac » Sat Oct 18, 2008 6:18 pm

Thank you again for your Input

I made a for test purpose a custom report in the tourney section, this also works?

Anyway, I filtered the expressions for positions in a newer Database (56571 Hands from the last few weeks) and got this results

Position all
Open Opp 22582
Prev.Call 14407
FaceRace 19774
Walk 265
Sum 57028
cnt_hands 56571
to much 457

Position 0 1 2 3 4 5 6 7
Open Opp 956 1404 2074 2911 3880 5060 5705 0
Prev.Call 2035 2126 2063 1814 1405 802 0 1
FaceRace 3389 2843 2243 1660 1095 527 36 0
Walk 0 0 0 0 0 0 0 0
Sum 6380 6373 6380 6385 6380 6389 5741 1
cnt_hands 6359 6359 6359 6359 6359 6353 5705 1
to much 21 14 21 26 21 36 36 0

Position 8 (BB) 9 (SB)
Open Opp 0 592
Prev.Call 2237 1924
FaceRace 4122 3859
Walk 265 0
Sum 6624 6375
cnt_hands 6359 6358
∆ to much 265 17

As I see we have still some minor problems in all Positions (about 0,3% double-countings in most positions) but especially in the BB.

1. Lets have a look a the BB-Position first

I made a new expression for
cnt_p_walk =
sum(if[tourney_holdem_hand_player_statistics.flg_f_saw = false AND tourney_holdem_hand_player_statistics.flg_vpip = false AND tourney_holdem_hand_player_statistics.flg_won_hand, 1 , 0 ] )

(number of times the player won the Hand without putting money in the pot and whithout seeing the flop)

This gives me a slightly smaller Number of 215 walks.

Anyway, the problem doesn't disapear with this. Strangely the equation in this database would be correct whitout counting the walks, but this seems to be casual, because I checked the numbers also for other databases and there the Number (∆ to much) is always quite bigger (about + 50%) than the number of walks ... So even if we wouldn't take the walks into account, the problem with double counting also persists in the BB.

2. Second and more interesting Detail: in Positions 6 (allways UTG, because this are all 9-handed-Tables) (cnt_p_open_opp) equals always (cnt_hands) ... BUT the expression cnt_p_faceraiseatfirstaction still gives us some (36) hands in this database. And THIS I also found in my other Databases ...
So there it seems to be a problem with the expression ...

cnt_p_faceraiseatfirstaction =
sum(if[NOT(NOT(tourney_holdem_hand_player_statistics.flg_p_face_raise) OR (tourney_holdem_hand_player_statistics.flg_p_limp) OR (tourney_holdem_hand_player_statistics.flg_p_first_raise)), 1 , 0 ])

... which seems to take into account some wrong hands, because in UTG this expression should give us the result 0.

You have any idea where the problem could be... is this a bug???

Thanx for your help
preparac
 
Posts: 323
Joined: Thu May 15, 2008 6:23 am

Re: Logical problems with stat Face Raise and Face Limp

Postby WhiteRider » Sat Oct 18, 2008 6:33 pm

That "walk" column looks pretty smart - good thinking.
I didn't have time to get to this tonight, but I'll try to look at it in the morning.
I wonder if there's a problem with my cold call opps stat..
WhiteRider
Moderator
 
Posts: 54025
Joined: Sat Jan 19, 2008 7:06 pm
Location: UK

Next

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

Who is online

Users browsing this forum: No registered users and 2 guests