簡體   English   中英

在R中使用不同長度的參數向量

[英]Using Parameter Vectors of Different Lengths in R

假設我有兩個不同的參數向量用作函數的輸入。 同樣,假設兩個參數向量的長度不同。 有沒有辦法輸出該功能的所有可能值? 我知道,如果我使用兩個不同長度的參數向量,那么較短的參數向量將被重復,因此不起作用。 我可以“手動”解決此問題,如下所示。 但是,我想找到一種更有效的方式來計算所有可能的組合。 下面是一個示例:

假設我正在使用dbinom()函數,其輸入為x(樣本中“成功”的數量),n(樣本中觀察到的數量)和p(每個x的“成功”概率)作為輸入。 n保持恆定在20; 但是,我的x從7,8,9,...,20(以下為“ x7”)或0.1(以下為“ x1”)變化。 另外,我想以不同的p值來評估dbinom(),特別是從0到1以.1的增量(以下為“ p”)。 如您所見,三個參數向量x7,x1和p分別具有不同的長度14、2和11。

> p<-seq(from=0,to=1,by=.1)
> x7<-seq.int(7,20)
> x1<-c(0,1)
> n<-20

我可以通過使用dbinom()中的向量之一(x7 / x2或p)來評估每種組合,然后為其余參數選擇一個值。 如下所示,我使用向量x7或x2,然后“手動”將p更改為等於0,.1,.2,...,1。

> sum(dbinom(x7,n,.1))
[1] 0.002386089
> sum(dbinom(x7,n,.1))+sum(dbinom(x1,n,.1))
[1] 0.3941331
> sum(dbinom(x7,n,.2))+sum(dbinom(x1,n,.2))
[1] 0.1558678
> sum(dbinom(x7,n,.3))+sum(dbinom(x1,n,.3))
[1] 0.3996274
> sum(dbinom(x7,n,.4))+sum(dbinom(x1,n,.4))
[1] 0.7505134
> sum(dbinom(x7,n,.5))+sum(dbinom(x1,n,.5))
[1] 0.9423609
> sum(dbinom(x7,n,.6))+sum(dbinom(x1,n,.6))
[1] 0.9935345
> sum(dbinom(x7,n,.7))+sum(dbinom(x1,n,.7))
[1] 0.999739
> sum(dbinom(x7,n,.8))+sum(dbinom(x1,n,.8))
[1] 0.9999982
> sum(dbinom(x7,n,.9))+sum(dbinom(x1,n,.9))
[1] 1
> sum(dbinom(x7,n,1))+sum(dbinom(x1,n,1))
[1] 1

基本上,我想知道是否有一種方法可以讓R用單行輸入或其他簡單的更改參數p的有效方式來打印0.3941331,0.1558678,...,1以上的所有和。並在每行上更改p

*我是Stackoverflow的新手,所以如果我以前沒有提出自己的問題,請提前道歉。

您正在使用具有x值范圍的dbinom ,然后求和。 取而代之的是使用pbinom ,它會計算P(x <=q)概率P(x <=q)如果lower.tail = FALSE ,則計算P(x >q) )。

因此,您可以計算P(x >6) + P(q <= 1) (這似乎是您想要計算的)

pbinom(q = 6, p = p ,size = n, lower.tail = FALSE) + pbinom(q = 1, p = p, size = n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM