A Call to Arms  MoP Mechanics Testing
Moderators: Fridmarr, Worldie, Aergis, theckhd
Re: A Call to Arms  MoP Mechanics Testing
Seeing the ~ for warrior dodge in Thecks new blog post made me sad. So I set out to get more and better dodge data, using the DS dodge trinket to get more values, and being able to set base dodge more accurate to 5.0135002136 (for level 90) helped nicely.
Data available here: https://docs.google.com/spreadsheet/ccc ... tcWc#gid=3
 Code: Select all
General model:
dodge_fit(x) = 1 / (1 / Cd + 0.956 / x)
Coefficients (with 95% confidence bounds):
Cd = 90.64 (90.64, 90.64)
dodge_fit_GoF =
sse: 8.5606e12
rsquare: 1.0000
dfe: 46
adjrsquare: 1.0000
rmse: 4.3139e07
Data available here: https://docs.google.com/spreadsheet/ccc ... tcWc#gid=3
 mythor
 Posts: 24
 Joined: Sat Aug 25, 2012 4:21 pm
Re: A Call to Arms  MoP Mechanics Testing
After jumping through some hoops I got an Agility data set for prot lvl 90 warriors: https://docs.google.com/spreadsheet/ccc ... tcWc#gid=4
Plugging in the data for the entries without dodge from dodge:
The assumed Qa of 10k sounds very reasonable.
<edit> Noticed I passed wrong data, fixed </edit>
Plugging in the data for the entries without dodge from dodge:
 Code: Select all
General model:
agi_dodge_fit(x) = 5 + 135 / Qa + 1 / (1 / 90.64 + 0.956 / (x / Qa))
Coefficients (with 95% confidence bounds):
Qa = 1e+04 (1e+04, 1e+04)
agi_dodge_fit_GoF =
sse: 4.7453e13
rsquare: 1.0000
dfe: 9
adjrsquare: 1.0000
rmse: 2.2962e07
The assumed Qa of 10k sounds very reasonable.
<edit> Noticed I passed wrong data, fixed </edit>
 mythor
 Posts: 24
 Joined: Sat Aug 25, 2012 4:21 pm
Re: A Call to Arms  MoP Mechanics Testing
My blog post went up early, sorry about that. Pauladin and I are doing another round of analysis, because we discovered some weird bugs in the data. We've improved our estimates some since I wrote that blog post (which was supposed to be scheduled for tomorrow anyway, so I'd have time to finish analyzing stuff  damn Wordpress). I took the blog post down so that I can work on it this afternoon and evening.
Pauladin showed me that his residual data had some strange curvature which suggested that our values could be improved, and after some more work in MATLAB we managed to fine tune most of the constants out to 6 or 7 decimal places.
Our updating fitting has the agility conversion factor at exactly 10k (not 10025 as earlier guessed). So it's good to see your scame out to that as well.
Pauladin showed me that his residual data had some strange curvature which suggested that our values could be improved, and after some more work in MATLAB we managed to fine tune most of the constants out to 6 or 7 decimal places.
Our updating fitting has the agility conversion factor at exactly 10k (not 10025 as earlier guessed). So it's good to see your scame out to that as well.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
(Wordpress scheduling is broken as hell. I gave up on it once it stuck a post in scheduling limbo and refused to publish it no matter what I did.)
 KysenMurrin
 Posts: 6810
 Joined: Thu Jun 26, 2008 6:37 am
 Location: UK
Re: A Call to Arms  MoP Mechanics Testing
Mythor: Can you give more sig figs than that? I fit your first data set for dodge and got:
And then extracted more precision with:
However, your RMSE is about half of what mine is, for some reason. Not that it's a big deal, since we're talking errors well below the rounding limit, but still. I'd like to have the most accurate value I can.
 Code: Select all
General model:
f(x) = 5+135/1e4+1/(1/C+0.956/x)
Coefficients (with 95% confidence bounds):
C = 90.64 (90.64, 90.64)
Goodness of fit:
SSE: 8.514e012
Rsquare: 1
Adjusted Rsquare: 1
RMSE: 4.302e007
And then extracted more precision with:
 Code: Select all
