跳转到主要内容

Python的线性面板、工具变量、资产定价和系统回归模型

项目描述

线性模型

度量
最新版本 PyPI version
持续集成 Build Status
覆盖率 codecov
代码质量 Codacy Badge
codebeat badge
引用 DOI

Python的线性(回归)模型。扩展了 statsmodels,增加了面板回归、工具变量估计量、系统估计量和估计资产价格的模型

  • 面板模型:

    • 固定效应(双向最大二阶)
    • 一阶差分回归
    • 面板数据的估计量
    • 面板数据的汇总回归
    • Fama-MacBeth估计面板模型
  • 高维回归:

    • 吸收最小二乘法
  • 工具变量估计量

    • 两阶段最小二乘法
    • 有限信息最大似然法
    • k类估计量
    • 广义矩估计法,并可连续更新
  • 因子资产定价模型:

    • 2步和3步估计
    • 时间序列估计
    • 广义矩估计(GMM估计)
  • 系统回归:

    • 似不相关回归(SUR/SURE)
    • 三阶段最小二乘法(3SLS)
    • 广义矩(GMM)系统估计

设计用于与NumPy、Pandas或xarray数据同样良好地工作。

面板模型

类似于statsmodels,支持用于指定模型的公式。例如,经典的Grunfeld回归可以这样指定

import numpy as np
from statsmodels.datasets import grunfeld
data = grunfeld.load_pandas().data
data.year = data.year.astype(np.int64)
# MultiIndex, entity - time
data = data.set_index(['firm','year'])
from linearmodels import PanelOLS
mod = PanelOLS(data.invest, data[['value','capital']], entity_effects=True)
res = mod.fit(cov_type='clustered', cluster_entity=True)

模型也可以使用公式接口进行指定。

from linearmodels import PanelOLS
mod = PanelOLS.from_formula('invest ~ value + capital + EntityEffects', data)
res = mod.fit(cov_type='clustered', cluster_entity=True)

PanelOLS的公式接口支持特殊的值EntityEffectsTimeEffects,分别添加实体(固定)和时间效应。

公式支持来自formulaic包,该包是patsy的替代品。

工具变量模型

IV回归模型可以类似地指定。

import numpy as np
from linearmodels.iv import IV2SLS
from linearmodels.datasets import mroz
data = mroz.load()
mod = IV2SLS.from_formula('np.log(wage) ~ 1 + exper + exper ** 2 + [educ ~ motheduc + fatheduc]', data)

[ ]中的表达式表示内生回归变量(在~之前)和工具变量。

安装

可以使用pip安装最新版本

pip install linearmodels

可以通过克隆repo并运行setup来安装主分支

git clone https://github.com/bashtage/linearmodels
cd linearmodels
pip install .

文档

稳定文档Stable Documentation是使用doctr在每个打上标签的版本上构建的。开发文档在主分支的每次成功构建上自动构建。

计划和状态

最终应该添加一些有用的线性模型估计量,例如面板回归。目前只有单变量IV估计量已完善。

  • 线性工具变量估计 - 完成
  • 线性面板模型估计 - 完成
  • Fama-MacBeth回归 - 完成
  • 线性因子资产定价 - 完成
  • 系统回归 - 完成
  • 线性IV面板模型估计 - 未开始
  • 动态面板模型估计 - 未开始

需求

运行

  • Python 3.9+
  • NumPy (1.22+)
  • SciPy (1.8+)
  • pandas (1.4+)
  • statsmodels (0.12+)
  • formulaic (1.0.0+)
  • xarray (0.16+, 可选)
  • Cython (3.0.10+, 可选)

测试

  • py.test

文档

  • sphinx
  • sphinx-immaterial
  • nbsphinx
  • nbconvert
  • nbformat
  • ipython
  • jupyter

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

linearmodels-6.1.tar.gz (1.8 MB 查看哈希)

上传于 源代码

构建版本

linearmodels-6.1-cp313-cp313-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 Windows x86-64

linearmodels-6.1-cp313-cp313-musllinux_1_2_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 musllinux: musl 1.2+ x86-64

linearmodels-6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ x86-64

linearmodels-6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ ARM64

linearmodels-6.1-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 macOS 11.0+ ARM64

linearmodels-6.1-cp313-cp313-macosx_10_13_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.13 macOS 10.13+ x86-64

linearmodels-6.1-cp312-cp312-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

linearmodels-6.1-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.2+ x86-64

linearmodels-6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

linearmodels-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

linearmodels-6.1-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

linearmodels-6.1-cp312-cp312-macosx_10_13_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 macOS 10.13+ x86-64

linearmodels-6.1-cp311-cp311-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

linearmodels-6.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

linearmodels-6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

linearmodels-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

linearmodels-6.1-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

linearmodels-6.1-cp311-cp311-macosx_10_9_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

linearmodels-6.1-cp310-cp310-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

linearmodels-6.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ x86-64

linearmodels-6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

linearmodels-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

linearmodels-6.1-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

linearmodels-6.1-cp310-cp310-macosx_10_9_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

linearmodels-6.1-cp39-cp39-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

linearmodels-6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

linearmodels-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

linearmodels-6.1-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

linearmodels-6.1-cp39-cp39-macosx_10_9_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

由以下支持