# # = Statistics # 1. {Mean, Standard Deviation and Variance}[link:rdoc/stats_rdoc.html#label-Mean%2C+Standard+Deviation+and+Variance] # 1. {Absolute deviation}[link:rdoc/stats_rdoc.html#label-Absolute+deviation] # 1. {Higher moments (skewness and kurtosis)}[link:rdoc/stats_rdoc.html#label-Higher+moments+%28skewness+and+kurtosis%29] # 1. {Autocorrelation}[link:rdoc/stats_rdoc.html#label-Autocorrelation] # 1. {Covariance}[link:rdoc/stats_rdoc.html#label-Covariance] # 1. {Correlation}[link:rdoc/stats_rdoc.html#label-Correlation] # 1. {Weighted samples}[link:rdoc/stats_rdoc.html#label-Weighted+samples] # 1. {Maximum and minimum values}[link:rdoc/stats_rdoc.html#label-Maximum+and+Minimum+values] # 1. {Median and percentiles}[link:rdoc/stats_rdoc.html#label-Median+and+Percentiles] # 1. {Examples}[link:rdoc/stats_rdoc.html#label-Example] # # == 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 self.mean. # (Requires GSL 1.11) # --- # * GSL::Vector#tss_m(mean) # # Returns the total sum of squares about mean. # (Requires GSL 1.11) # # --- # * GSL::Stats::variance_m(v[, mean]) # * \GSL::Vector#variance_m([mean]) # # Variance of v relative to the given value of mean. # # --- # * 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 v when the population mean # mean of the underlying distribution is known a priori. # # --- # * 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 v when the population mean # mean of the underlying distribution is known a priori. # # == Absolute deviation # --- # * GSL::Stats::absdev(v[, mean]) # * \GSL::Vector#absdev([mean]) # # Compute the absolute deviation (from the mean mean if given). # # == 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 # # == Autocorrelation # --- # * GSL::Stats::lag1_autocorrelation(v[, mean]) # * \GSL::Vector#lag1_autocorrelation([mean]) # # The lag-1 autocorrelation # # == Covariance # --- # * GSL::Stats::covariance(v1, v2) # * GSL::Stats::covariance_m(v1, v2, mean1, mean2) # # Covariance of vectors v1, v2. # # == Correlation # --- # * GSL::Stats::correlation(v1, v2) # # This efficiently computes the Pearson correlation coefficient between the vectors v1, v2. (>= GSL-1.10) # # == 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) # # # == 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 data and returns them. # # --- # * GSL::Stats::max_index(data) # * GSL::Vector#max_index # # Return the index of the maximum value in data. # 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 data. # 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 data # in a single pass. # # # == 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 GSL::Vector#sort # 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 GSL::Vector#sort # should always be used first. # # == 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] #