Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

非成員屬性

對於所有的分佈都通用的屬性使用非成員的訪問函數(getter function)來訪問。這使得更多的這類函數可以隨著需要而得以添加。不幸的是文獻資料上使用很多不同且令人困惑的名字來命名少量的實際概念;參見 概念索引 來使用你最熟悉的名字查找你想要的屬性。或者,如果你已經知道了屬性的名字,那麼你可以使用 函數索引 來直接找到這些函數。

函數索引
概念索引
累積分佈函數
template <class RealType, class Policy>
RealType cdf(const Distribution-Type<RealType, Policy>& dist, const RealType& x);

累積分佈函數 是變量的值小於或等於x時的概率。這個函數等價於 概率密度函數 從-∞到x的積分。

如果隨機變量的值超出了分佈的定義範圍,那麼函數將會返回定義域錯誤

例如,下面的圖像顯示了正態分佈的cdf:

cdf

累積分佈函數補集
template <class Distribution, class RealType>
RealType cdf(const Unspecified-Complement-Type<Distribution, RealType>& comp);

累積分佈函數 的補集是變量值大於x時的概率。等價於比x到+∞i的概率密度函數的積分, 或者 1 減去x的累積分佈函數

這也被稱作殘存函數(survival function)。

如果隨機變量的值超過了分佈的定義範圍,那麼函數將會返回定義域錯誤

在這個庫中,函數將傳遞給函數cdf的參數包裝在對函數complement 的調用當中來獲得累積分佈的補集,例如 :

// 標準正態分佈對像:
boost::math::normal norm;
// 對於x=2.0,打印殘存函數:
std::cout << cdf(complement(norm, 2.0)) << std::endl;

例如,下面的圖像顯示了正態分佈的累積函數的補集:

survival

參見為什麼有補集? 瞭解什麼補集很有用有及什麼時候使用補集。

故障率函數(Hazard Function)
template <class RealType, class Policy>
RealType hazard(const Distribution-Type<RealType, Policy>& dist, const RealType& x);

返回 x 和分佈dist故障率函數

如果隨機變量的值超過了分佈的定義範圍,那麼函數將會返回定義域錯誤

[Caution] 注意

一些作者將這個函數稱作條件失敗密度函數(conditional failure density function)而不是故障率函數。

累積危險函數(Cumulative Hazard Function)
template <class RealType, class Policy>
RealType chf(const Distribution-Type<RealType, Policy>& dist, const RealType& x);

返回 x 和分佈dist累積危險函數

如果隨機變量的值超過了分佈的定義範圍,那麼函數將會返回定義域錯誤

[Caution] 注意

一些作者將這個函數稱作「故障率函數」。

