Auc-Stat-StdDev

Z Norganna's AddOns

Přejít na: navigace, hledání


Obsah

Purpose

To provide a good, safe, average listing price for most items by ignoring extreme prices that are either too high or too low and creating an average of just the ones left in the middle.

Strengths

This algorithm is quite good at working out a reasonable price for most items, and discarding the outliers.

Weaknesses

Because only the last 100 listings are used, the results can easily be skewed by items that are listed and sold in great quantities. It can return a price that is substantially lower (or, conceivably, higher) than what you could actually get for your item. For instance, suppose Strange Dust usually lists for around 25s, but someone's cleaning out his guild bank and posts 100 at 5s each, because he wants them gone fast. Since StdDev only counts the last 100, it's going to return a price of 5s to you, which is much less than you could normally get.

Details

The complexity of this module lies in the calculations it uses to determine which prices are ignored and which are used. First, it finds a raw average price (the Mean). Then for all the prices it calculates a type of average distance away (the Standard Deviation) from that raw average price. Then it travels 1.5 times this standard deviation above and below the Mean to establish a price range for outliers. It then creates a new average (the Normalized Mean) of just the prices that are within this price range.

For instance, let's say an item is listed for an average of 10G, and the average ones listed are between 9 and 11G, so our standard deviation is 1G; but there's one listed at 100G. StdDev will average up all the ones listed between 8.5G and 11.5G (1.5 * standard deviation) and provide a new average, ignoring the one listed at 100G. This is a bit of an oversimplification (because the 100G price does get included in the raw average) but it conveys the essence of the calculations.

Options

The following options are available to the StdDev statistic:

  • Enable StdDev Stats: This allows the module to begin collecting data during scans, and to send a value to be included in Market Price.
    • Show StdDev stats in the tooltip: Only determines whether the sub-selections will be displayed in the standard tooltip; does NOT affect the visibility of the StdDev entry in the Market-Price-calculation portion of the tooltip (visible when pressing Shift). When checked with no sub-selections, the tooltip only displays the number of price points currently stored.
      • Display Mean: This is the raw average of all the price points stored (max 100).
      • Display Normalized: This is the new average, excluding outliers. This is the value StdDev sends to Market Price.
      • Display Standard Deviation: This is this amount used to determine which prices get included in the new average. Multiply this by 1.5, and add and subtract it to and from the Mean: any prices outside this range are ignored.
      • Display Confidence: This value is between 0 and 1. It represents how much and how often the price varies within the standard deviation. If there is no consistency in the list prices for an item, this will be closer to 0. The closer to 1 it is, the more likely the StdDev value is reliable.
    • Multiply by Stack Size: This multiplies the Mean, the Normalized, and the Standard Deviation values by the number of items in the stack currently under your mouse; for the Mean, this option replaces the individual price. For the Normalized and Standard Deviation, this creates an additional line each (unless there is only one item in the stack), and the individual price is also still displayed. On the Appraiser tab, this will multiply by the total number you have in all stacks in all your equipped bags (will not count quantities in your bank or posted on AH).

Stddev options.jpg

Technical

There is a good wikipedia page on Standard Deviation that may help fill in any blanks.

If you're a coder and want some pseudo code:

foreach prices do
  variance += (mean - price)^2
end
variance = variance / [count(prices) -1)]
stddev = squareroot(variance)
foreach prices do
  if abs(mean - price) < (stddev*1.5) then
    normal += price
    normalcount++
  end
end
normal = normal / normalcount

For Confidence, the formula used is:

average = total / number
confidence = (.15*average)*(number^0.5)/(stddev)

where "total" is the sum of all the list prices, "number" is the number of price points, and "stddev" is the standard deviation. Thus confidence tends to increase as more data are added (slowly, because the square root of the number of price points is used), and decrease with increasing standard deviation.

Osobní nástroje