跳转到主要内容

Wilkinson公式的实现。

项目描述

Formulaic

PyPI - Version PyPI - Python Version PyPI - Status build docs codecov Code Style

Formulaic是Python中Wilkinson公式的性能实现。

它提供

  • 高性能的dataframe到模型矩阵的转换。
  • 支持在转换一个数据集时所做的编码选择在其它数据集上重用。
  • 可扩展的公式解析。
  • 可扩展的数据输入/输出插件,包括对以下内容的实现:
    • 输入
      • pandas.DataFrame
      • pyarrow.Table
    • 输出
      • pandas.DataFrame
      • numpy.ndarray
      • scipy.sparse.CSCMatrix
  • 支持公式的符号微分(因此是模型矩阵)。
  • 以及更多。

示例代码

import pandas
from formulaic import Formula

df = pandas.DataFrame({
    'y': [0, 1, 2],
    'x': ['A', 'B', 'C'],
    'z': [0.3, 0.1, 0.2],
})

y, X = Formula('y ~ x + z').get_model_matrix(df)

y =

y
0 0
1 1
2 2

X =

截距 x[T.B] x[T.C] z
0 1.0 0 0 0.3
1 1.0 1 0 0.1
2 1.0 0 1 0.2

注意上述内容可以简写为

from formulaic import model_matrix
model_matrix('y ~ x + z', df)

基准测试

公式法通常在密集和稀疏模型矩阵方面优于R,并且在密集矩阵方面远优于patsy(Python的现有实现)(patsy不支持稀疏模型矩阵输出)。

Benchmarks

有关更多详细信息,请参阅此处

相关项目和现有技术

  • Patsy:Python中Wilkinson公式的先前实现,广泛应用于(例如在statsmodels中)。它拥有出色的文档(这有助于启动此项目),以及丰富的功能集。
  • StatsModels.jl @formula:Julia中Wilkinson公式的实现。
  • R公式:R中Wilkinson公式的实现,详细介绍见此处。[R本身是S的实现,其中公式首先被广泛使用]。]
  • 一切的开始:Wilkinson, G. N. 和 C. E. Rogers. 方差分析因子模型的符号描述。皇家统计学会会刊 22,第 392–399 页,1973 年。

使用情况

以下是一些使用Formulaic的项目

  • Glum(具有所有功能的Python高性能GLM)。
  • Lifelines(Python中的生存分析)。
  • Linearmodels(statsmodels中缺少的额外线性模型,包括工具变量和面板数据模型)。
  • Pyfixest(遵循fixest语法的Python快速高维固定效应回归)。
  • Tabmat(用于处理表格数据的有效矩阵表示)。
  • 在此处添加您的项目!

项目详情


下载文件

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

源分布

formulaic-1.0.2.tar.gz (430.7 kB 查看哈希

上传时间:

构建分布

formulaic-1.0.2-py3-none-any.whl (94.5 kB 查看哈希

上传时间: Python 3

由以下支持