python去重复功能_python包中的statmodels,如何处理完全重复的功能?
我是一个沉重的R用户,最近我正在学习python . 我有一个关于statsmodels.api如何处理重复功能的问题 . 据我所知,这个函数是R包中glm的python版本 . 所以我期望函数返回最大似然估计(MLE) .
我的问题是statsmodels采用哪种算法来获取MLE?特别是算法如何处理具有重复特征的情况?
为了澄清我的问题,我从Bernoullie分布中生成了一个大小为50的样本,其中包含一个协变量x1 .
import statsmodels.api as sm
import pandas as pd
import numpy as np
def ilogit(eta):
return 1.0 - 1.0/(np.exp(eta)+1)
## generate samples
Nsample = 50
cov = {}
cov["x1"] = np.random.normal(0,1,Nsample)
cov = pd.DataFrame(cov)
true_value = 0.5
resp = {}
resp["FAIL"] = np.random.binomial(1, ilogit(true_value*cov["x1"]))
resp = pd.DataFrame(resp)
resp["NOFAIL"] = 1 - resp["FAIL"]
然后将逻辑回归拟合为:
## fit logistic regrssion
fit = sm.GLM(resp,cov,family=sm.families.Binomial(sm.families.links.logit)).fit()
fit.summary()
返回:
估计的系数或多或少类似于真实值(= 0.5) . 然后我创建一个重复的列,即x2,并再次适合逻辑回归模型 . (R包中的glm将为x2返回NA)
cov["x2"] = cov["x1"]
fit = sm.GLM(resp,cov,family=sm.families.Binomial(sm.families.links.logit)).fit()
fit.summary()
这输出:
令人惊讶的是,这种方法和x1和x2的系数估计完全相同(= 0.1182) . 由于先前拟合返回x1 = 0.2364的系数估计值,估计值减半 . 然后我将重复的特征数量增加到9并适合模型:
cov = cov
for icol in range(3,10):
cov["x"+str(icol)] = cov["x1"]
fit = sm.GLM(resp,cov,family=sm.families.Binomial(sm.families.links.logit)).fit()
fit.summary()
正如预期的那样,每个重复变量的估计值是相同的(0.0263),它们似乎比x1的原始估计值(0.2364)小9倍 .
我对这种最大似然估计的意外行为感到惊讶 . 你能解释为什么会发生这种情况吗?statsmodels.api背后会采用什么样的算法?
python去重复功能_python包中的statmodels,如何处理完全重复的功能?相关推荐
- python模块 init py_Python模块包中__init__.py文件的作用
在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很 ...
- python中什么最重要_Python 3中被忽视了的三大重要功能
全文共2201字,预计学习时长6分钟 图源:unsplash Python 3上线已有一段时间,大多数开发人员(特别是那些首次编程的人)已经在使用它了.不过,你确定已经对Python 3研究透彻了吗? ...
- python 插补数据_python 2020中缺少数据插补技术的快速指南
python 插补数据 Most machine learning algorithms expect complete and clean noise-free datasets, unfortun ...
- python super().__init__()参数_python类中super()和__init__()的区别
单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class ch ...
- python装饰器编程_Python编程中装饰器的使用示例解析
装饰函数和方法 我们先定义两个简单的数学函数,一个用来计算平方和,一个用来计算平方差: # get square sum def square_sum(a, b): return a**2 + b** ...
- python pip工具命令_Python包管理工具pip
一.pip概述 1.python包 python包,可以使我们利用网络上现成的代码库资源,解决程序中某一方面的问题,类似于C语言的各种库. PyPi(Python Package Index ,包索引 ...
- python eval函数格式_Python函数中eval函数知识点
python 的集合类型和 其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), interse ...
- python时间格式化代码_Python代码中如何将”日期时间”格式化为自己所需的样式呢?...
摘要: 下文讲述Python代码中将日期时间格式化为时间的方法分享,如下所示: 实现思路: 使用time.strftime函数将 一个时间元组格式化自定义的模式 strftime函数语法: time. ...
- python相册特效模块_PIL包中Image模块的convert()函数的具体使用
将彩色图片转换成黑白图片是自己拿到的第一个小任务.在全文开始之前给自己科普一个公式: RGB到灰度图转换公式:Y' = 0.299 R + 0.587 G + 0.114 B 网上有诸多版本的转换公式 ...
最新文章
- 根据后台的数据设置前端页面展示效果
- 从软件到数件,AI生态如何建立自己的“Android”?天云数据CEO直播详解,可预约 | 量子位·视点...
- LibSVM学习(三)——LibSVM使用规范
- java观察者模式在spring中的应用_Spring源码之spring中的观察者模式和监听器的使用...
- OpenCV:Surface Matching 3D
- TCP面向连接中的“连接”和“可靠”与“不可靠”
- 匿名函数自我调用_Python中的匿名函数及递归思想简析
- React 第七章 条件渲染
- mysql数据库隐式表_解析MySQL隐式转换问题
- gtkterm ubuntu下好用的串口工具使用心得-转
- SQL正则表达式的妙用
- c语言linux系统宏,Linux下C语言中的预定义宏
- 苹果手机怎么将PDF转换成JPG图片
- 【C语言编程5】复数计算器
- 学历证书查询唯一网站
- ROS单线程与多线程处理
- cad隐藏图层命令快捷键_cad解锁图层命令(cad图层全部解锁快捷键)
- 如何巧妙使用PDF转换图片软件
- JavaScript变量提升(Hoisting)详解
- 论文笔记 | code pretraining(代码预训练系列)
热门文章
- no number java_java.lang.NumberFormatException问题!!!
- java 字符串contain_如何使用java.lang.String.contains()方法
- 异步数据加载和Tab选项卡
- bolt在java,java – 在Apache Storm中将不同的元组从1个spout发送到不同的bolt
- JAVA线程并发数量控制_Java并发工具类(三):控制并发线程数的Semaphore
- Java注解 编译_Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
- 计算机2020中级考试题,突发!2020年中级考试分值及评分标准大变!
- mysql怎么换引擎_如何更换MySQL默认存储引擎
- pg库和mysql的优缺点_MySQL与PostgreSQL的实际性能比较
- 细胞增殖曲线_两种月龄近交系五指山小型猪脂肪间充质干细胞生物学特性的比较...