首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么当我试图拟合线性混合效应模型时,状态模型会抛出一个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

复制
相关文章
SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作
版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50416819
王小雷
2019/05/27
7080
SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集
本文介绍了SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集,以及使用SAS/ACCESS接口引擎进行数据库访问和SQL查询的方法。
王小雷
2018/01/02
2.1K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
王小雷
2018/01/02
1.7K0
CAN总线简介:如何以编程方式控制汽车
最近,我正与Voyage公司的朋友合作研究,以实现福特Fusion空调系统(A/C)的编程控制。目前,Voyage公司正努力打造自动驾驶的终极目标:能够以低廉的价格成本和广泛的投放范围,把世界任何地方有用车需求的人们安全自动地送达目的地。对Voyage来说,在真正实现不需司机的无人驾驶之后,必须给予后座乘客对车辆关键功能的访问控制权。 Voyage Auto:硅谷自动自动驾驶出租车初创公司,由专注机器学习、人工智能等方面的在线培训机构Udacity于2017年4月成立,在无人驾驶领域,Voyage将与谷
FB客服
2018/02/28
3.6K0
CAN总线简介:如何以编程方式控制汽车
SAS-编程中的小技巧
今天分享的是SAS软件使用过程的中的几个小技巧,掌握了一些小技巧,编程的效率会提高的更快,还能减少敲代码出错率,好处很多,小编就不一一赘述了。 ----Setup~ 1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。改键的使用,可实现设置代码块,以后只敲击代码块的缩写,自动就弹出代码。 01 看效果 1.以输入CSV为例 2.输入回车
企鹅号小编
2018/02/05
1.7K0
SAS-编程中的小技巧
SAS-编程中的小技巧
今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。改键的使用,可实现设置代码块,以后只敲击代码块的缩写,自动就弹出代码。
Setup
2019/10/21
1.5K0
SAS进阶《深入解析SAS》之对多数据集的处理
本文介绍了SAS中数据集纵向串接和横向合并的方法,包括使用DATA步、SET语句、APPEND过程、MERGE语句等方法。同时,还介绍了如何通过数据集选项IN=操作观测和更新UPDATA语句对数据集进行更改。最后,介绍了数据集的更改和更新语句的注意事项和具体操作方法。
王小雷
2018/01/02
1.6K0
java中获得文件大小代码
  根据指定文件创建FileInputStream,调用available方法返回文件大小,容量为byte                 File file = new File("d:\hello.gif");                 FileInputStream fis = null;                 try{                     fis = new FileInputStream(file);                       Syst
闵开慧
2018/03/30
1.1K0
SAS-编程中的小技巧(九)
新年的第一篇推文,一直打算写一点什么,小编辗转反侧、思来想去,发现编程中的小技巧已经写了八篇,如果在写一篇,那便是第九篇,与2019年的9有遥相呼应之势!好像做为新年的第一篇是一件很吉祥的事情。于是,在着实没什么内容想写的情况之下,今天小编打算分享一点编程中的小技巧。
Setup
2019/10/20
8980
SAS-编程中的小技巧(二)
嗯,这是一篇SAS编程的中的小技巧,不知是否记得小编之前写过一篇SAS-编程中的小技巧(可点击跳转),嗯,这又是一些编程中相关的小技巧。接下来小编将一一介绍这几个小技巧。
Setup
2019/10/21
1.1K0
SAS-编程中的小技巧(二)
SAS-编程中的小技巧(六)
前段时间有人问小编,批量执行ods输出文件时,总是弹出并打开输出的文件,有没有办法关闭呢?你是否也遇到这样的问题,而找遍ods相关的Option仍无法解决呢?解决办法其实还是很简单的。下面来看看怎么解决。
Setup
2019/10/20
1.7K0
SAS-编程中的小技巧(十一)
“一鼓作气再而衰三而竭”,趁着还没有衰,于是小编就又开始写推文了。许久未写编程中的小技巧了,今天小编打算分享一下编程中的小技巧。
Setup
2019/10/19
9440
SAS-编程中的小技巧(十一)
SAS-编程中的小技巧(三)
这又是一篇SAS编程中的小技巧,这次要说的是SAS中数据字典与Macro结合起来的使用技巧,以及数据集删除、保存等技巧....
Setup
2019/10/20
2.4K0
SAS-编程中的小技巧(八)
很久没写公众号了...也积累很多想要分享的小技巧,奈何一直苦于工作繁忙,诸事繁多无暇分身...在即将要忘掉所有想分享的小技巧的前一秒想起了公众号还没写呢...最近一直在写报告,用SAS输出RTF,所有啊,今天打算分享的也是RTF输出相关的小技巧...
Setup
2019/10/20
1.6K0
SAS-编程中的小技巧(七)
虽然难以启齿,但是花费巨额的代价买的教训,还是想分享给大家。“驾驶有风险,开车需谨慎”
Setup
2019/10/20
9260
SAS-编程中的小技巧(四)
SAS软件初始配置,其实是设置了自动保存代码的功能,好像是每10分钟保存一次,这个时间小编觉得有点长,毕竟10分钟能敲下好多代码...所以啊,就看看如何设置把这个时间给调小一下...
Setup
2019/10/21
1.4K0
SAS-编程中的小技巧(四)
SAS-编程中的小技巧(十)
果然是不动脑筋久了就会变蠢,最近小编写程序感觉变蠢了许多。思来想去究其原因发现是公众号许久未更了。为了不让愚蠢延续下去,今天小编打算分享一些SAS编程相关的小技巧。
Setup
2019/10/20
1K0
【从零开始学SAS】1、创建时间序列SAS数据集
注:intnx函数的三个参数,第一个参数是指定等时间间隔,可以是day week monthquarter year等。第二个参数是指定参照时间。第三个参数是_n_k,用来调整开始观测指针,k为正整数时指针由参照时间向未来拨k期;k取负整数时反之。
统计学家
2019/04/10
2.2K0
【从零开始学SAS】1、创建时间序列SAS数据集
SAS-编程中的小技巧(十二)
懒惰的小编好像开启了一月一更的模式了,许久未写编程中的小技巧了,于是今天小编打算分享几个编程中的小技巧。
Setup
2019/10/31
1.9K0
网络编程中的大小端
在计算机领域,大小端(Endianness)是指字节序的排列顺序。简单来说,就是存储器中多字节数据的字节序列,从高到低或从低到高的顺序不同。那么,何谓大小端呢?
李述铜
2023/05/01
8240

相似问题

以适当的方式显示时间

25

UIDatePicker没有显示适当的时间

26

消息对话框在错误的时间显示

30

在上载时间显示适当的消息

30

为什么我的文本框在jquery中不返回任何适当的值?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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