Python 中 OLS 的 Newey-West 标准错误?

2024-02-19

我想要一个系数和与之相关的 Newey-West 标准误差。

我正在寻找可以执行以下 R 代码正在执行的操作的 Python 库(理想情况下,但任何可行的解决方案都可以):

library(sandwich)
library(lmtest)

a <- matrix(c(1,3,5,7,4,5,6,4,7,8,9))
b <- matrix(c(3,5,6,2,4,6,7,8,7,8,9))

temp.lm = lm(a ~ b)

temp.summ <- summary(temp.lm)
temp.summ$coefficients <- unclass(coeftest(temp.lm, vcov. = NeweyWest))

print (temp.summ$coefficients)

Result:

             Estimate Std. Error   t value  Pr(>|t|)
(Intercept) 2.0576208  2.5230532 0.8155281 0.4358205
b           0.5594796  0.4071834 1.3740235 0.2026817

我得到了系数以及与之相关的标准误差。

I see statsmodels.stats.sandwich_covariance.cov_hac http://statsmodels.sourceforge.net/devel/generated/statsmodels.stats.sandwich_covariance.cov_hac.html#statsmodels.stats.sandwich_covariance.cov_hac模块,但我不知道如何使其与 OLS 一起工作。


已编辑(2015 年 10 月 31 日)以反映首选编码风格statsmodels2015年秋季.

In statsmodels版本 0.6.1 您可以执行以下操作:

import pandas as pd
import numpy as np
import statsmodels.formula.api as smf

df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9],
                   'b':[3,5,6,2,4,6,7,8,7,8,9]})

reg = smf.ols('a ~ 1 + b',data=df).fit(cov_type='HAC',cov_kwds={'maxlags':1})
print reg.summary()

                                OLS Regression Results
==============================================================================
Dep. Variable:                      a   R-squared:                       0.281
Model:                            OLS   Adj. R-squared:                  0.201
Method:                 Least Squares   F-statistic:                     1.949
Date:                Sat, 31 Oct 2015   Prob (F-statistic):              0.196
Time:                        03:15:46   Log-Likelihood:                -22.603
No. Observations:                  11   AIC:                             49.21
Df Residuals:                       9   BIC:                             50.00
Df Model:                           1
Covariance Type:                  HAC
==============================================================================
                 coef    std err          z      P>|z|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      2.0576      2.661      0.773      0.439        -3.157     7.272
b              0.5595      0.401      1.396      0.163        -0.226     1.345
==============================================================================
Omnibus:                        0.361   Durbin-Watson:                   1.468
Prob(Omnibus):                  0.835   Jarque-Bera (JB):                0.331
Skew:                           0.321   Prob(JB):                        0.847
Kurtosis:                       2.442   Cond. No.                         19.1
==============================================================================

Warnings:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

或者您可以使用get_robustcov_results拟合模型后的方法:

reg = smf.ols('a ~ 1 + b',data=df).fit()
new = reg.get_robustcov_results(cov_type='HAC',maxlags=1)
print new.summary()


                                OLS Regression Results
==============================================================================
Dep. Variable:                      a   R-squared:                       0.281
Model:                            OLS   Adj. R-squared:                  0.201
Method:                 Least Squares   F-statistic:                     1.949
Date:                Sat, 31 Oct 2015   Prob (F-statistic):              0.196
Time:                        03:15:46   Log-Likelihood:                -22.603
No. Observations:                  11   AIC:                             49.21
Df Residuals:                       9   BIC:                             50.00
Df Model:                           1
Covariance Type:                  HAC
==============================================================================
                 coef    std err          z      P>|z|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      2.0576      2.661      0.773      0.439        -3.157     7.272
b              0.5595      0.401      1.396      0.163        -0.226     1.345
==============================================================================
Omnibus:                        0.361   Durbin-Watson:                   1.468
Prob(Omnibus):                  0.835   Jarque-Bera (JB):                0.331
Skew:                           0.321   Prob(JB):                        0.847
Kurtosis:                       2.442   Cond. No.                         19.1
==============================================================================

Warnings:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

默认为statsmodels与中等效方法的默认值略有不同R. The R方法可以等效于statsmodels默认值(我上面所做的)通过更改vcov,调用以下内容:

temp.summ$coefficients <- unclass(coeftest(temp.lm, 
               vcov. = NeweyWest(temp.lm,lag=1,prewhite=FALSE)))
print (temp.summ$coefficients)

             Estimate Std. Error   t value  Pr(>|t|)
(Intercept) 2.0576208  2.6605060 0.7733945 0.4591196
b           0.5594796  0.4007965 1.3959193 0.1962142

您仍然可以在 pandas 中执行 Newey-West (0.17),尽管我相信该计划是在 pandas 中弃用 OLS:

print pd.stats.ols.OLS(df.a,df.b,nw_lags=1)

