Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >状态模型:如何向MLE结果类添加方法

状态模型:如何向MLE结果类添加方法
EN

Stack Overflow用户
提问于 2019-06-22 18:08:58
回答 1查看 3K关注 0票数 0

(这不是简单地向给定类添加方法的问题)

我想要实现的

使用Maximum Likelihood Estimation (Generic models) of statsmodels,我实现了一个MLE估计器,并希望将用户创建的方法(使用exogparams )添加到一类拟合结果(而不是实例)中,例如使用classmetod()。但是出现错误是因为这些变量不可用。我怎样才能达到我的目标?

让我用这里的一个例子来解释我到目前为止所做的事情。

(我查看了将方法添加到现有类的。)

示例

代码语言:javascript
运行
AI代码解释
复制
import numpy as np
from scipy import stats
import statsmodels.api as sm
from statsmodels.base.model import GenericLikelihoodModel,GenericLikelihoodModelResults

data = sm.datasets.spector.load_pandas()
endog = data.endog
exog = sm.add_constant(data.exog)

class MyProbit(GenericLikelihoodModel):
    def loglike(self, params):
        exog = self.exog
        endog = self.endog
        q = 2 * endog - 1
        return stats.norm.logcdf(q*np.dot(exog, params)).sum()

# my attemp starts ---------------
def my_method(self):
    return print(self.exog, self.params, self.model)

GenericLikelihoodModelResults.my_method = classmethod(my_method)
# my attemp ends ----------------

res = MyProbit(endog, exog).fit()

res.my_method()

这会产生以下错误。

代码语言:javascript
运行
AI代码解释
复制
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-29-a2d4f516bca7> in <module>
     23 res = MyProbit(endog, exog).fit()
     24 
---> 25 res.my_method()

<ipython-input-29-a2d4f516bca7> in my_method(self)
     17 # my attemp start ---------------
     18 def my_method(self):
---> 19     return print(self.exog, self.params, self.model)
     20 GenericLikelihoodModelResults.my_method = classmethod(my_method)
     21 # my attemp ends ----------------

AttributeError: type object 'GenericLikelihoodModelResults' has no attribute 'exog'

这表明exog (类似于endogparams)在GenericLikelihoodModelResults中不可用。实际上,添加下面的代码没有显示任何exog等等。

代码语言:javascript
运行
AI代码解释
复制
def my_check(self):
    return dir(self)

GenericLikelihoodModelResults.my_check = classmethod(my_check)

尽管它们在一个实例中是可用的,因为我们可以使用

代码语言:javascript
运行
AI代码解释
复制
res.exog
res.endog
res.params

我感谢任何建设性的建议/意见。

EN

回答 1

Stack Overflow用户

发布于 2019-06-23 21:00:10

异常消息

AttributeError: type object 'GenericLikelihoodModelResults' has no attribute 'exog'

引用fit返回的结果类。

exogendog和类似的是模型类的属性。但是params是一个结果属性,因为它是fit方法的结果。

因此,如果self是结果实例,则可以访问结果类self.model.exog中的模型属性,或者使用模型类的方法,即当selfMyProbit实例时。

在这种情况下,我不确定类方法的使用情况。这些属性仅适用于类的特定实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56720537

复制
相关文章
如何向图形添加曲形文本
R语言数据分析指南
2023/08/18
3440
如何向图形添加曲形文本
如何向数组里添加元素
一般数组是不能添加元素的,因为数组在初始化时就已定好长度了,不能改变长度,我们如何做到向其中添加元素。
算法与编程之美
2023/01/03
3.7K0
向文本到图像扩散模型添加条件控制
Adding Conditional Control to Text-to-Image Diffusion Models
计算机视觉
2023/02/24
2.6K0
向文本到图像扩散模型添加条件控制
Hexo -4- 向文章添加图片的方法
这种相对路径的图片显示方法在博文详情页面显示没有问题,但是在首页预览页面图片将显示不出来。如果希望图片在文章和首页中同时显示,可以使用标签插件语法。
为为为什么
2022/08/04
1.8K0
Hexo -4- 向文章添加图片的方法
java如何向数组中添加元素[数组的添加]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java如何向数组中添加元素[数组的添加],希望能够帮助大家进步!!!
Java架构师必看
2022/04/06
8K0
java如何向数组里添加元素
1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。 但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;例子如下:
全栈程序员站长
2022/06/27
20.7K0
Groovy: 使用ExpandoMetaClass动态地向类添加方法
我们可以动态地向Groovy中的类添加新的行为,比如方法。 所以这意味着一个方法不会添加到源代码中的类定义中,而是添加到应用程序已经运行的类定义中。 为此,Groovy为所有类添加了一个metaClass属性。 这个属性的类型是ExpandoMetaClass。 我们可以将方法(也是静态的),属性,构造函数分配给metaClass属性,并将定义的行为动态添加到类定义中。 在我们添加了行为之后,我们可以创建类的新实例并调用方法,构造函数并像以前一样访问属性。
白石
2019/08/29
2.2K0
如何向已有的项目中添加C/C++代码?
  我们需要在src/main下面建立一个cpp目录,然后在其中写一个CMakeLists.txt文件和一个cpp文件,直接给出代码:
