4/5x=8/25用方程解决?


· 知道合伙人教育行家

本人热爱数学,在校成绩优异,多次被评为三好学生,愿利用课余时间,诚心诚意帮助需要帮助的人。


你对这个回答的评价是?

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

Statsmodels 是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检

验等等的功能。Statsmodels 在计量的简便性上是远远不及 Stata 等软件的,但它的优点在于可以与 Python 的其他的任务(如 NumPy、Pandas)有效结合,提高工作效率。在本文中,我们重点介绍最回归分析中最常用的 OLS(ordinary least square)功能。

当你需要在 Python 中进行回归分析时……

上帝导入了 NumPy(大家都叫它囊派?我叫它囊辟),

并且有 k 组数据,OLS 回归用于计算回归系数 βi 的估值 b0,b1,…,bn,使误差平方

则是回归变量(也称自变量)的值,即模型中的x1(t),…,xn(t)。但是要注意,statsmodels.OLS 不会假设回归模型有常数项,所以我们应该假设模型是

并且在数据中,对于所有 t=1,…,k,设置 x0(t)=1。因此,exog的输入是一个 k×(n+1) 的 array,其中最左一列的数值全为 1。往往输入的数据中,没有专门的数值全为1的一列,Statmodels 有直接解决这个问题的函数:sm.add_constant()。它会在一个 array 左侧加上一列 1。(本文中所有输入 array 的情况也可以使用同等的

上面的介绍绕了一个大圈圈,现在我们来看一个例子,假设回归公式是:

我们从最简单的一元模型开始,虚构一组数据。首先设定数据量,也就是上面的 k 值。

然后创建一个 array,是上面的 x1 的数据。这里,我们想要 x1 的值从 0 到 10 等差排列。

然后设置模型里的 β0,β1,这里要设置成 1,10。

然后还要在数据中加上误差项,所以生成一个长度为k的正态分布样本。

由此,我们生成反应项 y(t)。

好嘞,在反应变量和回归变量上使用 OLS() 函数。

再调取计算出的回归系数。

和实际的回归系数非常接近。

当然,也可以将回归拟合的摘要全部打印出来。

得到,下图所示,下图具体参数涉及较多,会在另外一篇文章中详细写出。

中间偏下的 coef 列就是计算出的回归系数。

我们还可以将拟合结果画出来。先调用拟合结果的 fittedvalues 得到拟合的 y 值。

画出原数据,图像为圆点,默认颜色为蓝。

画出拟合数据,图像为红色带点间断线。

在大图中看不清细节,我们在 0 到 2 的区间放大一下,可以见数据和拟合的关系。

加入改变坐标轴区间的指令

假设反应变量 Y 和回归变量 X 的关系是高次的多项式,即

我们依然可以使用 OLS 进行线性回归。但前提条件是,我们必须知道 X 在这个关系中的所有次方数;比如,如果这个公式里有一个X平方项,但我们对此并不知道,那么用线性回归的方法就不能得到准确的拟合。

虽然 X 和 Y 的关系不是线性的,但是 Y 和 各个高次平方项的关系是高元线性的。也就是说,只要我们把高次项当做其他的自变量,即设

可以进行常规的 OLS 回归,估测出每一个回归系数 βi。可以理解为把一元非线性的问题映射到高元,从而变成一个线性关系。

首先设定数据量,也就是上面的 k 值。

然后创建一个 array,是上面的 x1 的数据。这里,我们想要 x1 的值从 0 到 10 等差排列。

然后设置模型里的 β0,β1,β2,我们想设置成 1,0.1,10。

然后还要在数据中加上误差项,所以生成一个长度为k的正态分布样本。

由此,我们生成反应项 y(t),它与 x1(t) 是二次多项式关系。

在反应变量和回归变量上使用 OLS() 函数。

再调取计算出的回归系数。

在横轴的 [0,2] 区间放大,可以看到

一般而言,有连续取值的变量叫做连续变量,它们的取值可以是任何的实数,或者是某一区间里的任何实数,比如股价、时间、身高。但有些性质不是连续的,只有有限个取值的可能性,一般是用于分辨类别,比如性别、婚姻情况、股票所属行业,表达这些变量叫做分类变量。在回归分析中,我们需要将分类变量转化为哑变量(dummy variable)。

如果我们想表达一个有 d 种取值的分类变量,那么它所对应的哑变量的取值是一个 d 元组(可以看成一个长度为 d 的向量),其中有一个元素为 1,其他都是 0。元素呈现出 1 的位置就是变量所取的类别。比如说,某个分类变量的取值是 {a,b,c,d},那么类别 a 对应的哑变量是(1,0,0,0),b 对应 (0,1,0,0),c 对应 (0,0,1,0),d 对应 (0,0,0,1)。这么做的用处是,假如 a、b、c、d 四种情况分别对应四个系数 β0,β1,β2,β3,设 (x0,x1,x2,x3) 是一个取值所对应的哑变量,那么

可以直接得出相应的系数。可以理解为,分类变量的取值本身只是分类,无法构成任何线性关系,但是若映射到高元的 0,1 点上,便可以用线性关系表达,从而进行回归。

Bool值,意义为是否在输出中丢掉样本变量的值。中间两个输入可以不用在意。这个函数的输出是一个k×d 的 array(如果 drop=False,则是k×(d+1)),其中每一行是所对应的样本的哑变量;这里 d 是 data 中分类变量的类别总数。

我们来举一个例子。这里假设一个反应变量 Y 对应连续自变量 X 和一个分类变量 Z。常项系数为 10,XX 的系数为 1;Z 有 {a,b,c}三个种类,其中 a 类有系数 1,b 类有系数 3,c 类有系数 8。也就是说,将 Z 转换为哑变量 (Z1,Z2,Z3),其中 Zi 取值于 0,1,有线性公式

可以用常规的方法进行 OLS 回归。

我们按照这个关系生成一组数据来做一次演示。先定义样本数量为 50。

设定分类变量的 array。前 20 个样本分类为 a。

之后的 20 个样本分类为 b。

创建一组连续变量,是 50 个从 0 到 20 递增的值。

将连续变量和哑变量的 array 合并,并加上一列常项。

定义回归系数。我们想设定常项系数为 10,唯一的连续变量的系数为 1,并且分类变量的三种分类 a、b、c 的系数分别为 1,3,8。

再生成一个正态分布的噪音样本。

得到了虚构数据后,放入 OLS 模型并进行拟合运算。

这里要指出,哑变量是和其他自变量并行的影响因素,也就是说,哑变量和原先的 x 同时影响了回归的结果。初学者往往会误解这一点,认为哑变量是一个选择变量:也就是说,上图中给出的回归结果,是在只做了一次回归的情况下完成的,而不是分成3段进行3次回归。哑变量的取值藏在其他的三个维度中。可以理解成:上图其实是将高元的回归结果映射到平面上之后得到的图。

我要回帖

更多关于 幻时5x和幻时佳哪个好用 的文章