-------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <x> + <intercept>

Number of Observations:         11
Number of Degrees of Freedom:   2

R-squared:         0.2807
Adj R-squared:     0.2007

Rmse:              2.0880

F-stat (1, 9):     1.5943, p-value:     0.2384

Degrees of Freedom: model 1, resid 9

-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
 --------------------------------------------------------------------------------
             x     0.5595     0.4431       1.26     0.2384    -0.3090     1.4280
     intercept     2.0576     2.9413       0.70     0.5019    -3.7073     7.8226
*** The calculations are Newey-West adjusted with lags     1

---------------------------------End of Summary---------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中 OLS 的 Newey-West 标准错误? 的相关文章

  • 有没有一种方法可以将python对象直接存储在mongoDB中而不需要序列化它们

    我在某处读到过 您可以使用 BSON 将 python 对象 更具体地说是字典 作为二进制文件存储在 MongoDB 中 但是现在我找不到任何与此相关的文档 有人知道具体如何做到这一点吗 没有办法在不序列化的情况下将对象存储在文件 数据库
  • 从 SHAP 值中获取特征重要性

    我想要获得重要功能的数据框 通过下面的代码 我得到了 shap values 但我不确定这些值的含义是什么 在我的 df 中有 142 个特征和 67 个实验 但得到了一个带有 ca 的数组 2500 个值 explainer shap T
  • 使用 Python 创建 MIDI

    本质上 我正在尝试从头开始创建 MIDI 并将它们放到网上 我对不同的语言持开放态度 但更喜欢使用Python 两种语言之一 如果这有什么区别的话 并且想知道我应该使用哪个库 提前致谢 看起来这就是您正在寻找的 适用于 Python 的简单
  • ctypes 错误:libdc1394 错误:无法初始化 libdc1394

    我正在尝试将程序编译为共享库 我可以使用 ctypes 在 Python 代码中使用该库 使用以下命令该库可以正常编译 g shared Wl soname mylib O3 o mylib so fPIC files pkg config
  • 无故运行测试时 PyCharm 抛出“AttributeError: 'module' object has no attribute”

    因此 我有一个 Django REST Framework 项目 有一天它无法在 PyCharm 中运行测试 从命令行我可以使用它们来运行它们paver or the manage py直接地 曾经有一段时间 当我们没有在文件顶部导入类的超
  • Pandas dataframe:每批行的操作

    我有一个熊猫数据框df我想计算每批行的一些统计信息 例如 假设我有一个batch size 200000 对于每批batch sizerows 我想要一列的唯一值的数量ID我的数据框 我怎样才能做这样的事情呢 这是我想要的一个例子 prin
  • 将二维数组放入 Pandas 系列中

    我有一个 2D Numpy 数组 我想将其放入 pandas 系列 而不是 DataFrame 中 gt gt gt import pandas as pd gt gt gt import numpy as np gt gt gt a np
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • 以编程方式使用 Sphinx 特定指令解析 .rst 文件

    我希望能够在 Python 中解析基于 sphinx 的 rst 以便进一步处理和检查 就像是 import sphinx p sphinx parse path to file rst do something with p 似乎在 do
  • Flask 应用程序的测试覆盖率不起作用

    您好 想在终端的 Flask 应用程序中测试 删除路由 我可以看到测试已经过去 它说 test user delete test app LayoutTestCase ok 但是当我打开封面时 它仍然是红色的 这意味着没有覆盖它 请有人向我
  • PIL - 需要抖动,但限制调色板会导致问题

    我是 Python 新手 正在尝试使用 PIL 来执行 Arduino 项目所需的解析任务 这个问题涉及到Image convert 方法以及调色板 抖动等选项 我有一些硬件能够一次仅显示 16 种颜色的图像 但它们可以指定为 RGB 三元
  • bs4 `next_sibling` VS `find_next_sibling`

    我在使用时遇到困难next sibling 并且类似地与next element 如果用作属性 我不会得到任何返回 但如果用作find next sibling or find next 然后就可以了 来自doc https www cru
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • tkinter:打开一个带有按钮提示的新窗口[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 用户如何按下 tkinter GUI 中的按钮来打开新窗口 我只需要非常简单的解决方案 如果代码也能被解释那就太好了 这
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d

随机推荐

  • 如何从 Swift 中的 valueChanged 事件获取触摸坐标

    背景 I ve 以前学过的 https stackoverflow com a 34764356 3681880如何使用手势识别器或continueTrackingWithTouch获取当前触摸位置的持续更新 然后使用它们执行如下操作 然而
  • 如何获取CodeAttribute中的属性值

    我写了一个方法来按属性获取属性值 public string GetAttributeValueByNameAttributeAndProperty CodeClass cc string nameAttribute string name
  • 如何在 Jenkins 的 url 中传递 credentialID

    我正在使用这个命令 sh git push https userid passwd innersource com scm raghu demo git 但我想使用 credentialsId f0079d43 9522 4133 9601
  • 在 Ruby 中冻结变量不起作用 [重复]

    这个问题在这里已经有答案了 我正在学习 Ruby 并且在使用时发现了有趣的行为Object freeze带变量的方法 在我冻结一个变量之后 或者Fixnum or Array 我还是可以修改的 这很奇怪 因为就我而言 这不应该发生 而且Ty
  • Pandas 通过正则表达式读取带有字符串分隔符的 CSV

    我正在尝试将格式奇怪的文本文件导入到 pandas DataFrame 中 下面是两个示例行 LOADED LANE 1 MAT TYPE 2 LEFFECT 1 SPAN 200 SPACE 10 BETA 3 474 LOADEFFEC
  • Javascript:用另一个函数重新分配一个函数

    假设我有这两个功能 function fnChanger fn fn function sys print Changed function foo sys print Unchanged 现在 如果我打电话foo I see Unchan
  • PHP“未选择数据库”

    我最近开始用 PHP 创建一个网站 我的大部分代码都可以工作 但是我发现了一个无法纠正的问题 我有一个页面 其中有很多对数据库的调用 在我的页面顶部 我正在连接并使用 SELECT 来获取有关相关产品的一些信息 在页面底部 我再次连接以获取
  • 如何使用 Zend Framework 2 中的插件渲染自定义视图

    我正在开发一个应用程序 需要在流程完成后发送电子邮件 由于电子邮件需要是 HTML 我有一个好主意 将视图渲染为电子邮件消息正文 以便我可以实现 单击此处在浏览器上查看此内容 功能 这一切都在实现 AbstractRestfulContro
  • 如何用 Maven 属性替换 web.xml 中的值?

    我有一个 Maven 项目 它将一些测试文件下载到其构建目录中 target files 然后 这些文件应该可供 servlet 使用 我可以通过将完整路径硬编码为
  • 如何跳过HTTP请求的AngularJS拦截器?

    我有一个 angularjs 应用程序 其中有一个拦截器 它将授权令牌添加到每个请求的标头中 然而 在应用程序的某个地方 我需要使用外部 API 拦截器会破坏它 因为它添加了这个外部 API 提供者不接受的授权标头 如何让 angularj
  • VS2013 Windows服务-如何制作安装程序?

    我写了一个Windows服务 我现在想将其打包到安装程序中 我使用了 VS2013 x86 Native Tools 命令提示符 然后使用了以下命令 要安装它 installutil httpapiservice exe 要卸载它 inst
  • 启动Spring Boot应用程序时liquibase的问题

    我有一个Spring Boot申请与liquibase 第一次我创建表格没有问题 但当我再次启动时 我遇到了无法解决的问题 这是error Error starting ApplicationContext To display the c
  • 读取外部网页的内容并获取特定元素[重复]

    这个问题在这里已经有答案了 可能的重复 如何用PHP解析和处理HTML https stackoverflow com questions 3577641 how to parse and process html with php 我已经
  • 如何确保我使用的是“服务器”JVM?

    Sun 的 JVM 有两种风格 client and server 其中服务器 VM 应针对长时间运行的进程进行优化 建议用于服务器应用程序 当我跑步时java如果没有参数 它会显示使用选项 其中包括以下文本 The default VM
  • 减小 EPS 格式的绘图大小

    我有一个包含数百个项目的直方图 我为其绘制了 Q Q 图 这导致 EPS 大小为 2 5 兆字节 对于仅包含在出版物中并且不会以 100 倍放大倍率查看的图形来说 这太大了 R 中是否有任何选项可以以某种方式输出较小的 EPS 我搜索过文档
  • 无法在任何地方运行 jupyter(终端、anaconda 分发器)Mac os 10.12.6

    我在终端中运行 jupyter 时遇到问题 运行后终端显示什么 maxim MacBook Pro Maxim jupyter notebook Traceback most recent call last File Library Fr
  • 如何在C#中获取Windows面板控件中的Keypress事件

    我想在 C 中的 Windows 面板控件中获取按键事件 对我有帮助吗 你应该处理面板按键 http msdn microsoft com en us library system windows forms panel keypress
  • 弹簧形式:输入数字

    我正在使用 Spring 的 form input 如下
  • VS 扩展中未处理的异常

    我尝试为自定义文件定义创建语法突出显示 加载时出现异常 我已将 log 参数添加到 devenv 以获取日志 335 ERROR System Exception Duplicate EditorFormatDefinition expor
  • Python 中 OLS 的 Newey-West 标准错误?

    我想要一个系数和与之相关的 Newey West 标准误差 我正在寻找可以执行以下 R 代码正在执行的操作的 Python 库 理想情况下 但任何可行的解决方案都可以 library sandwich library lmtest a lt