Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么当我试图拟合线性混合效应模型时,状态模型会抛出一个IndedxError?

为什么当我试图拟合线性混合效应模型时,状态模型会抛出一个IndedxError?
EN

Stack Overflow用户
提问于 2016-02-24 01:29:11
回答 1查看 1.6K关注 0票数 6

鉴于这一守则:

代码语言:javascript
运行
AI代码解释
复制
import statsmodels.api as sm
import statsmodels.formula.api as smf

df.reset_index(drop=True, inplace=True)
display(df.describe())
md = smf.mixedlm("c ~ iscorr", df, groups=df.subnum)
mdf = md.fit()

如果dfpandas.DataFrame,则从smf.mixedlm中得到以下错误

代码语言:javascript
运行
AI代码解释
复制
IndexError                                Traceback (most recent call last)
<ipython-input-34-5373fe9b774a> in <module>()
      4 df.reset_index(drop=True, inplace=True)
      5 display(df.describe())
----> 6 md = smf.mixedlm("c ~ iscorr", df, groups=df.subnum)
      7 # mdf = md.fit()

/home/lthibault/.pyenv/versions/3.5.0/lib/python3.5/site-packages/statsmodels/regression/mixed_linear_model.py in from_formula(cls, formula, data, re_formula, subset, *args, **kwargs)
    651                                                subset=None,
    652                                                exog_re=exog_re,
--> 653                                                *args, **kwargs)
    654 
    655         # expand re names to account for pairs of RE

/home/lthibault/.pyenv/versions/3.5.0/lib/python3.5/site-packages/statsmodels/base/model.py in from_formula(cls, formula, data, subset, *args, **kwargs)
    148         kwargs.update({'missing_idx': missing_idx,
    149                        'missing': missing})
--> 150         mod = cls(endog, exog, *args, **kwargs)
    151         mod.formula = formula
    152 

/home/lthibault/.pyenv/versions/3.5.0/lib/python3.5/site-packages/statsmodels/regression/mixed_linear_model.py in __init__(self, endog, exog, groups, exog_re, use_sqrt, missing, **kwargs)
    537 
    538         # Split the data by groups
--> 539         self.endog_li = self.group_list(self.endog)
    540         self.exog_li = self.group_list(self.exog)
    541         self.exog_re_li = self.group_list(self.exog_re)

