當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R Chisquare (非中心)卡方分布


R語言 Chisquare 位於 stats 包(package)。

說明

具有 df 自由度和可選非中心參數 ncp 的卡方 ( ) 分布的密度、分布函數、分位數函數和隨機生成。

用法

dchisq(x, df, ncp = 0, log = FALSE)
pchisq(q, df, ncp = 0, lower.tail = TRUE, log.p = FALSE)
qchisq(p, df, ncp = 0, lower.tail = TRUE, log.p = FALSE)
rchisq(n, df, ncp = 0)

參數

x, q

分位數向量。

p

概率向量。

n

觀察次數。如果是 length(n) > 1 ,則長度被視為所需的數量。

df

自由度(非負,但可以是非整數)。

ncp

非中心參數(非負)。

log, log.p

邏輯性;如果為 TRUE,則概率 p 以 log(p) 形式給出。

lower.tail

邏輯性;如果為 TRUE(默認值),則概率為 ,否則為

細節

具有 df 自由度的卡方分布具有密度

為了 ,其中 ,零質量點,不是一個本身的密度函數,而是一個“ 分配”。
均值和方差為 .

具有 df 自由度和非中心參數 ncp 的非中心卡方分布具有密度

為了 。對於整數 ,這是平方和的分布 每個正態分布的方差為一, 是正常平均值的平方和;更遠,
, , 和 .

請注意,自由度 df 可以是非整數,也可以是與非中心性 相關的 ,請參閱 Johnson 等人(1995 年,第 29 章)。在這種(非中心,零 df)情況下,分布是 處的點質量(大小為 pchisq(0, df=0, ncp=ncp) )和連續部分的混合,並且 dchisq() 不是相對於該混合測量的密度,而是而是 的密度限製。

請注意,大於約 1e5(甚至更小)的 ncp 值可能會給出不準確的結果,並針對 pchisqqchisq 發出許多警告。

dchisq 給出密度,pchisq 給出分布函數,qchisq 給出分位數函數,rchisq 生成隨機偏差。

無效參數將導致返回值 NaN ,並帶有警告。

結果的長度由 rchisqn 確定,並且是其他函數的數值參數長度的最大值。

n 之外的數字參數將被回收到結果的長度。僅使用邏輯參數的第一個元素。

注意

提供 ncp = 0 使用非中心分布的算法,這與省略 ncp 時使用的算法不同。這是為了在 ncp 值非常接近零的極端情況下提供一致的行為。

非零 ncp 的代碼主要用於 ncp 的中等值:對於大值,它不會非常準確,尤其是在尾部。

例子

require(graphics)

dchisq(1, df = 1:3)
pchisq(1, df =  3)
pchisq(1, df =  3, ncp = 0:4)  # includes the above

x <- 1:10
## Chi-squared(df = 2) is a special exponential distribution
all.equal(dchisq(x, df = 2), dexp(x, 1/2))
all.equal(pchisq(x, df = 2), pexp(x, 1/2))

## non-central RNG -- df = 0 with ncp > 0:  Z0 has point mass at 0!
Z0 <- rchisq(100, df = 0, ncp = 2.)
graphics::stem(Z0)

## visual testing
## do P-P plots for 1000 points at various degrees of freedom
L <- 1.2; n <- 1000; pp <- ppoints(n)
op <- par(mfrow = c(3,3), mar = c(3,3,1,1)+.1, mgp = c(1.5,.6,0),
          oma = c(0,0,3,0))
for(df in 2^(4*rnorm(9))) {
  plot(pp, sort(pchisq(rr <- rchisq(n, df = df, ncp = L), df = df, ncp = L)),
       ylab = "pchisq(rchisq(.),.)", pch = ".")
  mtext(paste("df = ", formatC(df, digits = 4)), line =  -2, adj = 0.05)
  abline(0, 1, col = 2)
}
mtext(expression("P-P plots : Noncentral  "*
                 chi^2 *"(n=1000, df=X, ncp= 1.2)"),
      cex = 1.5, font = 2, outer = TRUE)
par(op)

## "analytical" test
lam <- seq(0, 100, by = .25)
p00 <- pchisq(0,      df = 0, ncp = lam)
p.0 <- pchisq(1e-300, df = 0, ncp = lam)
stopifnot(all.equal(p00, exp(-lam/2)),
          all.equal(p.0, exp(-lam/2)))

來源

中心情況是通過伽瑪分布計算的。

非中心 dchisqrchisq 被計算為中心 chi-squares 的泊鬆混合(Johnson 等人,1995 年,第 436 頁)。

非中心 pchisq 用於根據中心 chi-squares 的泊鬆混合計算得出的 ncp < 80,對於較大的 ncp,則通過 C 翻譯

Ding, C. G. (1992) 算法 AS275:計算非中心卡方分布函數。應用統計學家,41 478-482。

它僅計算下尾部(因此上尾部會受到取消的影響,並且當這可能很重要時會發出警告)。

非中心 qchisq 基於 pchisq 的反轉。

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Johnson, N. L., Kotz, S. and Balakrishnan, N. (1995) Continuous Univariate Distributions, chapters 18 (volume 1) and 29 (volume 2). Wiley, New York.

也可以看看

Distributions 適用於其他標準發行版。

具有 自由度的中心卡方分布與具有 shape scale 的伽瑪分布相同。因此,請參閱 dgamma 了解 Gamma 分布。

d.f. 為 2 的中心卡方分布與比率為 1/2 的指數分布相同: ,請參閱dexp

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 The (non-central) Chi-Squared Distribution。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。