与this question相关,我想知道seaborn的regplot()中的robust
选项实际上是什么。
描述如下:
如果
True
,请使用statsmodels
来估算稳健回归。这将减轻异常值。请注意,这比标准线性回归的计算密集程度要大得多,因此您可能希望减少引导重新采样的数量(n_boot
)或将ci
设置为None
。
这是否意味着它更类似于Kendall或Spearman相关的工作方式,因为众所周知它们可以抵抗异常值?或者它们之间没有任何关系?换句话说,在为某些数据计算Kendall并使用regplot()
绘制散点图时,使用robust=True
是否有意义?
答案 0 :(得分:2)
Kendall和Spearman相关性衡量两个变量的相关性,即两个变量的密切关系。结果是相关系数,这是一个统计数据,可以告诉您相关事物的相关性(1
是完美的关系,0
是完美的关系缺席),从粗略的意义上说,这种相关性的方向性(-1
代表负斜率)。同样重要的是要注意Spearman和Kendall相关系数对异常值都很敏感,而Spearman方法更敏感。
Robust Linear Regression是线性回归的一个特例,它是一种找到2个或更多变量之间关系的方法。您可以将其视为找到最佳匹配线的方法。线性回归的结果是回归系数,它衡量您的响应随变量变化的方式(方向和斜率)。
通常,线性回归使用Ordinary Least Squares, or OLS来查找回归系数,目标是最小化残差的平方和(估计线与实际数据之差的平方根)。这对异常值非常敏感:
x = np.arange(0,10,0.2)
y = (x*0.25)+np.random.normal(0,.1,50)
y[[12,14,18,24]] -= 4
sns.regplot(x,y, robust = False)
注意异常值如何拖动线条。在很多情况下,这是您想要看到的行为。
另一方面,稳健的回归方法通常使用不同的度量来查找除OLS之外的回归系数,例如最小化least trim squares,这实际上是数据子集上的平方和(在这个意义上) ,它类似于bootstrapping)。通常,这是iteratively, weighing the result accordingly完成的,因此给定的异常值最终不会对系数产生巨大影响。这就是statsmodels.robust.robust_linear_model.RLM
所做的事情,当你在seaborn中使用robust = True
时会调用它。结果,与以前相同的数据:
sns.regplot(x,y,robust = True)
请注意,您的异常值并未拖累该行。在许多情况下,这不是人们想要的行为,但这取决于你在做什么......
注意:这在计算上非常昂贵(仅适用于那50个数据点,在我的机器上运行大约需要5秒钟)。
如果您想继续报告Kendall相关系数, 在可视化数据时不要使用 robust
参数。这将是误导性的,因为肯德尔的误差敏感度与你的稳健线性回归所代表的不相当(为了说明这可以变化多少,在我上面的数据中,肯德尔相关系数是0.85,这是长矛手的回归。相关系数为0.93)。 sns.regplot()
默认robust=True
次调用HuberT()
,默认情况下使用import React, { Component } from 'react';
import Card from './Card';
class Deck extends Component {
constructor(props) {
super(props);
this.state = {
deck: [],
};
}
componentDidMount() {
return fetch('URL1')
.then(response => response.json())
.then(deck => {
fetch(`URL2`)
.then(response => response.json())
.then(({ cards }) => {
this.setState(state => {
state.deck = cards;
});
this.forceUpdate();
});
});
}
render() {
const { deck } = this.state;
return deck.map((card, i) => <Card card={card} key={this.state.deck[i].code} />);
}
}
export default Deck;
条件。因此,如果你想报告相关系数之类的东西,我的直觉是你必须使用statsmodels.robust.robust_linear_model.RLM
的一些量度(你可能会找到更多关于那个{{3}的信息。 }})。或者,您可以阅读huber loss,它似乎对强大的相关系数替代方案有一些了解。