class MoreMath::TDistribution

This class is used to compute the T-Distribution.

def initialize(df)

Returns a TDistribution instance for the degrees of freedom +df+.
def initialize(df)
  @df = df
end

def inverse_probability(p)

for the probability +p+.
Returns the inverse cumulative probability (t-value) of the TDistribution
def inverse_probability(p)
  case
  when p <= 0
    -1 / 0.0
  when p >= 1
    1 / 0.0
  else
    begin
      bisect = NewtonBisection.new { |x| probability(x) - p }
      range = bisect.bracket(-10..10)
      bisect.solve(range, 1_000_000)
    rescue
      0 / 0.0
    end
  end
end

def probability(x)

t-value +x+.
Returns the cumulative probability (p-value) of the TDistribution for the
def probability(x)
  if x == 0
    0.5
  else
    t = beta_regularized(@df / (@df + x ** 2.0), 0.5 * @df, 0.5)
    if x < 0.0
      0.5 * t
    else
      1 - 0.5 * t
    end
  end
end