>> num2str(coeffvalues(warrDodgeModel)','%10.10f')
90.6425052550
However, your RMSE is about half of what mine is, for some reason. Not that it's a big deal, since we're talking errors well below the rounding limit, but still. I'd like to have the most accurate value I can.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
Update: fitting all of your data (both the "dodge test" and "agi test" data sets) gives me this surface fit:
I think that we can feel certain of at least 90.6425(1)
 Code: Select all
General model:
f(x,y) = 5+135/1e4+((x135)/1e4+y)/(((x135)/1e4+y)/C+0.956)
Coefficients (with 95% confidence bounds):
C = 90.64 (90.64, 90.64)
Goodness of fit:
SSE: 1.048e011
Rsquare: 1
Adjusted Rsquare: 1
RMSE: 4.179e007
 Code: Select all
>> num2str(coeffvalues(war2dDodgeModel)','%10.10f')
90.6425070888
I think that we can feel certain of at least 90.6425(1)
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
Was busy gathering some more data
Dodge and Agi set (x = x  baseAgi):
Dodge + Agi + Parry set (some gear still had some agi on it) (x is again preprocessed)
It's moving more then I would like, I'll recheck data sets so see if I made a mistake.
 Code: Select all
dodge_fit(x) = 5 + 135 / 10000 + 1 / (1 / Cd + 0.956 / x)
sse: 8.5182e12
rsquare: 1.0000
dfe: 46
adjrsquare: 1.0000
rmse: 4.3032e07
Cd = 90.6425009496
Dodge and Agi set (x = x  baseAgi):
 Code: Select all
agi_dodge_fit(x,y) = 5 + 135 / 10000 + (x / 10000 + y) / (( x / 10000 + y)/ C + 0.956)
sse: 9.6901e12
rsquare: 1.0000
dfe: 60
adjrsquare: 1.0000
rmse: 4.0187e07
Cd = 90.6424918568
Dodge + Agi + Parry set (some gear still had some agi on it) (x is again preprocessed)
 Code: Select all
agi_dodge_fit(x,y) = 5 + 135 / 10000 + (x / 10000 + y) / ((x / 10000 + y) / C + 0.956)
sse: 1.1450e11
rsquare: 1.0000
dfe: 93
adjrsquare: 1.0000
rmse: 3.5088e07
Cd = 90.6424868793
It's moving more then I would like, I'll recheck data sets so see if I made a mistake.
 mythor
 Posts: 24
 Joined: Sat Aug 25, 2012 4:21 pm
Re: A Call to Arms  MoP Mechanics Testing
Can you also give confidence intervals?
I.e.
That's the block cap, obviously. In the blog post going live in 40 minutes, I have most of the paladin ones out to nearly that accuracy.
I.e.
 Code: Select all
>> num2str(coeffvalues(fittedmodel1),'%10.15f')
ans =
150.375950272320640
 Code: Select all
>> num2str(coeffvalues(fittedmodel1)confint(fittedmodel1),'%10.15f')
ans =
0.000009426271134
0.000009426271134
That's the block cap, obviously. In the blog post going live in 40 minutes, I have most of the paladin ones out to nearly that accuracy.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
Hey Theck, is there any eta on when all the info for MoP will be compiled in the Matlab thread or into a kind of "okay here's how you do it right" guide?
 `Davitz
 Posts: 1
 Joined: Sun Sep 27, 2009 8:17 am
Re: A Call to Arms  MoP Mechanics Testing
`Davitz wrote:Hey Theck, is there any eta on when all the info for MoP will be compiled in the Matlab thread or into a kind of "okay here's how you do it right" guide?
Most of the preliminary data is already posted in the thread further on. I just haven't gotten around to doing some finishing touches and writing everything up. I am hoping to get that all done next week though. Possibly this weekend if I get more time than I expect, but we have family visiting, so I'm not optimistic.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
 Code: Select all
agi_dodge_fit(x,y) = 5 + 135 / 10000 + (x / 10000 + y) / ((x / 10000 + y) / C + 0.956)
agi_dodge_fit_GoF =
sse: 1.1450e11
rsquare: 1.0000
dfe: 93
adjrsquare: 1.0000
rmse: 3.5088e07
coeff = 90.6424868772
confint = 90.642441583690.6425321709
num2str(coeffvalues(agi_dodge_fit)  confint(agi_dodge_fit)', '%10.10f')
0.00004529370.0000452937
I did not have time yet to review the values, or check why your fit does not exactly matches mine.
Data is combined from: https://docs.google.com/spreadsheet/ccc ... tcWc#gid=5 and https://docs.google.com/spreadsheet/ccc ... tcWc#gid=4 and https://docs.google.com/spreadsheet/ccc ... tcWc#gid=3
 mythor
 Posts: 24
 Joined: Sat Aug 25, 2012 4:21 pm
Re: A Call to Arms  MoP Mechanics Testing
I'll take a look at it tonight when I get a chance. Could just be a difference in the fit options (i.e. function evals, tolerances, etc.).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
Sorry to interrupt, anybody got any info on how vengeance behaves, exactly?
According to the tooltip, it gives a certain % of unmitigated damage taken as AP for 20 seconds. There are some oddities, of course. First, everything points that overkill damage absorbed by AD does not give AP, so in order to determine the AP gained, you have to divide your health before the hit took place by total avoidance (or, more likely, determine what fraction of final damage was absorbed, and subtract that from the AP gained).
Second, it seems that the actual damagetoap conversion rate is 20%, and not 2% as the tooltip states (which sounds likely, considering that was part of how it worked in 4.3, and the fact that 20% is just one typo away from 2%). For instance, I had slightly over 3 million AP after getting hit by Mandokir's 15 mil decapitate.
Third, unmitigated mean before armor reduction or after? If 20% is the conversion rate, looking at actual vengeance numbers in raids it would seem that armor does reduce the AP gained, but I don't have any reliable numbers to assert that.
According to the tooltip, it gives a certain % of unmitigated damage taken as AP for 20 seconds. There are some oddities, of course. First, everything points that overkill damage absorbed by AD does not give AP, so in order to determine the AP gained, you have to divide your health before the hit took place by total avoidance (or, more likely, determine what fraction of final damage was absorbed, and subtract that from the AP gained).
Second, it seems that the actual damagetoap conversion rate is 20%, and not 2% as the tooltip states (which sounds likely, considering that was part of how it worked in 4.3, and the fact that 20% is just one typo away from 2%). For instance, I had slightly over 3 million AP after getting hit by Mandokir's 15 mil decapitate.
Third, unmitigated mean before armor reduction or after? If 20% is the conversion rate, looking at actual vengeance numbers in raids it would seem that armor does reduce the AP gained, but I don't have any reliable numbers to assert that.
 d07.RiV
 Posts: 43
 Joined: Thu Dec 08, 2011 2:53 pm
Re: A Call to Arms  MoP Mechanics Testing
It's 2% of damage taken in the past 20 seconds before all mitigation effects (including Weakened Blows, armor, cooldown/SotR mitigation, and even AD absorbs). That's also equivalent to 40% of the bosses DPS (again, before all mitigation) in a steady state. So far I've seen no data that suggests that it's behaving otherwise.
Regarding your Mandokir anecdote, did you have cooldowns up? Assuming ~50% armor redux, WB, GAnK, and SotR, you'd be taking 0.5*0.7*0.5*0.9=0.1575, or 15.75% of the damage the boss actually does. If the combat log showed 15 million, he's actually hitting for over 95 million, which is about 2 million AP through Vengeance. With another cooldown, 3 million isn't that unreasonable.
Regarding your Mandokir anecdote, did you have cooldowns up? Assuming ~50% armor redux, WB, GAnK, and SotR, you'd be taking 0.5*0.7*0.5*0.9=0.1575, or 15.75% of the damage the boss actually does. If the combat log showed 15 million, he's actually hitting for over 95 million, which is about 2 million AP through Vengeance. With another cooldown, 3 million isn't that unreasonable.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: A Call to Arms  MoP Mechanics Testing
mythor wrote:
 Code: Select all
agi_dodge_fit(x,y) = 5 + 135 / 10000 + (x / 10000 + y) / ((x / 10000 + y) / C + 0.956)
agi_dodge_fit_GoF =
sse: 1.1450e11
rsquare: 1.0000
dfe: 93
adjrsquare: 1.0000
rmse: 3.5088e07
coeff = 90.6424868772
confint = 90.642441583690.6425321709
num2str(coeffvalues(agi_dodge_fit)  confint(agi_dodge_fit)', '%10.10f')
0.00004529370.0000452937
I did not have time yet to review the values, or check why your fit does not exactly matches mine.
Data is combined from: https://docs.google.com/spreadsheet/ccc ... tcWc#gid=5 and https://docs.google.com/spreadsheet/ccc ... tcWc#gid=4 and https://docs.google.com/spreadsheet/ccc ... tcWc#gid=3
Looks like I'm basically getting the same fit:
 Code: Select all
General model:
f(x,y) = 3+2+135/1e4+1/(1/C+0.956/((x135)/1e4+y))
Coefficients (with 95% confidence bounds):
C = 90.64 (90.64, 90.64)
Goodness of fit:
SSE: 1.169e011
Rsquare: 1
Adjusted Rsquare: 1
RMSE: 3.546e007
Maximum residual is 1e6
 Code: Select all
>> num2str(coeffvalues(fittedmodel),'%10.15f')
ans =
90.642501272834991
 Code: Select all
>> num2str(confint(fittedmodel)coeffvalues(fittedmodel),'%10.15f')
ans =
0.000045771071015
0.000045771071015
So Cd=90.6425(01273) +/0.00004577. I'm using fairly tight fit options (DiffMinChange, TolFun, TolX all =1e12, MaxFunEvals=60000, MaxIter=400000). If yours are higher, then your estimate is probably better. I think we're at best going to have +/ 0.00005 though, unless we get some more highparry + highagi data (maybe leather AGI gear gemmed and reforged for parry? are there agi trinkets with high parry procs?)
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7716
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Return to Advanced Theorycraft and Calculations
Who is online
Users browsing this forum: No registered users and 1 guest