在回归中,我的DV和IV中的百分比特征使用哪种算法?

2024-06-09 19:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用回归分析服务器数据,以找到功能的重要性。你知道吗

我的一些IVs(自变量)或Xs是以百分比表示的,比如时间百分比、%内核百分比、%使用的资源百分比,而另一些是以字节数等数字表示的

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

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

Case 1: Predict a continuous valued Y

a.Will using a Lasso regression suffice?

b. How do I interpret the X-coefficient if X is standardized and is a numeric value?

c. How do I interpret the X-coefficient if X is standardized and is a %?

Case 2: Predict a %-ed valued Y, like "% resource used".

a. Should I use Beta-Regression? If so which package in Python offers this?

b. How do I interpret the X-coefficient if X is standardized and is a numeric value?

c. How do I interpret the X-coefficient if X is standardized and is a %?

如果我在标准化已经是%的x时出错了,那么用这些数字作为0.30代表30%好吗,这样它们就在0-1的范围内了?所以这意味着我没有标准化它们,我仍然会标准化其他的数字IVs。你知道吗

Final Aim for both Cases 1 and 2:

To find the % of impact of IVs on Y. e.g.: When X1 increases by 1 unit, Y increases by 21%

我从其他帖子中了解到,我们永远无法将所有系数相加到100来评估每个静脉注射对DV的影响百分比。我希望我在这方面是正确的。你知道吗


Tags: andtheifis数字dopredicthow
2条回答

你的问题混淆了一些概念,混淆了许多术语。本质上你在问a)线性回归的特征预处理,b)线性回归系数的可解释性,以及c)敏感性分析(特征X对Y的影响)。但是要小心,因为你正在做一个巨大的假设,Y是线性依赖于每个X\u 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的灵敏度吗?
    • 停下来想想你在“两种情况的最终目标1和2:找出IVs对Y的影响百分比”中潜在的线性假设。例如:当X1增加1个单位时,Y增加21%“。你知道吗
    • 假设因变量与每个自变量之间存在线性关系。但事实往往并非如此,它可能是非线性的。例如,如果你正在研究年龄对薪水的影响,你通常会看到它会增加到40/50,然后逐渐减少,当你达到退休年龄(比如65岁)时,会急剧减少。你知道吗
    • 所以,你可以用二次多项式或更高阶多项式来模拟年龄对工资的影响,通过加入年龄^2和年龄^3项(或者有时你会看到sqrt(X)log(X)log1p(X)exp(X)等项)。任何最能捕捉非线性关系的东西。您还可以看到变量交互项,尽管回归严格假设变量之间不相关。)
    • 显然,年龄对工资有很大的影响,但我们不会通过结合年龄、年龄^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)中获得更快的特性重要性信息,特别是对于浅树(最大深度值较小,节点大小值较大,例如训练集大小的>0.1%)。这就是为什么人们使用它,即使他们的最终目标是回归。你知道吗

(你的问题是在CrossValidated会得到更好的答案,但离开这里没关系,所以有一个交叉点)。你知道吗

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

Case 1: Predict a continuous valued Y a.Will using a Lasso regression suffice?

常规OLS回归可以很好地解决这个问题

b. How do I interpret the X-coefficient if X is standardized and is a numeric value?

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

因为你已经标准化了X,你的单位是标准差。所以解释是“对于X的1标准差变化,我们期望Y的X系数变化量…”

c. How do I interpret the X-coefficient if X is standardized and is a %?

同上。你的单位仍然是标准差,尽管它最初来自一个百分比

Case 2: Predict a %-ed valued Y, like % resource used.

a. Should I use Beta-Regression? If so which package in Python offers this?

这很棘手。典型的建议是当你的Y结果是一个百分比时,使用类似二项逻辑回归的方法。你知道吗

b. How do I interpret the X-coefficient if X is standardized and is a numeric value?

c. How do I interpret the X-coefficient if X is standardized and is a %?

与上述解释相同。但是如果你使用逻辑回归,它们是以对数几率为单位的。我建议阅读逻辑回归的相关知识,以便更深入地了解它是如何工作的

If I am wrong in standardizing the Xs which are a % already , is it fine to use these numbers as 0.30 for 30% so that they fall within the range 0-1? So that means I do not standardize them, I will still standardize the other numeric IVs.

标准化对于回归中的变量是非常好的,但是就像我说的,它改变了你的解释,因为你的单位现在是一个标准差

Final Aim for both cases 1 & 2:

To find the % of impact of IVs on Y. Eg: When X1 increases by 1 unit, Y increases by 21%

如果你的Y是一个百分比,并且你使用类似OLS回归的方法,那么这就是你将如何解释系数的方法(对于X1中的1个单位的变化,Y会变化一些百分比)

相关问题 更多 >