# # = Statistics # 1. {Mean, Standard Deviation and Variance}[link:rdoc/stats_rdoc.html#1] # 1. {Absolute deviation}[link:rdoc/stats_rdoc.html#2] # 1. {Higher moments (skewness and kurtosis)}[link:rdoc/stats_rdoc.html#3] # 1. {Autocorrelation}[link:rdoc/stats_rdoc.html#4] # 1. {Covariance}[link:rdoc/stats_rdoc.html#5] # 1. {Correlation}[link:rdoc/stats_rdoc.html#6] # 1. {Weighted samples}[link:rdoc/stats_rdoc.html#7] # 1. {Maximum and minimum values}[link:rdoc/stats_rdoc.html#8] # 1. {Median and percentiles}[link:rdoc/stats_rdoc.html#9] # 1. {Examples}[link:rdoc/stats_rdoc.html#10] # # == {}[link:index.html"name="1] Mean, Standard Deviation and Variance # # --- # * GSL::Stats::mean(v) # * GSL::Vector#mean # # Arithmetic mean. # # * Ex: # >> require("gsl") # => true # >> v = Vector[1..7] # => GSL::Vector: # [ 1.000e+00 2.000e+00 3.000e+00 4.000e+00 5.000e+00 6.000e+00 7.000e+00 ] # >> v.mean # => 4.0 # >> Stats::mean(v) # => 4.0 # # --- # * GSL::Vector#tss # # Returns the total sum of squares about <tt>self.mean</tt>. # (Requires GSL 1.11) # --- # * GSL::Vector#tss_m(mean) # # Returns the total sum of squares about <tt>mean</tt>. # (Requires GSL 1.11) # # --- # * GSL::Stats::variance_m(v[, mean]) # * GSL::Vector#variance_m([mean]) # # Variance of <tt>v</tt> relative to the given value of <tt>mean</tt>. # # --- # * GSL::Stats::sd(v[, mean]) # * GSL::Vector#sd([mean]) # # Standard deviation. # # --- # * GSL::Stats::tss(v[, mean]) # * GSL::Vector#tss([mean]) # # (GSL-1.11 or later) These methods return the total sum of squares (TSS) of data about the mean. # # --- # * GSL::Stats::variance_with_fixed_mean(v, mean) # * GSL::Vector#variance_with_fixed_mean(mean) # # Unbiased estimate of the variance of <tt>v</tt> when the population mean # <tt>mean</tt> of the underlying distribution is known <tt>a priori</tt>. # # --- # * GSL::Stats::variance_with_fixed_mean(v, mean) # * GSL::Vector#variance_with_fixed_mean(mean) # * GSL::Stats::sd_with_fixed_mean(v, mean) # * GSL::Vector#sd_with_fixed_mean(mean) # # Unbiased estimate of the variance of <tt>v</tt> when the population mean # <tt>mean</tt> of the underlying distribution is known <tt>a priori</tt>. # # == {}[link:index.html"name="2] Absolute deviation # --- # * GSL::Stats::absdev(v[, mean]) # * GSL::Vector#absdev([mean]) # # Compute the absolute deviation (from the mean <tt>mean</tt> if given). # # == {}[link:index.html"name="3] Higher moments (skewness and kurtosis) # # --- # * GSL::Stats::skew(v[, mean, sd]) # * GSL::Vector#skew([mean, sd]) # # Skewness # # --- # * GSL::Stats::kurtosis(v[, mean, sd]) # * GSL::Vector#kurtosis([mean, sd]) # # Kurtosis # # == {}[link:index.html"name="4] Autocorrelation # --- # * GSL::Stats::lag1_autocorrelation(v[, mean]) # * GSL::Vector#lag1_autocorrelation([mean]) # # The lag-1 autocorrelation # # == {}[link:index.html"name="5] Covariance # --- # * GSL::Stats::covariance(v1, v2) # * GSL::Stats::covariance_m(v1, v2, mean1, mean2) # # Covariance of vectors <tt>v1, v2</tt>. # # == {}[link:index.html"name="6] Correlation # --- # * GSL::Stats::correlation(v1, v2) # # This efficiently computes the Pearson correlation coefficient between the vectors <tt>v1, v2</tt>. (>= GSL-1.10) # # == {}[link:index.html"name="7] Weighted samples # --- # * GSL::Vector#wmean(w) # * GSL::Vector#wvariance(w) # * GSL::Vector#wsd(w) # * GSL::Vector#wabsdev(w) # * GSL::Vector#wskew(w) # * GSL::Vector#wkurtosis(w) # # # == {}[link:index.html"name="8] Maximum and Minimum values # --- # * GSL::Stats::max(data) # * GSL::Vector#max # # Return the maximum value in data. # # --- # * GSL::Stats::min(data) # * GSL::Vector#min # # Return the minimum value in data. # # --- # * GSL::Stats::minmax(data) # * GSL::Vectorminmax # # Find both the minimum and maximum values in <tt>data</tt> and returns them. # # --- # * GSL::Stats::max_index(data) # * GSL::Vector#max_index # # Return the index of the maximum value in <tt>data</tt>. # The maximum value is defined as the value of the element x_i # which satisfies x_i >= x_j for all j. # When there are several equal maximum elements then the first one is chosen. # --- # * GSL::Stats::min_index(data) # * GSL::Vector#min_index # # Returns the index of the minimum value in <tt>data</tt>. # The minimum value is defined as the value of the element x_i # which satisfies x_i >= x_j for all j. # When there are several equal minimum elements then the first one is # chosen. # # --- # * GSL::Stats::minmax_index(data) # * GSL::Vector#minmax_index # # Return the indexes of the minimum and maximum values in <tt>data</tt> # in a single pass. # # # == {}[link:index.html"name="9] Median and Percentiles # # --- # * GSL::Stats::median_from_sorted_data(v) # * GSL::Vector#median_from_sorted_data # # Return the median value. The elements of the data must be # in ascending numerical order. There are no checks to see whether # the data are sorted, so the method <tt>GSL::Vector#sort</tt> # should always be used first. # # --- # * GSL::Stats::quantile_from_sorted_data(v) # * GSL::Vector#quantile_from_sorted_data # # Return the quantile value. The elements of the data must be # in ascending numerical order. There are no checks to see whether # the data are sorted, so the method <tt>GSL::Vector#sort</tt> # should always be used first. # # == {}[link:index.html"name="10] Example # # #!/usr/bin/env ruby # require 'gsl' # # ary = [17.2, 18.1, 16.5, 18.3, 12.6] # data = Vector.alloc(ary) # mean = data.mean() # variance = data.stats_variance() # largest = data.stats_max() # smallest = data.stats_min() # # printf("The dataset is %g, %g, %g, %g, %g\n", # data[0], data[1], data[2], data[3], data[4]); # # printf("The sample mean is %g\n", mean); # printf("The estimated variance is %g\n", variance); # printf("The largest value is %g\n", largest); # printf("The smallest value is %g\n", smallest); # # {prev}[link:rdoc/randist_rdoc.html] # {next}[link:rdoc/hist_rdoc.html] # # {Reference index}[link:rdoc/ref_rdoc.html] # {top}[link:index.html] #