草庐IT

stat_definitions

全部标签

python - 使用 Scipy 的 stats.kstest 模块进行拟合优度测试

我已经通读了有关此模块(和Scipy文档)的现有帖子,但我仍然不清楚如何使用Scipy的kstest模块在您拥有数据集和可调用函数。我要测试我的数据的PDF不是标准的scipy.stats发行版之一,所以我不能只使用类似的东西来调用它:kstest(mydata,'norm')其中mydata是一个Numpy数组。相反,我想做类似的事情:kstest(mydata,myfunc)其中“myfunc”是可调用函数。这不起作用——这不足为奇,因为kstest无法知道“mydata”数组的横坐标是什么,以便使用“myfunc”生成相应的理论频率。假设“mydata”中的频率对应于随机变量的值

python - scipy.stats.uniform 的参数是什么?

我正在尝试在两个数字(下限和上限)之间创建一个均匀分布,以便将其提供给sklearn的ParameterSampler.我正在使用scipy.stats.uniform采用以下格式:fromscipy.statsimportuniformparams=ParameterSampler({'bandwidth':uniform(5,50)},20)但是当我随机选择“带宽”参数时,它们并不都在5到50之间。其中一些比50大一点。所以我的问题是scipy.stats.uniform中的参数代表什么?它们不是下限和上限吗?该文档没有显示任何参数,所以我无法从中弄清楚。

Python:整数与列表的 "Chained definition"

我刚刚在Python的变量定义中发现。即:a=b=0a=1给我a=1和b=0或者a和b是两个自变量。但是:a=b=[]a.append(0)给我a=[0]和b=[0],或者a和b是对同一对象的两个引用。这让我感到困惑,这两种情况有何不同?是因为int是基本类型还是因为列表只是指针? 最佳答案 a和b始终指向相同的对象。但是您不能更改整数,它是不可变的。在您的第一个示例中,您反弹a以指向另一个对象。在另一个示例中您没有这样做,您从未将另一个对象分配给a。相反,您要求对象areferences改变自身,向该对象添加另一个条目。对同一对象

python - 没有位置参数的 scipy.stats.expon.fit()

我正在使用scipy.stats.expon.fit(data)对我的数据进行指数分布拟合。这似乎返回了两个我期望的值。文档online似乎没有说明fit()返回什么,但查看源代码,我猜它既是位置参数又是比例参数。能不能在拟合的时候把location参数固定为0? 最佳答案 在调用expon.fit时,使用floc=0:In[5]:data=expon.rvs(0,1.5,1000)In[6]:loc,scale=expon.fit(data,floc=0)In[7]:scaleOut[7]:1.4878030368336586In

python - scipy.stats.multivariate_normal 提高 `LinAlgError: singular matrix` 即使我的协方差矩阵是可逆的

我在尝试使用scipy.stats.multivariate_normal时遇到问题,希望你们中的某个人能够提供帮助。我有一个2x2矩阵,可以找到使用numpy.linalg.inv()的逆矩阵,但是当我尝试将其用作multivariate_normal中的协方差矩阵时我收到LinAlgError声明它是一个奇异矩阵:In[89]:cov=np.array([[3.2e5**2,3.2e5*0.103*-0.459],[3.2e5*0.103*-0.459,0.103**2]])In[90]:np.linalg.inv(cov)Out[90]:array([[1.23722158e-1

Python os.stat(file_name).st_size 与 os.path.getsize(file_name)

我有两段代码,它们都是为了做同样的事情——坐在一个循环中,直到一个文件被写入完成。它们都主要用于通过FTP/SCP传入的文件。代码的一个版本使用os.stat()[stat.ST_SIZE]:size1,size2=1,0whilesize1!=size2:size1=os.stat(file_name)[stat.ST_SIZE]time.sleep(300)size2=os.stat(file_name)[stat.ST_SIZE]另一个版本使用os.path.getsize():size1,size2=0,0whileTrue:size2=os.path.getsize(file

python - scipy.stats.linregress、numpy.polynomial.polynomial.polyfit 和 statsmodels.api.OLS 之间的差异

这三个函数似乎都可以做简单的线性回归,例如scipy.stats.linregress(x,y)numpy.polynomial.polynomial.polyfit(x,y,1)x=statsmodels.api.add_constant(x)statsmodels.api.OLS(y,x)我想知道这三种方法之间是否有任何真正的区别?我知道statsmodels是建立在scipy之上的,而scipy在很多方面都依赖于numpy,所以我希望它们不会有太大差异,但细节决定成败。更具体地说,如果我们使用上面的numpy方法,我们如何获得其他两种方法默认给出的斜率的p-value?我在Pyt

python - scipy.stats 随机抽取之间的区别....rvs 和 numpy.random

似乎如果它是相同的分布,从numpy.random中抽取随机样本比从scipy.stats.-.rvs中抽取随机样本更快。我想知道是什么导致两者之间的速度差异? 最佳答案 scipy.stats.uniform其实用的是numpy,这里是stats中对应的函数(mtrand是numpy.random的别名)classuniform_gen(rv_continuous):def_rvs(self):returnmtrand.uniform(0.0,1.0,self._size)scipy.stats有一些开销用于错误检查和使接口(in

python 的 scipy.stats.ranksums 与 R 的 wilcox.test

python的scipy.stats.ranksums和R的wilcox.test都应该计算Wilcoxon秩和检验的双侧p值。但是,当我对同一数据运行这两个函数时,我得到的p值相差几个数量级:回复:>x=c(57.07168,46.95301,31.86423,38.27486,77.89309,76.78879,33.29809,58.61569,18.26473,62.92256,50.46951,19.14473,22.58552,24.14309)>y=c(8.319966,2.569211,1.306941,8.450002,1.624244,1.887139,1.3763

Python 元类 : Why isn't __setattr__ called for attributes set during class definition?

我有以下python代码:classFooMeta(type):def__setattr__(self,name,value):printname,valuereturnsuper(FooMeta,self).__setattr__(name,value)classFoo(object):__metaclass__=FooMetaFOO=123defa(self):pass我希望元类的__setattr__被FOO和a调用。但是,它根本没有被调用。当我在定义类后将某些内容分配给Foo.whatever时,方法被调用。这种行为的原因是什么?有没有办法拦截在创建类期间发生的分配?在__ne