用于Beta分布的R fitdistr:哪些起始参数?

时间:2012-07-18 14:46:13

标签: r estimation python beta

我需要将我的数据放入Beta发行版并检索alpha参数。我正在尝试从python(rpy2)使用R,我的代码看起来像:

from rpy2 import *
from rpy2.robjects.packages import importr
MASS = importr('MASS') #myVector is a Numpy array with values between 0 and 1
MASS.fitdistr(myVector,"beta")

但是我收到了这个错误:

Error in function (x, densfun, start, ...)  : 
  'start' must be a named list
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 82, in __call__
    return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 34, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in function (x, densfun, start, ...)  : 
  'start' must be a named list

我似乎无法通过详细示例找到R的任何好文档,因此我只找到了this

  

start 一个命名列表,使用初始值优化参数。一些命名可以省略   分布(见详情)。 ...附加参数,为   densfun或为了乐观。特别是,它可以用于指定边界   通过下部或上部或两者。如果是densfun的论据(或密度   对应于字符串规范的函数是   包括它们将被固定。

我真的不知道:

  • 作为起始参数的内容以及这将如何影响我的估算
  • 在Python中使用什么语法,因为start=list(shape1=0.5, shape2=0.5)不会发挥作用

任何提示?

1 个答案:

答案 0 :(得分:2)

好的,经过多一点挖掘后,我找到了解决方案:

from rpy2.robjects import DataFrame
starter= DataFrame({'shape1':0.5,'shape2':0.5})
x = MASS.fitdistr(myValues, "beta", start=starter))