【问题标题】:Regression summary output: Order of categories回归汇总输出:类别顺序
【发布时间】:2014-09-23 14:00:42
【问题描述】:

这个问题是关于打印 GLM 的结果的方式,即打印系数的顺序。我所说的“顺序”并不是指该术语的任何统计含义。

以下代码确定线性模型:

from pandas import *
import statsmodels.api as sm
import patsy as patsy

df = read_csv("http://vincentarelbundock.github.io/Rdatasets/csv/ggplot2/diamonds.csv")

y, X = patsy.dmatrices( 'price ~  cut', data = df )

sm.GLM( y, X, family= sm.families.Gaussian()  ).fit().summary()

... 并产生下面的输出,其中的类别是按顺序排列的:

(一般)、好、理想、优质、非常好

====================================================================================
                       coef    std err          z      P>|z|      [95.0% Conf. Int.]
------------------------------------------------------------------------------------
Intercept         4358.7578     98.788     44.122      0.000      4165.137  4552.379
cut[T.Good]       -429.8933    113.849     -3.776      0.000      -653.034  -206.753
cut[T.Ideal]      -901.2158    102.412     -8.800      0.000     -1101.939  -700.493
cut[T.Premium]     225.4999    104.395      2.160      0.031        20.889   430.111
cut[T.Very Good]  -376.9979    105.164     -3.585      0.000      -583.116  -170.880
====================================================================================

我想要做什么:

我希望它们像这样订购:

(一般)、好、非常好、优质、理想

我正在尝试做的事情在 R 中看起来像这样:

df = read.table( file = "http://vincentarelbundock.github.io/Rdatasets/csv/ggplot2/diamonds.csv",
            sep = ",",  header = TRUE)


df$cut = factor( df$cut, levels = c("Fair", "Good", "Very Good", "Premium", "Ideal"))

glm( price ~ cut, data = df, family = gaussian  )

注意输出中的排序遵循因​​子排序:

(一般)、好、非常好、优质、理想

Call:  glm(formula = price ~ cut, family = gaussian, data = df)

Coefficients:
 (Intercept)       cutGood  cutVery Good    cutPremium      cutIdeal  
      4358.8        -429.9        -377.0         225.5        -901.2

如何在 Python 中做到这一点?

【问题讨论】:

  • 我想指出cut 是diamonds 数据集中的一个适当的因素。如果您没有使其无序,glm 将使用多项式对比。你应该重新考虑你在做什么。
  • 谢谢。分析只是一个例子。我所说的“有序”不是指统计意义,问题只是关于它们在输出中的打印顺序。我将进行编辑以澄清这一点。

标签: python r pandas statsmodels


【解决方案1】:

这是一个已知问题。我相信 PR 会受到欢迎。也许在这里继续对话?

https://github.com/pydata/patsy/issues/27

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2013-02-28
    • 2021-12-18
    • 2021-05-05
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多