我是一个沉重的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,如何处理完全重复的功能?相关推荐

  1. python模块 init py_Python模块包中__init__.py文件的作用

    在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很 ...

  2. python中什么最重要_Python 3中被忽视了的三大重要功能

    全文共2201字,预计学习时长6分钟 图源:unsplash Python 3上线已有一段时间,大多数开发人员(特别是那些首次编程的人)已经在使用它了.不过,你确定已经对Python 3研究透彻了吗? ...

  3. python 插补数据_python 2020中缺少数据插补技术的快速指南

    python 插补数据 Most machine learning algorithms expect complete and clean noise-free datasets, unfortun ...

  4. python super().__init__()参数_python类中super()和__init__()的区别

    单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class ch ...

  5. python装饰器编程_Python编程中装饰器的使用示例解析

    装饰函数和方法 我们先定义两个简单的数学函数,一个用来计算平方和,一个用来计算平方差: # get square sum def square_sum(a, b): return a**2 + b** ...

  6. python pip工具命令_Python包管理工具pip

    一.pip概述 1.python包 python包,可以使我们利用网络上现成的代码库资源,解决程序中某一方面的问题,类似于C语言的各种库. PyPi(Python Package Index ,包索引 ...

  7. python eval函数格式_Python函数中eval函数知识点

    python 的集合类型和 其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), interse ...

  8. python时间格式化代码_Python代码中如何将”日期时间”格式化为自己所需的样式呢?...

    摘要: 下文讲述Python代码中将日期时间格式化为时间的方法分享,如下所示: 实现思路: 使用time.strftime函数将 一个时间元组格式化自定义的模式 strftime函数语法: time. ...

  9. python相册特效模块_PIL包中Image模块的convert()函数的具体使用

    将彩色图片转换成黑白图片是自己拿到的第一个小任务.在全文开始之前给自己科普一个公式: RGB到灰度图转换公式:Y' = 0.299 R + 0.587 G + 0.114 B 网上有诸多版本的转换公式 ...

最新文章

  1. 根据后台的数据设置前端页面展示效果
  2. 从软件到数件,AI生态如何建立自己的“Android”?天云数据CEO直播详解,可预约 | 量子位·视点...
  3. LibSVM学习(三)——LibSVM使用规范
  4. java观察者模式在spring中的应用_Spring源码之spring中的观察者模式和监听器的使用...
  5. OpenCV:Surface Matching 3D
  6. TCP面向连接中的“连接”和“可靠”与“不可靠”
  7. 匿名函数自我调用_Python中的匿名函数及递归思想简析
  8. React 第七章 条件渲染
  9. mysql数据库隐式表_解析MySQL隐式转换问题
  10. gtkterm ubuntu下好用的串口工具使用心得-转
  11. SQL正则表达式的妙用
  12. c语言linux系统宏,Linux下C语言中的预定义宏
  13. 苹果手机怎么将PDF转换成JPG图片
  14. 【C语言编程5】复数计算器
  15. 学历证书查询唯一网站
  16. ROS单线程与多线程处理
  17. cad隐藏图层命令快捷键_cad解锁图层命令(cad图层全部解锁快捷键)
  18. 如何巧妙使用PDF转换图片软件
  19. JavaScript变量提升(Hoisting)详解
  20. 论文笔记 | code pretraining(代码预训练系列)

热门文章

  1. no number java_java.lang.NumberFormatException问题!!!
  2. java 字符串contain_如何使用java.lang.String.contains()方法
  3. 异步数据加载和Tab选项卡
  4. bolt在java,java – 在Apache Storm中将不同的元组从1个spout发送到不同的bolt
  5. JAVA线程并发数量控制_Java并发工具类(三):控制并发线程数的Semaphore
  6. Java注解 编译_Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
  7. 计算机2020中级考试题,突发!2020年中级考试分值及评分标准大变!
  8. mysql怎么换引擎_如何更换MySQL默认存储引擎
  9. pg库和mysql的优缺点_MySQL与PostgreSQL的实际性能比较
  10. 细胞增殖曲线_两种月龄近交系五指山小型猪脂肪间充质干细胞生物学特性的比较...