From: percy tiglao <prtiglao_at_gmail.com>

Date: Sun 14 May 2006 - 07:44:10 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sun May 14 07:48:57 2006

Date: Sun 14 May 2006 - 07:44:10 EST

I forgot to forward the message to the group :-/

And I have one more question, but it pertains somewhat to this last post (which is why I attached the last message)

What is the name of the distribution that takes skewness and kurtosis as a factor? I figure, if I can find a distribution that better models the damage done in this game, it would be better off period. A normal curve estimates the data pretty darn well already, maybe adding in skewness and kurtosis will make the model close to exact.

I tried searching for skewness and kertosis on google, and found some information on a "Weibull" distribution, but it only seems to model skewness and not as much kurtosis. Is there a specific distribution that can model data based on both skewness and kurtosis?

- Forwarded message ---------- From: percy tiglao <prtiglao@gmail.com> Date: May 12, 2006 5:16 PM Subject: Re: [R] Newbie to R: would like to solve a problem To: "McGehee, Robert" <Robert.McGehee@geodecapital.com>

On 5/12/06, McGehee, Robert <Robert.McGehee@geodecapital.com> wrote:

> Not sure I completely followed (especially what a Knockback is), but

*> I'll give this a try.
*

Lol :-) Video game stuff. Unimportant. You got the main gist of what I want though.

> If you want to precisely define the convolution of multiple attacks, you

*> would want to use a language that utilizes symbolic integration, which R
**> currently does not support (e.g. see Mathematica). That said, it sounds
**> like you don't actually want a precise answer, but you want to have a
**> "polynomial function estimate" the true distribution. If this is the
**> case, then it seems like doing a simulation may be precisely what you
**> want. That is, model a polynomial approximation of the total damage from
**> multiple attacks as a function of the number of attacks.
*

Ah. So to get the "precise" formula, I need Mathematica? Gosh... I'll just do it by hand then, Lol. I'm so cheap :-/

Well, a simulation was the 2nd thing I was going to ask for if there was no way for this to work out.

> For instance the function below will plot what the distribution of N

*> multiple attacks would look like:
**>
**> distributionFun <- function(N, min, max, skill, num_attacks) {
**> hist(replicate(1000, sum(replicate(N, total_damage(min, max,
**> skill, num_attacks)))))
**> }
**>
**> and
**> sum(replicate(N, total_damage(min, max, skill, num_attacks)))
**> will give you a sample from this distribution.
**>
**> Thus, distributionFun(1, 10, 20, 1, 1) will show the piecewise constant
**> distribution that you would expect from a single attack, and setting N
**> to a large number produces a Gaussian distribution (CLT). [NB: Here the
**> N and num_attacks arguments may be redundant, but it's not clear to me
**> how these multiple attacks work (i.e. are there multiple attacks
**> multiple times, etc.)]
*

If I'm reading this code correctly, You got 100% what I was looking for, in terms of simulation anyway :)

> Once you have the simulated distribution, you can either create a

*> polynomial model as a function of N and use these values as inputs into
**> your web simulation, or you can use the code above to grab a single
**> sample from the distribution. Also, I imagine you would get better
**> results modeling the moments of the distribution (mean, variance, skew,
**> kurtosis, etc.) rather than using a polynomial function, but up to you.
*

Wow... there is so much more math I need to learn before I attempt this problem again... Kurtosis? Thank god for Wikipedia + googleing tutorials. And since when was skewness represented as a number? o.O

> Also, if you're only doing this for the first 8 attacks, then

*> integrating a piecewise constant function by hand (if Mathematica is
**> unavailable) is not too difficult, and running simulations may be going
**> overboard.
*

Not with high-school level Math knowledge it is. Lol. *note to self, start buying math books*

> Lastly, just as an FYI, your functions can be rewritten a bit more

*> concisely as such:
**>
**> sdmg <- function(min, max, skill) {
**> runif(1, min, max) * ifelse(runif(1) > 0.4, skill, skill + 1)
**> }
**>
**> total_damage <- function(min, max, skill, num_attacks) {
**> sum(replicate(num_attacks, sdmg(min, max, skill))
**> }
**>
**> Good luck,
**> Robert
*

Thanks so much for all your help. I'll be looking into other languages (like Yacas) to see if they can do this precisely (Idealy, I need it as a function of min, max, and skill. That way, It will be easy enough for Javascript to calculate.)

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sun May 14 07:48:57 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Sun 14 May 2006 - 10:10:09 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*