在回归分析中,应使用哪种算法在DV和IV中使用百分比功能?

时间:2019-07-08 10:31:52

标签: python statistics regression percentage feature-extraction

我正在使用回归分析服务器数据来查找功能重要性。

我的一些IV(独立变量)或X以百分比表示,如时间百分比,内核百分比,已使用资源百分比,而其他IV则以字节数等形式表示。

我用(X-X_mean)/X_stddev标准化了所有X。 (我这样做有错吗?)

如果我的IV是数字和%s的混合,并且在以下情况下我预测Y,我应该在Python中使用哪种算法:

  

情况1:预测连续值Y

     

a。使用Lasso回归是否足够?

     

b。如果X标准化并且是X,我该如何解释X系数   数值?

     

c。如果X标准化并且是X,我该如何解释X系数   %?

     

情况2:预测%ed值的Y,例如“已使用%资源”。

     

a。我应该使用Beta回归吗?如果是这样,Python中的哪个软件包提供了   这个吗?

     

b。如果X标准化并且是X,我该如何解释X系数   数值?

     

c。如果X标准化并且是X,我该如何解释X系数   %?

如果我对已经为%的Xs进行标准化处理有误,那么将这些数字用作30%的0.30以使其落在0-1范围内就可以了吗?因此,这意味着我不对它们进行标准化,我仍将对其他数字IV进行标准化。

  

案例1和案例2的最终目标

     

找出IV对Y的影响百分比。   例如:当X1增加1个单位时,Y增加21%

我从其他帖子中了解到,我们永远不能将所有系数加起来等于100,以评估每个IV对DV的影响百分比。我希望我在这方面是正确的。

2 个答案:

答案 0 :(得分:1)

混合使用预测变量对于任何形式的回归都无关紧要,这只会改变您解释系数的方式。然而,重要的是您的Y变量的类型/分布

  

情况1:预测连续值Y   a。使用Lasso回归是否足够?

常规OLS回归对此可以很好地工作

  

b。如果X标准化并且是X,我该如何解释X系数   数值?

系数的解释总是遵循“对于X的1单位变化,我们期望Y的x系数变化量,同时保持其他预测变量不变”的格式。

因为您已标准化X,所以您的单位是标准偏差。因此解释为“对于X的1个标准偏差变化,我们期望Y的X系数变化量...”

  

c。如果X标准化并且是X,我该如何解释X系数   %?

与上述相同。尽管单位最初是来自某个百分比,但您的单位仍然是标准偏差

  

情况2:预测%ed值的Y,例如使用的%资源。

     

a。我应该使用Beta回归吗?如果是这样,Python中的哪个软件包提供了   这个吗?

这很棘手。通常的建议是,当您的Y结果是百分比时,使用二项式logistic回归。

  

b。如果X标准化并且是X,我该如何解释X系数   数值?

     

c。如果X标准化并且是X,我该如何解释X系数   %?

与上述解释相同。但是,如果您使用逻辑回归,则它们以对数赔率为单位。我建议阅读Logistic回归,以更深入地了解其工作原理

  

如果我在标准化已经为%的Xs时出错,是吗   可以将这些数字设为0.30表示30%,以便它们落在   范围0-1?所以这意味着我不对它们进行标准化,我仍然   标准化其他数字IV。

标准化对于回归变量非常好,但是就像我说的那样,因为您的单位现在是标准偏差,所以它会改变您的解释

  

案例1和案例2的最终目标

     

找出IV对Y的影响百分比。例如:当X1增加1个单位时,   Y增加了21%

如果您的Y是一个百分比,并且使用了类似OLS回归的方法,那么这正是您解释系数的方式(对于X1的1单位更改,Y会更改一些百分比)

答案 1 :(得分:0)

您的问题使一些概念混乱,并使许多术语混乱。本质上,您是在问 a)(线性)回归的特征预处理,b)线性回归系数的可解释性以及c)敏感性分析(特征X_i对Y的影响)。但是要小心,因为您要假设Y线性依赖于每个X_i,请参见下文。

  1. 标准化不是一种“算法”,只是一种预处理数据的技术。
  2. 回归需要标准化,但基于树的算法(RF / XGB / GBT)则不需要标准化-使用这些算法,您可以直接输入原始数字特征(百分比,总计,等等)。
  3. (X-X_mean)/X_stddev 不是标准化,而是标准化。
    • (替代方法是(true)标准化,即:(X-X_min)/(X_max-X_min),它将每个变量转换为[0,1]范围;也可以将其转换为[0, 1]。
  4. 最后,您想了解回归中的敏感性分析:我们能否直接将X_i的回归系数解释为Y对X_i的敏感性?
    • 停止并考虑您在“两种情况下的最终目标中的基本线性假设:查找IV对Y的影响百分比。例如:当X1增加1个单位时,Y增加21% “
    • 您假设因变量与每个自变量具有线性关系。但这通常不是事实,可能是非线性的。例如,如果您正在查看年龄对薪资的影响,通常会看到它增加到40s / 50s,然后逐渐下降,而当您达到退休年龄(例如65岁)时,急剧下降。
    • 因此,您可以通过抛出Age ^ 2甚至是Age ^ 3项来将Age对薪金的影响建模为二次多项式或高阶多项式(否则有时您可能会看到sqrt(X),{{1 }},log(X)log1p(X)等术语。最能反映非线性关系的任何事物。您可能还会看到变量-变量交互作用术语,尽管回归严格地假设变量彼此不相关。 / li>
    • 显然,年龄对薪金有巨大影响,但我们不会通过结合年龄,年龄^ 2,年龄^ 3的(绝对值)来衡量薪金对年龄的敏感性。
    • 如果我们仅对年龄使用线性项,则年龄的单一系数会大大低估年龄对薪资的影响,它将净“平均化”年龄在40岁以下政权与负关系之间的强积极关系年龄> 50
  5. 所以the general answer to "Can we directly interpret the regression coefficient for X_i as the sensitivity of Y on X_i?" is "Only if the relationship between Y and that X_i is linear, otherwise no"
  6. 通常,基于灵敏度的树形算法(RF / XGB / GBT)是一种更好,更轻松的方法(不假设线性响应或无需对%功能进行标准化)强大的功能重要性。
    • 顺便说一句,我理解您的练习告诉您使用回归,但是通常您会从基于树的(RF / XGB)中获得更好的功能重要性信息,尤其是对于浅树(max_depth值较小,节点大小的值,例如>训练集大小的0.1%)。这就是为什么人们使用它的原因,即使他们的最终目标是回归。

(您的问题是在CrossValidated会得到更好的答案,但是最好还是在这里讲,有交叉)。