精华内容
下载资源
问答
  • 关于线性回归,通常分为简单线性回归与多元线性回归,前者只有一个自变量而后者大于一个自变量。对于PowerBI的简单线性回归,国外早已有人发表了相关介绍,但对于多元线性回归,我并没有在Google和百度上找到关于这...

    ceda5ac813ad54c4e4c60ff3386c161f.png

    一、简述

    本文主要介绍在利用PowerBI进行时间序列分析时,如何使用DAX完成多变量的线性回归预测。关于线性回归,通常分为简单线性回归与多元线性回归,前者只有一个自变量而后者大于一个自变量。对于PowerBI的简单线性回归,国外早已有人发表了相关介绍,但对于多元线性回归,我并没有在Google和百度上找到关于这方面的系统性介绍(注:不包括使用R&Python接口或可视化控件完成的方法),因此我只能自己完成这一计算。下文将主要介绍使用DAX完成多元(二元为例)线性回归,并且将在此引入"Ridge回归"和"Lasso回归"中的模型调优思路。

    (注:关于PowerBI简单线性回归的方法,可参照此文)

    二、多元线性回归公式推导

    模型如下:

    fc2029c1fbaded2b14fc80cddfb05fd0.png

    DAX无法进行矩阵运算,因此回归公式参照克莱姆法则(不是史莱姆)。以二元回归为例,其目的是通过对现有数据集的计算,得出其中的β0,β1及β2的最优解,公式推导如下:

    cd8a6815d4ff72f5625aa947cc9fbb86.png

    依据此公式,在DAX中进行运算,即可完成回归。

    三、本文数据集简介

    数据集下载自Tableau论坛,本案例使用的数据集为"Superstore.xls"

    主表结构如下:

    5183e10f4bdcea86a2bb3e29af03560b.png

    75ae2cc3f77acd9693b43b21a5f2f476.png

    其中[日期](Order Date)将做为首个自变量,[销量](Sales)将作为因变量(即预测目标)

    四、执行二元回归

    fb47770b7159c863a5c8616b1e9cb67e.png

    通过观察数据集,第二个自变量选择[月份]。依据前文的二元回归推导公式,完成代码如下:

    Binary Linear Regression = 
    VAR VT =
    FILTER (
    SELECTCOLUMNS(
    SUMMARIZE(ALLSELECTED('Date'),'Date'[Date],'Date'[Month Number]),
    "VT[X1]", 'Date'[Date],
    "VT[X2]", 'Date'[Month Number],
    "VT[Y]",'Orders'[Qty]
    ),
    AND (
    NOT ( ISBLANK ( VT[X1] ) ),
    AND(
    NOT ( ISBLANK ( VT[X2] ) ),
    NOT ( ISBLANK ( VT[Y] ) )
    ))
    )
    VAR Average_X1 =
    AVERAGEX ( VT, VT[X1] )
    VAR Average_X2 =
    AVERAGEX ( VT, VT[X2] )
    VAR Average_Y =
    AVERAGEX ( VT, VT[Y] )
    VAR Sum_X1_2 =
    SUMX ( VT, (VT[X1] - Average_X1) ^ 2 )
    VAR Sum_X2_2 =
    SUMX ( VT, (VT[X2] - Average_X2) ^ 2 )
    VAR Sum_X1Y =
    SUMX ( VT, (VT[X1] - Average_X1) * (VT[Y] - Average_Y))
    VAR Sum_X2Y =
    SUMX ( VT, (VT[X2] - Average_X2) * (VT[Y] - Average_Y))
    VAR X12 = 
    SUMX( VT, (VT[X1] - Average_X1)*(VT[X2] - Average_X2))
    VAR Beta1 =
    DIVIDE (
    Sum_X1Y*Sum_X2_2 - sum_x2y*X12,
    Sum_X1_2*Sum_X2_2 - X12 ^ 2
    )
    VAR Beta2 =
    DIVIDE (
    Sum_X2Y*Sum_X1_2 - sum_x1y*X12,
    Sum_X1_2*Sum_X2_2 - X12 ^ 2
    )
    VAR Intercept =
    Average_Y - Beta1 * Average_X1 - Beta2 * Average_X2
    VAR Result = 
    SUMX (
    SUMMARIZE('Date','Date'[Date],'Date'[Month Number]),
    Intercept + Beta1 * 'Date'[Date] + Beta2 * 'Date'[Month Number]
    )
    RETURN
    Result

    结果如下图红线所示:

    8f595a6484dc7aad5a9ce505327392df.png

    五、评估回归模型

    模型建立完成后,我们需要评估它的拟合效果。我在此引入两个指标:

    1.RMSE(均方根误差) -- 越小越好

    2.R^2(拟合优度) -- 通常越接近1越好

    其中,RMSE(=RMSD)公式如下,即数据集中每条记录的拟合值与实际值的均方根误差:

    f60a982c92b85e9762983ae2b10054a4.png

    R^2即相关系数的平方:

    b03c5fe99c491b9d639aa4b78fe02aa4.png
    TSS:总离差平方和 ESS:回归平方和 RSS:残差平方和

    aab937e53aa174383c16718e36f6945f.png

    依据上述公式,分别完成RMSE和R^2的代码:

    RMSE = 
    VAR VT =
    SUMMARIZE(
    ALLSELECTED('Date'),'Date'[Date],'Date'[Month Number])
    RETURN
    SQRT(
        divide(
            SUMX(VT,
                ('Orders'[Binary Linear Regression] - 'Orders'[Qty]) ^ 2),
            COUNTROWS(VT)))
    
    --------------------------------------------------------------------------------------------------
    R^2 = 
    VAR VT =
    SUMMARIZE(ALLSELECTED('Date'),'Date'[Date],'Date'[Month Number])
    VAR
    ESS = SUMX(VT,POWER('Orders'[Binary Linear Regression]-AVERAGEX(VT,[Qty]),2))
    VAR
    TSS = SUMX(VT,POWER([Qty]-AVERAGEX(VT,[Qty]),2))
    RETURN
    DIVIDE(ESS,TSS)

    执行效果如下,可知该模型的拟合效果并不乐观:

    e4a037df051bcd147af073b183ac866c.png

    六、模型调优

    针对于线性回归的优化,有两种主流方法:1.Lasso回归 2.岭回归(Ridge回归)

    这两种方法分别为模型加上了L1正则项和L2正则项。本文不讨论复杂的统计学,只在乎如何高效地使用DAX解决这个模型调优的问题。实际上,这两种方法都是通过添加惩罚项来压低模型的某些系数,前者则可以直接把不重要的系数压缩至0,因此,此算法本质上就是对模型中的各β系数选择性的压缩。另外,DAX本身并不是用于算法的语言,结合考虑到代码最后运行的性能,我们可以直接在模型各β系数上面乘以一个变量来达到效果,而无需执行复杂的推导计算。在PowerBI中创建参数来作为这个变量的值,这样我们就可以在可视化界面去调整变量的值,进而达到对模型手动调优的效果。

    因此,在前文二元回归模型的代码基础上修改后如下:

    Manual Binary Regression = 
    VAR R = '_Slope'[Regular factor Value] --调节斜率
    VAR A = 'α'[α Value] --调节第一个参数
    VAR B = 'β'[β Value] --调节第二个参数
    VAR VT =
    FILTER (
    SELECTCOLUMNS(
    SUMMARIZE(ALLSELECTED('Date'),'Date'[Date],'Date'[Month Number]),
    "VT[X1]", 'Date'[Date],
    "VT[X2]", 'Date'[Month Number],
    "VT[Y]",'Orders'[Qty]
    ),
    AND (
    NOT ( ISBLANK ( VT[X1] ) ),
    AND(
    NOT ( ISBLANK ( VT[X2] ) ),
    NOT ( ISBLANK ( VT[Y] ) )
    ))
    )
    VAR Average_X1 =
    AVERAGEX ( VT, VT[X1] )
    VAR Average_X2 =
    AVERAGEX ( VT, VT[X2] )
    VAR Average_Y =
    AVERAGEX ( VT, VT[Y] )
    VAR Sum_X1_2 =
    SUMX ( VT, (VT[X1] - Average_X1) ^ 2 )
    VAR Sum_X2_2 =
    SUMX ( VT, (VT[X2] - Average_X2) ^ 2 )
    VAR Sum_X1Y =
    SUMX ( VT, (VT[X1] - Average_X1) * (VT[Y] - Average_Y))
    VAR Sum_X2Y =
    SUMX ( VT, (VT[X2] - Average_X2) * (VT[Y] - Average_Y))
    VAR X12 = 
    SUMX( VT, (VT[X1] - Average_X1)*(VT[X2] - Average_X2))
    VAR Beta1 =
    DIVIDE (
    Sum_X1Y*Sum_X2_2 - sum_x2y*X12,
    Sum_X1_2*Sum_X2_2 - X12 ^ 2
    ) * A -- 乘以参数A
    VAR Beta2 =
    DIVIDE (
    Sum_X2Y*Sum_X1_2 - sum_x1y*X12,
    Sum_X1_2*Sum_X2_2 - X12 ^ 2
    ) * B -- 乘以参数B
    VAR Intercept =
    Average_Y - Beta1 * Average_X1 - Beta2 * Average_X2
    VAR Result = 
    SUMX (
    SUMMARIZE('Date','Date'[Date],'Date'[Month Number]),
    Intercept + Beta1 * 'Date'[Date] + Beta2 * 'Date'[Month Number]
    )
    RETURN
    Result * (1-1/R) --乘以斜率参数

    执行效果如下(注:调整后的模型如深蓝色曲线所示,RMSE和R^2也改为针对该模型的评估值):

    89ed6683fc0be782483f6b400a03a1c6.png

    至此,我们完成了对该二元线性回归模型的手动调优,我们可以调节其中的参数,然后观察评估结果。本文到此本该结束,但是后来我觉得这样调整有点盲目,调整参数应该有一个直观科学的参考,这样才能提高使用效率。因此我做了一个模型优化参考图,本文以第一个参数(即日期)为例,以该参数作为自变量(X轴),R^2和RMSE作为因变量(Y轴),用以直观地对模型调优提供参考:

    e0c8dde07edfcd8fbb7cd4c74c394656.png
    注:由于RMSE远大于R^2,为使RMSE和R^2更易于观察,图中的RMSE值压缩至原来的十分之一。当然你也可以考虑使用双轴图,但目前来讲PowerBI自带的双轴图控件并没有Tooltips

    七、总结

    至此,我们已经知道了如何用DAX进行多元线性回归以及进行模型调优的方法。在此我只是介绍了我自己的方法,远没有发挥出DAX的潜力,大家尚需努力探索。

    (注:我在后来还做了三元线性回归,对于非数学统计专业相关的我也是有些为难。当然使用R语言完成回归会更加简便,只不过至今年四月为止,Power BI service的RS版本完全不支持R,也不支持Python,对于PowerBI Service(RS版本)的用户,使用DAX建模是唯一也是最好的选择,除非你只需要使用Desktop版本,那么你可以考虑使用R,而不需要像这样写这么长的代码。本文同时也发布了英文版本,对于本文案例有优化建议的欢迎留言。)

    展开全文
  • 假设有原始数据集 包含n个数据点 ,由此拟合了多元线性回归函数 拟合之后有以下常用定义: (Sum of Squares for Error 剩余平方和): (也称为 ,Residual Sum of Squares) (corrected Sum of Squares for Model...

    2146441b6f158a25b881067126b70aca.png

    假设有原始数据集

    包含n个数据点
    ,由此拟合了多元线性回归函数

    拟合之后有以下常用定义:

    • (Sum of Squares for Error 剩余平方和):
      (也称为
      ,Residual Sum of Squares)
    • (corrected Sum of Squares for Model 回归平方和):
      (也称为
      ,Sum of Squares for Regression)
    • (corrected Sum of Squares Total 总离差平方和):
      为所有
      的均值)

    值得注意的是

    自由度:

    在统计学中,自由度指的是计算某一统计量时,取值不受限制的变量个数。
    • 自由度
      (因为有
      个数据点减去
      个变量限制)
    • 自由度
      (因为有
      个变量减去
      均值限制)
    • 自由度
      (因为在均值确定后,如果知道了其中
      个数的值,第
      个数的值也就确定了。这里,均值就相当于一个限制条件,由于加了这个限制条件,估计总体方差的自由度为

    相似的

    以及调整后的

    通常认为

    越接近1,模型拟合的效果越好,其定义为回归平方和与总离差平方和的比值。

    调整后的

    会考虑自由度的影响,惩罚过多的参数数量
    ,防止模型过拟合


    -test

    用于衡量拟合模型整体是否在统计上有意义,其表达式为

    求出此值之后可以对比根据显著性水平

    ,自由度
    查表所得的
    值。如果
    ,则拟合模型总体关系可称为显著成立。

    -test

    用于衡量每个变量是否在统计上有意义,表达式为

    求出此值后,可以对比根据显著性水平

    ,自由度
    查表所得的
    值。如果
    ,则该变量可称为有显著影响。之所以不同于
    检验,用
    为参考值查表,是因为
    检验基于的假设是该变量参数服从正态分布。

    参考资料:

    https://blog.csdn.net/Jesszen/article/details/80989714blog.csdn.net[图文]第三讲 回归模型检验 - 百度文库wenku.baidu.comF-test for Regressionfacweb.cs.depaul.edu
    展开全文
  • 我一度认为多元线性回归是统计学的终点。还在中学的时候,我接触到了“数学模型”一词,那时觉得数学模型特别高大上,甚至觉得这是脱离了平面是一种三维立体的东西。尽管高中的时候就已经接触回归方程了,但那时根本...

    我一度认为多元线性回归是统计学的终点。

    还在中学的时候,我接触到了“数学模型”一词,那时觉得数学模型特别高大上,甚至觉得这是脱离了平面是一种三维立体的东西。尽管高中的时候就已经接触回归方程了,但那时根本没觉得这和数据模型有什么关系。后来本科的时候开始学多元线性回归,觉得这只是开了个头,后面肯定会教那种三维的立体的数学模型的,结果无论是统计学、概率论、计量通通最多都只教到多元回归。我不死心,去翻阅各类统计学教程,基本也都是教完多元回归书就戛然而止了。

    研究生的时候仍然要学多元线性回归,但也知道了除了多元线性回归之外还有很多模型可以应用,但是以多元线性归回的易用性和可解释性来看,各行各业包括学术研究还是在广泛地使用多元线性回归,所以对大部分的人来说统计学的终点是多元线性回归其实也不算错。

    除了多元线性回归具有方便使用和可解释性强的优点外,我们为什么还是要学习多元线性回归呢,直接用各种最新最前沿的模型不可以吗?

    如果要做类比的话,多元线性回归有点像牛顿的经典物理力学体系,学习牛顿的三条定律后可以解释低速宏观的各种现象,这就是其易用性和高可解释性,在这种场景下就没必要去考虑量子力学和相对论。而多元线性回归又是其他模型的基础,如后面会讲到的逻辑回归(logistics model),尽管是分类模型却是从多元线性回归演变过来的,所以学习多元线性回归,了解其基本思路和方法能够帮助我们打好基础然后进一步学习和应用其他模型。

    小结一下就是,学习多元线性回归是因为其仍可被广泛应用在各种领域和场景并且具有很好的解释性,同时也是学习其他模型的基础。

    啰嗦了一大串关于多元线性模型的背景后,下面开始正式讲解多元线性回归了。

    还记得在《算法模型篇》——从雪糕店讲起里的一元线性回归吗?对多元线性回归最简单直接的解释就是从一元线性回归中的一个输入变量,或者叫自变量,拓展成多个输入变量。在本篇里我会用工业蒸汽量预测赛题与数据-天池大赛-阿里云天池里的数据一步步完成多元线性回归的建模,并按统计学派的统计假设检验的流程分析模型的有效性。如前所述,本篇更侧重于多元线性回归的应用,原理讲解和公式推导会被尽可能地压缩。

    对“工业蒸汽量预测”的分析和建模流程如下:

    1、数据概览

    2、探索性性分析

    3、建模和和优化

    我们先来看一下数据长什么样子:

    59de67aa78866ff1169cc6a4124e9772.png

    4326faacce5e33025fd3419716170793.png
    由于变量较多,故仅展示一部分

    总共有38个自变量,target是因变量,2888条数据,无缺失值,数据均经过脱敏处理。

    由于后续我们将根据这些数据建立一个多元回归方程,变量之间的相关性就变得尤为重要,因此接下来进行相关性分析:

    123b3bf4f553dc5c1380f049ad9f2acf.png

    在R中用psych包中的corr.test函数分析target与其他变量之间的关系(默认的方法是pearson),尽管从统计假设上大部分变量都与target相关,但从相关系数来看显然有部分变量与target的相关性更高,此处阈值取0.55,有V0、V1、V2、V4、V8、V12、V27、V31、V37与target高度相关,后续模型中将很可能包含这几个变量。

    cb9234a5bb0e955e9897d4d2206f2b40.png

    另外还可通过corrplot包中的corrplot函数画出所有变量相关性的热力图,这会给后续分析和优化提供帮助。

    从相关性分析可知,V0、V1、V2、V4、V8、V12、V27、V31、V37与target存在某种联系,我们可以画出散点图来进一步观察这种相关性。当然,你也可以把38个自变量与target的散点图都画出来然后观察,但在本案例中自变量的数量较多,且仅从图像观察是不如通过相关性计算得到的结论准确,因此个人建议还是要先经过相关性分析再去进一步挖掘因变量和与其高度相关变量之间的关系。

    3b118c390b233fb8a85dd0a7c5a499e6.png

    cdd29cd6a150c8b2bbdfde1caa5b546f.png

    543f3c7b1d40ee200fb509511c3a4eec.png

    通过观察9个与target高度相关变量的散点图,秉着大胆猜测小心求证的精神,可初步怀疑V1与target之间存在二次关系,并把V1的平方项纳入到模型的备选变量中去。

    对各变量与target的关系有个整体认识后,可通过逐步回归的方法挑选合适的变量达成最佳的模型。这里需要提一下进行逐步回归时需要用到AIC(Akaike Information Criterion)赤池信息准则和BIC(Bayesian Information Criterion)贝叶斯信息准则,其中 :

    ,
    ,
    是似然函数,逐步回归会选择根据设定选择AIC或BIC最小的模型进行输出。

    是不是有点眼熟?还记得《算法模型篇》——基本思想1里提到的损失函数、经验风险和结构风险的概念吗?AIC或BIC本质上就是一个损失函数,

    是经验风险,
    则作为模型复杂程度的惩罚项,与
    结合后整体作为结构风险去挑选变量形成最佳的模型。通常而言,用BIC挑选的模型往往变量数量更少,考虑奥卡姆剃刀原则,因而采用BIC作为逐步回归的模型选择参数。
    zqlrsr <- step(zqlr0,scope = formula(zqlr1),direction = 'both',k=log(nrow(zhengqi)))
    summary(zqlrsr)
    zqlrsr_resid <- residuals(zqlrsr)
    zqlrsr_fitted <- fitted(zqlrsr)

    c7a66d36e2a92bbd42c592515240807a.png

    在其基本面板上,我们主要考虑:

    1、调整

    2、

    及对应的P值

    3、各变量对应的P值

    从结果来看,调整

    充分大,模型整体显著,各变量均显著,可以拿一个及格分。但多元回归线性模型,从统计假设的角度,我们还需要检验如下假设:

    1、残差符合正态分布

    2、独立性

    3、同方差

    4、多重共线性

    让我们开始吧:

    1、残差正态分布检验:

    hist(zqlrsr_resid)
    qqnorm(zqlrsr_resid)
    qqline(zqlrsr_resid,col="red")
    qqPlot(zqlrsr,id.method='identify',simulate = TRUE)

    ea869749c6f81046aa844980464b3762.png

    32ebaf2d74c4f9921f86dc91e416bb5b.png

    从其正态分布检测图可知,其有较多的点并未分布在直线附近,甚至超过了可接受范围之外,因为可判断其残差不符合正态分布。

    shapiro.test(zqlrsr_resid)
    
    	Shapiro-Wilk normality test
    
    data:  zqlrsr_resid
    W = 0.96703, p-value < 2.2e-16
    ks.test(zqlrsr_resid,y="rnorm")
    
    	One-sample Kolmogorov-Smirnov test
    
    data:  zqlrsr_resid
    D = 4.691, p-value < 2.2e-16
    alternative hypothesis: two-sided

    Shapiro-Wilktest test和Kolmogorov—Smimov test(原假设均为符合正态分布)同样支持该结论,其p值均小于0.05,故拒绝原假设,残差不符合正态分布。

    2、独立性

    lagdf <- function(x, k) {
         c(rep(NA, k), x)[1 : length(x)] 
     }
    scatterplot(lagdf(zqlrsr_resid),zqlrsr_resid)
    dwtest(zqlrsr)
    
    	Durbin-Watson test
    
    data:  zqlrsr
    DW = 1.2343, p-value < 2.2e-16
    alternative hypothesis: true autocorrelation is greater than 0

    07144d926854b160c500ef98c501f61b.png

    采用Durbin-Watson test进行检验,p值小于0.05,故拒绝原假设,残差具有自相关性,同时这也可以从一阶残差自相关图上可以看出(这数据居然有自相关性!)。

    3、同方差

    ncvTest(zqlrsr)
    Non-constant Variance Score Test 
    Variance formula: ~ fitted.values 
    Chisquare = 239.4814, Df = 1, p = < 2.22e-16

    p值小于0.05,故拒绝原假设,认为残差不符合同方差的假设

    4、多重共线性

    vif(zqlrsr)
           V0        V2        V1        V3       V14       V10       V27        V8       V36 
    10.600451  5.874548 16.519590  1.550294  1.209625 10.295018  9.851246 13.003269  9.035703 
           V9      V1_2       V17       V18       V12       V29        V7        V6       V37 
     1.749809  2.441372  1.428894  1.196192  6.703426  4.696698 10.788097 15.163735  3.838548 
          V24 
     2.117329 

    方差扩大因子大于10的V0、V1、V10、V8、V7、V6与模型中的其他变量具有共线关系,需要考虑剔除或变换。

    OK,一轮检测下来这个模型基本没通过哪个假设检验,哎,不过这其实挺正常的,不慌。由于数据经过脱敏,不妨先从解决多重共线性入手优化模型。

    从原模型剔除掉V1、V6、V7、V8和V10,同时考虑到V1和V0存在强相关性,而V1的相关信息已经通过V1_2进行表达了,因此保留V0。剔除该四个变量后,模型的多重共线性已经消除了,但其他假设检验仍然未能通过,这很可能是数据本身或者模型选择所造成的,需要进行特征工程或者通过岭回归的方法来实现改进,但这部分已经超出了该篇的范畴了。

    最后把逐步回归的模型以及剔除部分变量后的模型拿到线上进行检验,两个模型的线下MSE分别为0.107和0.122,线上的MSE则分别为2.2590和1.5204。从结果来看模型是过拟合了,但根据训练集和测试集的关系,在传统的多元回归模型的假设空间里MSE的优化空间已经比较有限,需要考虑选用别的模型来降低MSE。

    最后做一下技术总结:

    1fc6312e1b3478c06b5795c3db0da568.png

    c1837e1d6bf21613049f3bea3caf1bf8.png
    展开全文
  • 在众多的业务量预测方法中,线性回归方程预测法是针对多变量影响且呈线性趋势的业务量最适合的预测方法。线性回归方程在EXCEL中也能做,但相对来讲没有SPSS严谨和专业。今天就简单介绍一下SPSS线性回归预测的大体...

    在众多的业务量预测方法中,线性回归方程预测法是针对多变量影响且呈线性趋势的业务量最适合的预测方法。线性回归方程在EXCEL中也能做,但相对来讲没有SPSS严谨和专业。今天就简单介绍一下SPSS线性回归预测的大体操作流程。话务量的预测其实最重要的是要找到影响业务量变化的关键因素,因此在此之前必要的探索性分析也是必不可少的,在此不做展开。下面我们直接进入主题:

    首先,假设我们找到了两个影响业务量变化的关键因素:用户基数和市场预算投入(模拟数据,莫当真)。

    d163ed94ea689b55ecaaa1cc2b1b96cb.png

    把数据导入SPSS,并打开“分析”——“回归”——“线性”设置界面。

    f1239684fea978754148383f6a2dbc8b.png

    在随后展开的对话框中,把“联络量”放入因变量框,把“客户基数”和“市场投入”放入自变量框。

    3291ae0a37edf860645d6e04886cbfae.png

    然后打开“统计量”对话框,增加勾选“共线性诊断”和“D-W”残差测试。

    5d7a531dbefeaa88f5894e7ff8e958e6.png

    再打开“保存”对话框,浏览到模型保存的位置(自定)并输入名称(自定),并点击“继续”。

    54a3a89700920b41e9f4c3f5dc72f5bc.png

    然后,直接点击“确定”,我们就得到了如下的模型拟合结果。可以看到,残差序列相关D-W测试结果近乎完美,不存在系列相关性;自变量显著性检验通过;共线性膨胀因子稍微有些偏大,但综合考虑来讲模型还是不错的。

    a898b5a7ee953bc17d66c434a6641273.png

    现在我们再导入一组新的数据,自变量相同但没有“联络量”因变量(其实我就是把“联络量”删除了,你懂得)。

    7cfbce1267421677a6a46652b42895a8.png

    然后打开“实用程序”——“评分向导”。

    c33febde593ee13694f1a3016d124d4f.png

    在“评分向导”对话框中选择刚才保存的模型XML文件,然后一路默认“下一步”,一直到完成。

    79e00ec8d831b7f3b0d67a7e581f0559.png

    最后,我们就用拟合好的线性回归模型完成了对新的数据集的联络量预测。

    b2047ae6b73df3b743d6de23fa9c5df8.png
    展开全文
  • 我正在使用在scipy Cookbook下载的ols.py代码(下载在第一段中使用粗体OLS),但我需要理解而不是使用OLS函数的随机数据来进行多元线性回归。我有一个特定的因变量y,还有三个解释变量。每次我试图用变量代替随机变量...
  • 在实现一元线性回归的基础上,可通过在权重和占位符的声明中稍作修改来对相同的数据进行多元线性回归。在多元线性回归的情况下,由于每个特征具有不同的值范围,归一化变得至关重要。这里是波士顿...
  • 多元线性回归多元线性回归响应参数Response对象提供了一系列方法用于设置响应参数,包括设置输出内容、状态码及header信息等,并且支持链式调用以及多次调用。设置数据Response基类提供了data方法用于设置响应数据。...
  • 关注一下~,更多商业数据分析案例等你来撩前言构建多元线性回归模型时,如果能够充分的使用已有变量,或将其改造成另一种形式的可供使用的变量,将在一定程度上提高模型精度及其泛化能力。因为数据集中的名义变量(或...
  • 前几天,偶然在网上看到,建立多元线性回归时须对其中的异常数据进行筛选剔除,那这里的异常点指的是什么呢?这里的异常点指的是人为采集数据误差或者某些异常的个例等等一些不太准确的数据。 例如,对于下表中的...
  • 由于准备参加数学建模比赛,最近在CSDN上看了不少关于利用Python来完成对数据多元线性回归的资料,想利用这篇博客进行一下总结与回顾:
  • 最近在学习吴恩达的机器学习课程,觉得讲得有理有据、循序渐进,很多问题豁然开朗,实践是检验真理的唯一标准,为了检验自己的所学所得,也为了更深一步地理解其...线性回归是吴恩达老师的机器学习课程中的第一个...
  • Python-Tensorflow2.3.0-多元线性回归预测(学习笔记),预测数据
  • 多元线性回归顾名思义,就是假设多个自变量同时对一个因变量产生影响。其特殊情况就是一一映射,即一个自变量对应一个因变量。首先我们先了解一些指标。这些指标在机器学习中很常见。我偷懒,MSERMSEMAER-Squaredef ...
  • 给定数据集,其中,,线性回归试图学得:,使得,这称为 “多元线性回归” 。为了便于讨论,我们把 w 和 b 吸收入向量形式,相应的,把数据集 D 表示为一个 m*(d+1) 大小的矩阵 X ,其中每行对应于一个示例,该行前 ...
  • 线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或...
  • python实现机器学习多元线性回归详解总体思路与一元线性回归思想一样,现在将数据以矩阵形式进行运算,更加方便。一元线性回归实现代码下面是多元线性回归用Python实现的代码:import numpy as npdef linear...
  • 数据检验(判断是否可以做线性回归) 训练线性回归模型 先甩几个典型的线性回归的模型,帮助大家捡起那些年被忘记的数学。 ● 单变量线性回归:h(x)=theta0 + theta1* x 1 ● 多变量线性回归:h(x)=theta0 + ...
  • 当只有一个自变量时,称为简单线性回归,当具有多个自变量时,称为多元线性回归。 线性关系的理解: 画出来的图像是直的。 每个自变量的最高次项为1。 拟合是指构建一种算法,使得该算法能够符合真实的数据。从...
  • 这是一个商品数据,包含200行数据,可以做多元线性回归
  • 小天导语:多元线性回归模型是大多数人入门机器学习的第一个案例,其中多元共线性这个...研究方向:机器学习,多元线性回归模型,Python数据探索本文的数据集是经过清洗的美国某地区的房价数据集importpandasaspdimp...
  • Python多元线性回归数据集数据分布数据分析数据拆分数据建模模型保存模型调用 数据集 TV radio newspaper sales 230.1 37.8 69.2 22.1 44.5 39.3 45.1 10.4 17.2 45.9 69.3 9.3 151.5 41.3 58.5 18.5 180.8 1
  • 多元线性回归

    2019-09-03 23:16:33
    多元线性回归 单特征——一元线性回归 多特征——多元线性回归 多元线性回归的公式 一元和多元的比较 程序实例: 数据 import numpy as np from numpy import genfromtxt import matplotlib....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,246
精华内容 898
关键字:

多元线性回归数据