均值
template<class RealType, class Policy>
RealType mean(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist的均值。

如果分佈沒有定義均值,那麼函數將會返回定義域錯誤 (例如柯西分佈)。

中位數
template<class RealType, class Policy>
RealType median(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist的中位數。

眾數
template<class RealType, Policy>
RealType mode(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist的眾數。

如果分佈沒有定義眾數,那麼函數將會返回定義域錯誤

概率密度函數
template <class RealType, class Policy>
RealType pdf(const Distribution-Type<RealType, Policy>& dist, const RealType& x);

對於連續函數, 概率密度函數(pdf)返回隨機變量的值為x時的概率。因為對於連續分佈,在一個點處的概率為0,所以概率最好表示為兩個點之間的pdf函數(概率密度函數)的積分:參見累積分佈函數.

對於對連續分佈,函數pdf是隨機變量值為x時的概率。

如果隨機變量的值超過了分佈的定義範圍,那麼函數將會返回定義域錯誤

例如,對於一個標準正態分佈,函數pdf(概率密度函數)的圖像如下:

pdf

值域
template<class RealType, class Policy>
std::pair<RealType, RealType> range(const Distribution-Type<RealType, Policy>& dist);

返回在分佈dist上的隨機變量的值域。

分位點
template <class RealType, class Policy>
RealType quantile(const Distribution-Type<RealType, Policy>& dist, const RealType& p);

分位點最好看作 累積分佈函數的反函數, 返回滿足cdf(dist, x) == px 值。

這個函數也被稱作百分點函數, 或百分位數, 它與計算一個分佈的下臨界值是相同的。

如果概率超出區間[0,1],那麼函數將返回定義域錯誤 。如果不存在具有指定概率的變量值,那麼函數將會返回溢出錯誤

下面的圖像顯示了標準正態分佈的分位點函數:

quantile

概率補集的分位點.

補集

template <class Distribution, class RealType>
RealType quantile(const Unspecified-Complement-Type<Distribution, RealType>& comp);

這個函數是累積分佈函數補集的反函數。通過將傳遞給分位點函數的參數包裝在對complement函數的調用中來計算。例如:

// 定義一個標準的正態分佈:
boost::math::normal norm;
// 打印概率補集為 0.05的x值:
std::cout << quantile(complement(norm, 0.05)) << std::endl;

這個函數計算滿足 cdf(complement(dist, x)) == qx 值,其中, q 是概率的補集。

為什麼會有補集?

這個函數也被稱作殘存函數反函數,且與計算分佈的上臨界值相同。

如果概率超出區間[0,1],那麼函數將返回定義域錯誤 。如果不存在具有指定概率的變量值,那麼函數將會返回溢出錯誤

下面的圖像顯示了正態分佈的殘存函數反函數的圖像:

survival_inv

標準差
template <class RealType, class Policy>
RealType standard_deviation(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist的標準差。

如果分佈沒有定義標準差,那麼函數將會返回定義域錯誤

支持(support)
template<class RealType, class Policy>
std::pair<RealType, RealType> support(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist所支持的隨機變量的範圍。

在一個範圍上分佈得到'支持'的意思是:"補集的概率為0的最小閉區間"。非數學人士可能會說這意味著使得函數cdf從0到1(unity)的最小的隨機變量的範圍。在這個區域之外,函數pdf的值為0,函數cdf的值為0或1(unity)。

方差
template <class RealType, class Policy>
RealType variance(const Distribution-Type<RealType, Policy>& dist);

返回分佈dist的方差

如果分佈沒有定義方差,那麼函數返回定義域錯誤

偏斜(Skewness)
template <class RealType, class Policy>
RealType skewness(const Distribution-Type<RealType, Policy>& dist);

返回分佈 dist的偏斜(skewness)。

如果分佈沒有定義偏斜,那麼函數返回定義域錯誤

峰態(Kurtosis)
template <class RealType, class Policy>
RealType kurtosis(const Distribution-Type<RealType, Policy>& dist);

返回分佈 dist 的'合適的'峰態(標準第四矩)。

kertosis = β2= μ4 / μ22

其中μi 是分佈的第i個中心矩,且μ2 是分佈的方差。

峰態是分佈的"波峰(peakedness)"的量化。

注意:文獻資料上的峰態的定義容易令人困惑。這裡所使用的峰態的定義是被Wolfram MathWorld 所使用的定義(包含了對不同的分佈的峰態超越(kurtosis excess)的方程表)而不是kurtosis used by Wikipedia 中「峰態」和「峰態超越」看作是相同量所使用的定義。

kurtosis_excess = 'proper' kurtosis - 3

這裡減3是出於方便考慮,使得使得分佈的峰態超越為0。

如果分佈沒有定義峰態,那麼函數返回定義域錯誤

'合適的(Proper)'峰態的值從0 到+∞。

峰態超越(Kurtosis excess)
template <class RealType, Policy>
RealType kurtosis_excess(const Distribution-Type<RealType, Policy>& dist);

返回分佈 dist 的峰態超越。

kurtosis excess = γ2= μ4 / μ22- 3 = kurtosis - 3

其中 μi 是分佈的第i個中心矩(central moment), 且 μ2 是分佈的方差。

峰態超越是用來分佈的「峰值(peadedness)」的量化,並且比"kurtosis proper"用得更廣泛一些。定義kurtosis excess使得正態分佈的kurtosis excess為0。.

如果分佈沒有定義kurtosis excess,那麼函數將會返回定義域錯誤

Kurtosis excess 的值從 -2 到 +∞。

kurtosis = kurtosis_excess +3;

正態分佈的kurtosis excess為0。

P 和 Q

術語P 和 Q 有時分別用來描述累積分佈函數及其補集 。小寫的p 和 q 有時用來描述這些函數的返回值。

百分點函數(Percent Point Function)

百分點函數,也被稱作百分位數,和分位點是一樣的。

CDF函數的反函數.

累積分佈函數的反函數, 與 分位點是一樣的。

殘存函數反函數.

殘存函數的反函數,與計算概率補集的分位點 是一樣的。

概率質量函數

概率質量函數與概率密度函數是一樣的。

術語「概率密度函數」通常用於離散分佈,而術語概率密度函數 通常用於連續分佈。

下部臨界值(Lower Critical Value).

下部臨界值計算分佈的給定區域的隨機變量的最左邊的值。等價於計算分位點

上部臨界值(Upper Critical Value).

下部臨界值計算分佈的給定區域的隨機變量的最左邊的值。 等價於計算概率補集的分位點

殘存函數(Survival Function)

參見累積分佈函數的補集


PrevUpHomeNext