故乡的樱花开了
2023/10/22
3780
位运算的方法,大结
Title:       位操作基础篇之位操作全面总结 Author:     MoreWindows E-mail:      morewindows@126.com KeyWord:   C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试 位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位
Gxjun
2018/03/21
1.5K0
位运算的方法,大结
Python 中如何向列表或数组添加元素
然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。
Python学习者
2023/09/11
5950
向邮件添加附件
可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法:
用户7741497
2022/06/09
2.2K0
最大似然估计(MLE)原理及计算方法
1)有两堆球,其中A堆有99个白球和1个黑球,B堆有99个黑球和1个白球。假如随便摸一个球,发现是黑球,那么这个球更有可能来自于哪一堆?
生信编程日常
2020/06/05
8.4K0
以色列理工暑期学习-MLE、MAP参数估计方法
小编有幸参加到以色列理工的暑期交流项目中,并选择了《机器学习导论》这门经典课程,进行再次学习并回顾知识点查缺补漏; 既然是作为导论,国外的课程和国内的课程的区别在哪里?我觉得很重要的两点是:逻辑性和学习性。 很多在国外交流过的同学,或者看过国外大学视频的同学应该都有一些体会,逻辑性在于课程如何引入很重要;主要是通过一两句简单的概述,让学生明白这门课最基础的内容和最实用的应用,然后逐步递推,从example到general,再到general解决不了的special case,然后再次improved gen
智能算法
2018/04/02
9240
以色列理工暑期学习-MLE、MAP参数估计方法
线性回归 - MLE
本文记录极大似然估计角度进行线性回归,得到最小二乘法结果的方法。 问题描述 考虑一个线性模型 {y}=f({\bf{x}}) 其中y是模型的输出值,是标量,\bf{x}为d维实数空间的向量 线性模型可以表示为: f(\bf{x})=\bf{w} ^Tx,w\in \mathbb{R} 线性回归的任务是利用n个训练样本: image.png 和样本对应的标签: Y = [ y _ { 1 } \cdots \quad y _ { n } ] ^ { T } \quad y \in \math
为为为什么
2022/08/05
5940
线性回归 - MLE
如何使用 Bootstrap class 向按钮添加下拉菜单
如何使用 Bootstrap class 向按钮添加下拉菜单。如需向按钮添加下拉菜单,只需要简单地在一个 .btn-group 容器中放置按钮和下拉菜单即可。您也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单。
好派笔记
2021/09/18
5.7K0
JavaScript之向文档中添加元素和内容的方法
一、非DOM方法添加 1、document.write() <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript"> function insertParagrah(txt) {
郑小超.
2018/01/24
2.9K0
JavaScript之向文档中添加元素和内容的方法
Java List.add()方法:向集合列表中添加对象
用于在列表的尾部插入指定元素。如果 List 集合对象由于调用 add 方法而发生更改,则返回 true;否则返回 false。
用户7656790
2020/09/10
6.1K0
【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )
Unity 中使用的 3D 模型格式为 FBX , 使用如下建模软件 可制作该类型模型 :
韩曙亮
2023/03/30
9.5K0
【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )
spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F
菩提树下的杨过
2018/01/18
5.3K0
spring:如何用代码动态向容器中添加或移除Bean ?
点击加载更多

相似问题

如何向现有模型添加默认AASM状态

20

如何给UISlider添加“结”?

34

向Django模型添加方法

12

向Monad结果类型添加约束

14

向django模型方法添加请求?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档