/home/lthibault/.pyenv/versions/3.5.0/lib/python3.5/site-packages/statsmodels/regression/mixed_linear_model.py in group_list(self, array)
    671         if array.ndim == 1:
    672             return [np.array(array[self.row_indices[k]])
--> 673                     for k in self.group_labels]
    674         else:
    675             return [np.array(array[self.row_indices[k], :])

/home/lthibault/.pyenv/versions/3.5.0/lib/python3.5/site-packages/statsmodels/regression/mixed_linear_model.py in <listcomp>(.0)
    671         if array.ndim == 1:
    672             return [np.array(array[self.row_indices[k]])
--> 673                     for k in self.group_labels]
    674         else:
    675             return [np.array(array[self.row_indices[k], :])

IndexError: index 7214 is out of bounds for axis 1 with size 7214

为什么会发生此错误?len(df)报告说有7296行,因此不应该有问题对7214行进行索引,并且显式的重新索引确保索引范围从零到7295。

如果你愿意,你可以下载df 这里来摆弄它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 01:46:39

iscorr中有82个null值

代码语言:javascript
运行
AI代码解释
复制
>>> df.iscorr.isnull().sum()
82

放下它们,你就会没事的:

代码语言:javascript
运行
AI代码解释
复制
df = df[df.iscorr.notnull()]

根据函数的docstring:

代码语言:javascript
运行
AI代码解释
复制
    Notes
    ------
    `data` must define __getitem__ with the keys in the formula
    terms args and kwargs are passed on to the model
    instantiation. E.g., a numpy structured or rec array, a
    dictionary, or a pandas DataFrame.

    If `re_formula` is not provided, the default is a random
    intercept for each group.

    This method currently does not correctly handle missing
    values, so missing values should be explicitly dropped from
    the DataFrame before calling this method.
    """

输出:

代码语言:javascript
运行
AI代码解释
复制
>>> mdf.params
Intercept         0.032000
iscorr[T.True]    0.030670
Intercept RE     -0.057462
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35598166

复制
相关文章
如何在 Git 上更改分支名称?
在 Git 版本控制系统中,分支是非常重要的概念。分支允许你在项目中进行并行开发和实验,同时保持主分支的稳定性。有时候,你可能需要更改已存在的分支名称,例如纠正拼写错误或者为了更好地描述分支的内容。本文将详细介绍如何在 Git 上更改分支名称。
网络技术联盟站
2023/06/19
2K0
如何在 Git 上更改分支名称?
更改Linux网卡名称
转载自:https://blog.csdn.net/yeziand01/article/details/88424624
zy010101
2019/07/02
5.5K0
更改Linux网卡名称
如何在Linux中更改SSH端口?
SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。
网络技术联盟站
2023/05/25
9.9K0
如何在Linux中更改SSH端口?
如何在Ubuntu上修复Grub 2
Grub 2与以前版本中最受欢迎且广泛使用的启动管理器相比,已经是一个期待已久且非常重要的升级。 支持新的文件系统,主题,改进的飞溅功能,更好的国际化,电源引导,动态模块加载和脚本支持。 所有这一切都是伟大的,但事情仍然会出错,意外突破。 这基本上意味着可启动分区(操作系统)可能无法访问,这就是为什么Grub v2提供了强大的营救模式。 现在使用这种模式,对于大多数没有经验的用户而言,可能不会在公园里散步,所以这里有一个关于如何使用Boot Repair工具轻松修复Grub的指南。
子润先生
2021/06/14
1.7K0
如何在 Linux 中更改主机名?
在 Linux 系统中,主机名是用于标识和区分网络上的不同计算机的名称。默认情况下,Linux 发行版会分配一个主机名给您的计算机,但是有时候您可能需要根据自己的需求更改主机名。在本文中,我们将详细介绍如何在 Linux 中更改主机名,以及更改主机名后可能涉及到的其他配置。
网络技术联盟站
2023/06/09
9.1K0
如何在 Linux 中更改主机名?
如何在 Linux 中更改 Nginx 80 端口?
Nginx 是一个开源的轻量级 Web 服务器替代 apache 来处理高流量的网站。
网络技术联盟站
2022/06/21
5.7K0
如何在 Linux 中更改 Nginx 80 端口?
如何在Linux中更改用户ID?
在Linux系统中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的权限和资源访问。有时候,我们需要更改用户ID,可能是为了解决冲突、重组用户组或其他管理需求。本文将详细介绍如何在Linux中更改用户ID的几种方法。
网络技术联盟站
2023/06/08
8.9K0
如何在Linux中更改用户ID?
如何在 Linux 中更改 Apache HTTP 端口?
Apache Web Server 是一个免费的开源跨平台 Web 服务器应用程序,用于通过 Internet 提供内容。
网络技术联盟站
2022/06/21
6.6K0
如何在 Linux 中更改 Apache HTTP 端口?
Oracle 更改表名称的几种方式
ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)
全栈程序员站长
2022/08/29
5.4K0
如何更改用户账户的名称?
是山河呀
2025/03/22
4740
更改WordPress插件的菜单名称
如果您想在不直接编辑插件的情况下更改WordPress内部管理菜单的名称,您可以使用$menuWordPress管理员中存在的全局变量。操作此数据结构将允许您更改由任何插件添加的管理菜单的文本或名称。这在您希望提供项目内容的清晰度或为客户端提供更好的管理UX的情况下非常有用。
许都博客
2021/06/15
4.1K0
如何在 Linux 中更改默认 ssh 端口 22?
SSH 服务使用的标准端口是 22/TCP。但是,您可能希望更改 SSH 默认端口 22,以确保您的服务器尽可能安全,因为标准 22/TCP 端口一直是互联网上黑客和机器人程序漏洞的目标。
会长君
2023/04/25
4.8K0
如何在Linux中更改SSH远程登录端口
SSH:短于安全Shell,SSH(由SSH通信安全公司开发)是用于远程登录安全协议。 使用SSH客户端,用户可以连接到服务器以比其他方法(例如telnet)更安全的方式传输信息。到右侧的图像是SSH会话,它使用一个命令行界面,可如何外观的示例。 SSH默认为端口22。
星哥玩云
2022/07/29
4.2K0
Eclipse内更改项目的jdk版本
今天在给客户做外包的时候发现了一个bug,那就是他电脑上的eclipse总是各种问题,现在记录一下。
程序员洲洲
2024/06/07
2210
Eclipse内更改项目的jdk版本
phpcms调取当前栏目的描述及当前栏目的名称
在我们填写了栏目描述,怎么调用出来。 调用文章位置导航 {catpos($catid)} 调用当前栏目链接 {$CATEGORYS[$catid][url]} 调用当前栏目名称 {$CATEGORYS[$catid][catname]} 调用当前栏目的描述调用出来 {$CATEGORYS[$catid][description]}
李维亮
2021/07/09
3.6K0
如何更改滚动条样式?
如何自定义浏览器的滚动条呢,下面给大家讲解一下,其实很简单,通过设定css样式就可以实现。
申霖
2019/12/27
2.7K0
如何更改滚动条样式?
如何在 Eclipse 中更改注释块的 @author 版权信息?
我们在使用 IDE——Ecilpse 进行开发,需要注明版权信息的时候,如果不更改默认设置的话,在注释块 @author 的内容就是电脑系统默认的,例如下图所示。为了开发方便就需要进行修改。
白鹿第一帅
2021/03/02
5K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
如何在Ubuntu中安装多个终端以及更改默认终端
终端是任何Linux系统的关键部分。它允许您通过shell访问Linux系统。虽说现在的Linux发行版,比如Ubuntu,CentOS等已经基本上可以采用GUI来完成绝大部分一般性的任务。但是,终端程序对于Linux用户来说仍是必不可少的。
会长君
2023/04/26
4.6K0
Flutter中修改Android项目的应用名称、应用图标、应用启动画面
在 android ▸ app ▸ src ▸ main▸ AndroidManifest.xml 中修改 android:label="你的应用名称"。
越陌度阡
2021/03/02
1.2K0
Flutter中修改Android项目的应用名称、应用图标、应用启动画面
Android实战经验之Kotlin中快速实现动态更改应用图标和名称
在 Android 中动态更改应用图标和名称并不是一个常见的需求,并且由于 Android 系统的限制,这样的操作也较为复杂。不过,通过一些技巧和配置,还是可以实现这些功能。下面是详细的步骤和示例代码。
AntDream
2024/08/02
4350
Android实战经验之Kotlin中快速实现动态更改应用图标和名称

相似问题

Grub菜单,如程序

10

更改设备名称的Grub密码设备?

10

如何在Windows中更改GRUB引导配置?

50

在grub 1.99中添加Chakra os benz

10

如何在grub.conf中更改内核路径?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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