精华内容
下载资源
问答
  • 多重线性回归 多元线性回归Video Link 影片连结 We have taken a look at Simple Linear Regression in Episode 4.1 where we had one variable x to predict y, but what if now we have multiple variables, not ...

    多重线性回归 多元线性回归

    Video Link

    影片连结

    We have taken a look at Simple Linear Regression in Episode 4.1 where we had one variable x to predict y, but what if now we have multiple variables, not just x, but x1,x2, x3 … to predict y — how would we approach this problem? I hope to explain in this article.

    我们看了第4.1集中的简单线性回归,其中我们有一个变量x来预测y ,但是如果现在我们有多个变量,不仅是x,而且还有x1,x2,x3 …来预测y ,我们将如何处理?这个问题? 我希望在本文中进行解释。

    简单线性回归回顾 (Simple Linear Regression Recap)

    From Episode 4.1 we had our data of temperature and humidity:

    第4.1集开始,我们获得了温度和湿度数据:

    Image for post

    We plotted our Data, found and found a linear relationship — making linear regression suitable:

    我们绘制了数据,发现并找到了线性关系,从而使线性回归适用:

    Image for post

    We then calculated our regression line:

    然后,我们计算了回归线:

    Image for post

    using gradient descent to find our parameters θ₀ and θ₁.

    使用梯度下降找到我们的参数 θ₀和θ₁。

    Image for post

    We then used the regression line calculated to make predictions for Humidity given any Temperature value.

    然后,我们使用计算得出的回归线对给定任何温度值的湿度进行预测。

    什么是多元线性回归? (What is Multiple Linear Regression?)

    Multiple linear regression takes the exact same concept as simple linear regression but applies it to multiple variables. So instead of just looking at temperature to predict humidity, we can look at other factors such as wind speed or pressure.

    多元线性回归采用与简单线性回归完全相同的概念,但将其应用于多个变量。 因此,我们不仅可以查看温度来预测湿度,还可以查看其他因素,例如风速或压力

    Image for post

    We are still trying to predict Humidity so this remains as y.

    我们仍在尝试预测湿度,因此仍为y。

    We rename Temperature, Wind Speed and Pressure to 𝑥¹,𝑥² and 𝑥³.

    我们将温度,风速和压力重命名为𝑥¹𝑥²𝑥³。

    Just as with Simple Linear Regression we must ensure that our variables 𝑥₁,𝑥₂ and 𝑥₃ form a linear relationship with y, if not we will be producing a very inaccurate model.

    就像简单线性回归一样,我们必须确保变量𝑥₁,𝑥_2𝑥₃ 与y形成线性关系 ,否则,我们将生成一个非常不准确的模型。

    Lets plot each of our variables against Humidity:

    让我们针对湿度绘制每个变量:

    Image for post
    Image for post
    Image for post
    • Temperature and Humidity form a strong linear relationship

      温度和湿度形成很强的线性关系

    • Wind Speed and Humidity form a linear relationship

      风速和湿度形成线性关系

    • Pressure and Humidity do not form a linear relationship

      压力和湿度不是线性关系

    We therefore can not use Pressure (𝑥³) in our multiple linear regression model.

    因此,我们不能在多元线性回归模型中使用压力 (𝑥³)。

    绘制数据 (Plotting our Data)

    Let’s now plot both Temperature (𝑥¹) and Wind Speed (𝑥²) against Humidity.

    现在让我们绘制两个温度(𝑥¹) 以及相对于湿度的风速(𝑥²)。

    Image for post

    We can see that our data follows a roughly linear relationship, that is we can fit a plane on our data that captures the relationship between Temperature, Wind-speed(𝑥₁, 𝑥₂) and Humidity (y).

    我们可以看到我们的数据遵循大致线性关系,也就是说,我们可以在数据上拟合一个平面 ,以捕获温度,风速(𝑥₁,𝑥²)和湿度(y)之间的关系。

    Image for post

    计算回归模型 (Calculating the Regression Model)

    Because we are dealing with more than one 𝑥 variable our linear regression model takes the form:

    因为我们要处理多个𝑥变量,所以线性回归模型采用以下形式:

    Image for post

    Just as with simple linear regression in order to find our parameters θ₀, θ₁ and θ₂ we need to minimise our cost function:

    与简单的线性回归一样,为了找到我们的参数θ₀,θ₁和θ2,我们需要最小化成本函数:

    Image for post

    We do this using the gradient descent algorithm:

    我们使用梯度下降算法执行此操作:

    Image for post

    This algorithm is explained in more detail here

    此算法在这里更详细地说明

    After running our gradient descent algorithm we find our optimal parameters to be θ₀ = 1.14 , θ₁ = -0.031 and θ₂ =-0.004

    运行梯度下降算法后,我们发现最优参数为θ₀= 1.14,θ₁= -0.031和θ2= -0.004

    Giving our final regression model:

    给出我们的最终回归模型:

    Image for post

    We can then use this regression model to make predictions for Humidity (ŷ) given any Temperature (𝑥¹) or Wind speed value(𝑥²).

    然后,我们可以使用该回归模型对给定温度(𝑥¹)或风速值(𝑥²)的湿度(ŷ)进行预测。

    In general models that contain more variables tend to be more accurate since we are incorporating more factors that have an effect on Humidity.

    通常,包含更多变量的模型往往更准确,因为我们纳入了更多会影响湿度的因素。

    _________________________________________

    _________________________________________

    潜在问题 (Potential Problems)

    When including more and more variables in our model we run into a few problems:

    当在模型中包含越来越多的变量时 ,我们会遇到一些问题:

    • For example certain variables may become redundant. E.g look at our regression line above, θ₂ =0.004, multiplying our wind speed (𝑥²) by 0.004 barely changes our predicted value for humidity ŷ, which makes wind speed less useful to use in our model.

      例如,某些变量可能变得多余。 例如,看一下上面的回归线θ2 = 0.004,将我们的风速()²)乘以0.004几乎不会改变我们对湿度predicted的预测值,这使得风速在模型中的用处不大。
    • Another example is the scale of our data, i.e we can expect temperature to have a range of say -10 to 100, but pressure may have a range of 1000 to 1100. Using different scales of data can heavily affect the accuracy of our model.

      另一个例子是我们的数据规模,即我们可以预期温度范围在-10到100之间,但是压力可能在1000到1100之间。使用不同的数据规模会严重影响我们模型的准确性。

    How we solve these issues will be covered in future episodes.

    我们如何解决这些问题将在以后的章节中介绍。

    上一集 - 下一集 (Prev EpisodeNext Episode)

    如有任何疑问,请留在下面! (If you have any questions please leave them below!)

    Image for post

    翻译自: https://medium.com/ai-in-plain-english/understanding-multiple-linear-regression-2672c955ec1c

    多重线性回归 多元线性回归

    展开全文
  • 多元统计分析的简单回归和多重回归系数估计,包含python源码和实验结果
  • 线性回归是一种统计模型,用于检查两个(简单线性回归)或更多(多线性回归)变量(一个因变量一个或多个自变量)之间的线性关系。线性关系基本上意味着当一个(或多个)自变量增加(或减少)时,因变量也会增加...

    我将介绍线性回归的概念,但主要讨论Python的实现。线性回归是一种统计模型,用于检查两个(简单线性回归)或更多(多线性回归)变量(一个因变量和一个或多个自变量)之间的线性关系。

    线性关系基本上意味着当一个(或多个)自变量增加(或减少)时,因变量也会增加(或减少):

    如上图,线性关系可能是正的(独立变量上升,因变量上升)或负值(独立变量上升,因变量下降)。

    我会将重点放在Python中回归模型的实现,所以我不想在回归模型中深入研究数学,但是我会写一点关于它的内容。

    一点点数学

    变量Y和X之间的关系由等式:

    equation?tex=Y_i+%3D+mX+%2B+bY是因变量 - 或者我们试图预测或估计的变量

    X是自变量 - 我们用来做出预测的变量

    m是回归线的斜率 - 它代表X对Y的影响。换句话说,如果X增加1个单位,Y就会增加m个单位。(“完全披露(Full Disclosure)”:只有当我们知道X和Y有线性关系时才是真实的,在几乎所有的线性回归情况下,这都不是真的!)

    b是一个常数,也被称为Y截距。如果X等于0,Y将等于b。这在现实生活中不一定适用 - 我们并不总是知道X和Y之间的确切关系或者具有确切的线性关系

    现在进行简单线性回归(SLR):在SLR模型中,我们建立了一个基于数据的模型 - 斜率m和Y截距来自数据; 此外,我们不需要X和Y之间的关系完全线性。

    简单线性回归还包括数据中的错误(也称为残差)。我现在不会过多讲解它,以后有机会再来另外写。但残差基本上是Y的真实值与Y的预测/估计值之间的差异。

    重要的是,在线性回归中,我们想要预测一个连续变量。

    在回归模型中,我们试图通过找到“最佳拟合线”来最小化这些错误。我们试图将红线与蓝点的距离最小化,尽可能接近零。它与(或相当于)最小化均方误差(MSE)或误差平方和(SSE),也称为“残差平方和”(RSS),但这超出了本文讨论的范围:-)

    在大多数情况下,我们将有多个自变量,它可以少至两个或多达数百(或理论上甚至数千)变量。在这些情况下,我们将使用多重线性回归模型(MLR)。

    多重线性回归方程与简单线性回归方程几乎相同,只是具有更多变量:

    equation?tex=Y_i+%3D+%5Cbeta_0+%2B+%5Cbeta_1X_%7B1i%7D+%2B+%5Cbeta_2X_%7B2i%7D

    这就结束了这篇文章的数学部分:),接下来我们要在Python中实现啦

    Python中的线性回归

    在Python中实现线性回归有两种主要方法 - 使用Statsmodels和scikit-learn。也可以使用Scipy库,但我觉得这不像其他两个库一样常见。先看看这两个库的线性回归:Statsmodels是一个Python模块,它提供了用于评估许多不同统计模型的类和函数,也能进行统计测试和统计数据探索。“

    与Pandas和NumPy一样,获取或安装Statsmodels最简单的方法是通过Anaconda软件包。如果你有兴趣以其他方式安装,请查看此链接。安装完成后,每次需要时都需要导入它:

    import statsmodels.api as sm

    让我们看看如何实际使用Statsmodels进行线性回归。

    首先,我们从sklearn中导入一个数据集:

    from sklearn import datasets ## imports datasets from scikit-learn

    data = datasets.load_boston() ## loads Boston dataset from datasets library

    这是波士顿房价的数据集。由于它是一个用于测试机器学习工具的数据集,因此它带有对数据集的描述,我们可以使用命令data.DESCR 来查看它(这只适用于sklearn数据集,而不是每个数集)。

    为了更好地理解变量,我添加了描述的开头部分:

    Boston House Prices dataset

    ===========================

    Notes

    ------

    Data Set Characteristics:

    :Number of Instances: 506

    :Number of Attributes: 13 numeric/categorical predictive

    :Median Value (attribute 14) is usually the target

    :Attribute Information (in order):

    - CRIM per capita crime rate by town

    - ZN proportion of residential land zoned for lots over 25,000 sq.ft.

    - INDUS proportion of non-retail business acres per town

    - CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)

    - NOX nitric oxides concentration (parts per 10 million)

    - RM average number of rooms per dwelling

    - AGE proportion of owner-occupied units built prior to 1940

    - DIS weighted distances to five Boston employment centres

    - RAD index of accessibility to radial highways

    - TAX full-value property-tax rate per $10,000

    - PTRATIO pupil-teacher ratio by town

    - B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town

    - LSTAT % lower status of the population

    - MEDV Median value of owner-occupied homes in $1000's

    :Missing Attribute Values: None

    :Creator: Harrison, D. and Rubinfeld, D.L.

    This is a copy of UCI ML housing dataset.

    http://archive.ics.uci.edu/ml/datasets/Housing

    This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.

    运行data.feature_names和data.target将分别打印自变量和因变量的列名称。这意味着,Scikit-learn已经将房屋价值/价格数据设置为目标变量,并将13个其他变量设置为预测变量。我们来看看如何在这个数据集上运行线性回归。

    首先,我们应该将数据加载为一个Pandas DataFrame以便于分析,并将房价设置为我们的目标变量:

    import numpy as np

    import pandas as pd

    # define the data/predictors as the pre-set feature names

    df = pd.DataFrame(data.data, columns=data.feature_names)

    # Put the target (housing value -- MEDV) in another DataFrame

    target = pd.DataFrame(data.target, columns=["MEDV"])

    我们在这里完成的是取数据集并将其加载为DataFrame;

    然后,我们设置预测变量(如df) - 数据集中预先设置的自变量。我们还设定了target - 因变量或我们试图预测/估计的变量。

    接下来我们要训练一个线性回归模型。我们需要选择我们认为可以预测因变量的变量 - 这可以通过检查变量之间的相关性,通过绘制数据和直观地查找关系来完成。

    让我们考虑RM(房间的平均数量)和LSTAT(低生活水平人群的百分比)。

    需要注意的是,Statsmodels默认不会添加常量。

    ## Without a constant

    import statsmodels.api as sm

    X = df["RM"]

    y = target["MEDV"]

    # Note the difference in argument order

    model = sm.OLS(y, X).fit()

    predictions = model.predict(X) # make the predictions by the model

    # Print out the statistics

    model.summary()

    输出:第一个表格,无常数

    解释表格

    首先,我们知道什么是因变量,模型和方法。OLS代表普通最小二乘法,“最小二乘法”方法意味着我们试图拟合一条回归线,该回归线可以最小化回归线距离的平方(见本文的前一部分)

    Date、Time和观察次数(No.Observation)就是字面上的意思

    残差和模型的Df与自由度有关  - “统计量最终计算中可以随意变化的值的数量

    系数3.6534意味着随着RM变量增加1,MDEV的预测值增加3.6534

    其他一些重要的值是R平方 - 我们模型解释的方差百分比

    标准误差(是统计抽样分布的标准偏差,最常见的是平均值)

    t分数和p值,用于假设检验 - RM具有统计学显着的p值;

    没有为95%的置信区间RM(意思是我们预测在95%的置信度的值RM之间3.548至3.759)。

    如果我们想为模型添加一个常量 - 我们必须使用命令来设置它,

    X = sm.add_constant(X)

    其中X是包含输入(独立)变量DataFrame的名称。

    import statsmodels.api as sm # import statsmodels

    X = df["RM"] ## X usually means our input variables (or independent variables)

    y = target["MEDV"] ## Y usually means our output/dependent variable

    X = sm.add_constant(X) ## let's add an intercept (beta_0) to our model

    # Note the difference in argument order

    model = sm.OLS(y, X).fit() ## sm.OLS(output, input)

    predictions = model.predict(X)

    # Print out the statistics

    model.summary()

    输出:第二个表格,带有常数

    解释表格

    与前一个表格使用常数项的系数不同的。如果没有常数,我们迫使我们的模型通过原点,但现在我们有一个y截距(const)为-34.67。我们还将RM预测值的斜率从3.634改为9.1021。

    现在让我们尝试使用多个变量来拟合回归模型 - 我们将使用前面提到的RM和LSTAT。模型拟合是相同的:

    X = df[[“RM”, “LSTAT”]]

    y = target[“MEDV”]

    model = sm.OLS(y, X).fit()

    predictions = model.predict(X)

    model.summary()

    输出:表格3,使用多个自变量(2个)

    解释表格

    我们可以在这里看到,这个模型具有更高的R平方值-0.948,这意味着这个模型解释了因变量的94.8%的方差。每当我们为回归模型添加变量时,R-square将会更高,但这是相当高的R-square。

    我们可以看到,RM和LSTAT在预测(或估计)房屋中值时具有统计显着性; 我们看到随着RM增加1,MEDV将增加4.9069,当LSTAT增加1时,MEDV将减少 -0.6557。

    LSTAT是低生活水平人群的百分比,很遗憾,我们可以用它降低房屋的中位数。同理,房屋的房间越多,价值越高。

    这是Statsmodels中单一和多重线性回归的例子。我们可以在我们的回归模型中使用尽可能少或者更多变量(最多可以使用13个变量)!

    接下来,我将演示如何在SKLearn中运行线性回归模型。

    线性回归在SKLearn中

    当涉及到Python中的机器学习时,SKLearn几乎是黄金标准。它有许多学习算法,可用于回归,分类,聚类和降维。

    为了使用线性回归,我们需要导入它:

    from sklearn import linear_model

    让我们使用之前使用过的相同数据集,即波士顿房价。这个过程的前面部分是相同的 - 从SKLearn导入数据集并在波士顿数据集中加载:

    from sklearn import datasets ## imports datasets from scikit-learn

    data = datasets.load_boston() ## loads Boston dataset from datasets library

    接下来,我们将数据加载到Pandas(与之前一样)

    # define the data/predictors as the pre-set feature names

    df = pd.DataFrame(data.data, columns=data.feature_names)

    # Put the target (housing value -- MEDV) in another DataFrame

    target = pd.DataFrame(data.target, columns=["MEDV"])

    所以现在和之前一样,我们有包含自变量(标记为“df”)的DataFrame和具有因变量(标记为“target”)的DataFrame。我们使用SKLearn来拟合回归模型。

    首先,我们将定义我们的X和Y--这次我将使用DataFrame中的所有变量来预测住房价格:

    X = df

    y = target[“MEDV”]

    然后我会训练一个模型:

    lm = linear_model.LinearRegression()

    model = lm.fit(X,y)

    lm.fit()函数适合线性模型。我们希望使用模型进行预测,所以我们将使用lm.predict():

    predictions = lm.predict(X)

    print(predictions)[0:5]

    打印功能会打印Y的前5个预测(我没有打印整个列表以“节省空间”,删除[0:5]会打印整个列表):

    [30.00821269 25.0298606 30.5702317 28.60814055 27.94288232]

    请记住,lm.predict()使用我们拟合的线性模型预测Y(因变量)。

    你一定注意到当我们用SKLearn运行线性回归时,并没有像Statsmodels那样得到一张漂亮的表格(好吧,它不是那么漂亮......但是非常有用)。

    我们可以做的是使用内置函数来返回分数,系数和估计的截距。让我们看看它是如何工作的:

    lm.score(X,y)

    这个输出:

    0.7406077428649428

    这是我们模型的R²分数。之前讲过,R²是预测的解释方差的百分比。如果你有兴趣,请阅读这里。接下来,我们来看看预测变量的系数:

    lm.coef_

    会给出这个输出:

    array([-1.07170557e-01,4.63952195e-02,2.08602395e-

    02,2.68856140e + 00,-1.77957587e + 01,3.80475246e +

    00,7.51061703e-04,-1.47575880e + 00,3.05655038e-01 ,

    -1.23293463e-02,-9.53463555e-01,9.39251272e-03,

    -5.25466633e-01])

    来看看截距大小:

    lm.intercept_

    这将产生这样的结果:

    36.491103280363134

    这些都是我前面提到的多重回归方程的所有(估计/预测)部分。

    好啦,你已经学会了如果用Sklean来做线性回归啦,你也可以查看有关coef_和intercept_的更多信息。

    对于如何在Python中进行线性回归,这已经是一个速成(但是很长的篇幅)的学习。

    在实践中,你不会使用整个数据集,但是你会将数据分成一个训练数据来训练你的模型,以及一个测试数据来测试你的模型。

    下一篇文章,我还会用Python介绍其他的机器学习模型(*^▽^*)

    展开全文
  • 基于自适应多重多元回归的人脸年龄估计
  • 回归和lasso回归在OLS回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数构成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版;...

    解决问题:变量过多时可能会导致多重共线性问题造成回归系数的不显著,甚至造成OLS估计的失效

    岭回归和lasso回归在OLS回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数构成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版;另一方面,加入的惩罚项能够让模型变得可估计,即使之前的数据不满足列满秩,在稍后的原理推导中我们将更加详细的说明这一点。

    岭回归

    优点:有显式的解
    缺点:对于影响很小的因子的值不能趋近到0

    Lasso回归

    优点:可以将影响很小的因子的值减到0,更加便于筛选
    缺点:没有真实的解,只能逼近和估计解

    Stata的使用

    在 Stata 中,我们可以安装 lassopack 命令来实现 Lasso 回归,Lassopack 包含三个与 Lasso 相关的子命令(输入 help lassopack 可以查看详情): ‐ 子命令 lasso2 可进行 Lasso 估 计; ‐ 子命令 cvlasso 可进行 K 折交叉验证(k‐fold cross validation); ‐ 子命令 rlasso 可以估计惩罚项由数据决定或者高维情形(变量维度超过样本数)

    在这里插入图片描述

    K 折交叉验证

    我们使用 K 折交叉验证的方法来选择最佳的调整参数。

    所谓的 K 折交叉验证,是说将样本数据随机分为 K 个等分。将第 1 个子样本作为 “验证集”(validation set)而保留不用,而使用其余 K-1 个子样本作为 “训练集”(training set)来估计此模型,再以此预测第 1 个子样本,并计算第1个子样本的 “均方预测误差”(Mean Squared Prediction Error)。

    其次,将第 2 个子样本作为验证集,而使用其余 K-1 个子样本作为训练集来预测第2个子样本,并计算第 2 个子样本的 MSPE。

    以此类推,将所有子样本的 MSPE 加总,即可得整个样本的 MSPE。最后,选择调整参数 ,使得整个样本的 MSPE 最小,故具有最佳的预测能力。

    案例

    在这里插入图片描述

    cvlasso 单产 种子费 化肥费 农药费 机械费 灌溉费, lopt seed(520)
    

    在这里插入图片描述

    上表右边第 1 列即为 Lasso 所估计的变量系数。

    其中,除常数项外,只有 3 个变量的系数为非零,而其余变量(未出现在表中)的系数则为 0。

    考虑到作为收缩估计量的 Lasso 存在偏差(bias),上表右边第 2 列汇报了 “Post Lasso” 估计量的结果,即仅使用 Lasso 进行变量筛选,然后扔掉 Lasso 的回归系数,再对筛选出来的变量进行 OLS 回归。

    注意:以上结果可能随着我们之前设置的随机数种子变化,因为lasso回归的估计是近似算法,且剔除的多重共线性变量是相对的。

    总结

    何时使用lasso回归

    我们首先使用最一般的OLS对数据进行回归,然后计算方差膨胀因子VIF,如果VIF>10则说明存在多重共线性的问题,此时我们需要对变量进
    行筛选。

    在第七讲时我们提到可以使用逐步回归法来筛选自变量,让回归中仅留下显著的自变量来抵消多重共线性的影响,学完本讲后,大家完全可以把lasso回归视为逐步回归法的进阶版,我们可以使用lasso回归来帮我们筛选出不重要的变量,步骤如下:

    (1)判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理;
    (2)对变量使用lasso回归,记录下lasso回归结果表中回归系数不为0的变量,这些变量就是最终我们要留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量。

    在得到了重要变量后,我们实际上就完成了变量筛选,此时我们只将这些重要变量视为自变量,然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为lasso只起到变量筛选的目的)

    总结:
    (1)不是所有多元线性回归都需要这两种回归方式,如果变量较少,且相互独立没有变量间影响,就不要做这些操作
    (2)两种操作核心就是为了消除多变量带来的多重共线性问题
    (3)一般优先使用Lasso回归,更加便捷
    (4)且不要忘记数据的预处理和变量的标准化

    展开全文
  • R语言开发之多元(多重)回归了解下

    千次阅读 2018-09-19 14:47:03
    在简单的线性关系中,我们有一个预测因子一个响应变量,但在多元回归中,可以有多个预测变量一个响应变量,来看下多元(多重)回归的数学方程: y = a + b1x1 + b2x2 +...bnxn 参数描述如下: y - 是响应变量...

    多元(多重)回归是线性回归扩展到两个以上变量之间的关系。在简单的线性关系中,我们有一个预测因子和一个响应变量,但在多元回归中,可以有多个预测变量和一个响应变量,来看下多元(多重)回归的数学方程:

    y = a + b1x1 + b2x2 +...bnxn

    参数描述如下:

    • y - 是响应变量。
    • a,b1,b2 … bn - 是系数。
    • x1,x2,… xn - 是预测变量。

    我们可以使用R中的lm()函数创建回归模型,该模型使用输入数据确定系数的值。 完事之后,就可以使用这些系数来预测给定的一组预测变量的响应变量的值,或者说是创建预测变量与响应变量之间的关系模型,其中lm()的语法如下:

    lm(y ~ x1+x2+x3...,data)

    参数描述如下:

    • formula - 即:y ~ x1+x2+x3...是呈现响应变量和预测变量之间关系的符号。
    • data - 是应用公式的向量。

    我们使用R环境中可用的数据集mtcars,它比较不同的车型,每加仑里程(mpg),气缸排量(disp),马力(hp),汽车重量(wt)和一些更多的参数,该模型的目标是建立“mpg”作为响应变量与“disp”“hp”“wt”之间的关系作为预测变量。为此,我们从mtcars数据集创建这些变量的子集,如下:

    input <- mtcars[,c("mpg","disp","hp","wt")]
    print(head(input))

    输出结果如下:

                       mpg disp  hp    wt
    Mazda RX4         21.0  160 110 2.620
    Mazda RX4 Wag     21.0  160 110 2.875
    Datsun 710        22.8  108  93 2.320
    Hornet 4 Drive    21.4  258 110 3.215
    Hornet Sportabout 18.7  360 175 3.440
    Valiant           18.1  225 105 3.460

    我们接下来就要创建关系模型并得到系数,如下:

    input <- mtcars[,c("mpg","disp","hp","wt")]
    
    # Create the relationship model.
    model <- lm(mpg~disp+hp+wt, data = input)
    
    # Show the model.
    print(model)
    
    # Get the Intercept and coefficients as vector elements.
    cat("# # # # The Coefficient Values # # # ","\n")
    
    a <- coef(model)[1]
    print(a)
    
    Xdisp <- coef(model)[2]
    Xhp <- coef(model)[3]
    Xwt <- coef(model)[4]
    
    print(Xdisp)
    print(Xhp)
    print(Xwt)

    结果如下:

    Call:
    lm(formula = mpg ~ disp + hp + wt, data = input)
    
    Coefficients:
    (Intercept)         disp           hp           wt  
      37.105505      -0.000937        -0.031157    -3.800891  
    
    # # # # The Coefficient Values # # # 
    (Intercept) 
       37.10551 
             disp 
    -0.0009370091 
             hp 
    -0.03115655 
           wt 
    -3.800891

    基于上面实例所得到的截距和系数值,我们可以创建如下的数学方程:

    Y = a+Xdisp.x1+Xhp.x2+Xwt.x3
    ## 或者 
    Y = 37.15+(-0.000937)*x1+(-0.0311)*x2+(-3.8008)*x3

    当提供一组新的位移,马力和重量值时,我们可以使用上面创建的回归方程来预测里程,大意就是,对于具有disp = 221hp = 102wt = 2.91的汽车,预计里程预测为:

    Y = 37.15+(-0.000937)*221+(-0.0311)*102+(-3.8008)*2.91 = 22.7104

    好啦,本次记录就到这里了。

    如果感觉不错的话,请多多点赞支持哦。。。

    展开全文
  • 基于多重多元回归分析的单路口流量分析模型,亢旭东,许岷,在我国经济飞速发展之后,车辆的保有量使用率也飞速提升,而城市交通堵塞极大地妨碍了城市居民的正常出行。本文利用多重多元线
  • R语言多元(多重)回归

    千次阅读 2019-01-30 17:58:10
    在简单的线性关系中,我们有一个预测因子一个响应变量,但在多元回归中,可以有多个预测变量一个响应变量。 多元回归的一般数学方程为 - y = a + b1x1 + b2x2 +...bnxn 以下是使用的参数的描述 - y - 是...
  • 多元统计分析之多元线性回归的R语言实现多元统计分析--multivariate statistical analysis研究客观事物中多个变量之间相互...重要的多元统计分析方法有:多重回归分析、判别分析、聚类分析、主成分分析、对应分析、因...
  • 多元线性回归多重共线性Linear Regression is one of the simplest and most widely used algorithms for Supervised machine learning problems where the output is a numerical quantitative variable and the ...
  • 多重线性回归

    2012-12-20 20:44:30
    多重线性回归
  • 1 什么是多重共线性1.1 多重共线性含义1.2 多重共线性产生原因2 多重共线性后果2.1 完全型2.2 不完全型3 多重共线性检验3.1 简单相关系数检验3.2 方差膨胀因子法3.3 经验法3.4 逐步回归检测3.5 特征值与病态指数4 ...
  • 一元回归分析和多元线性回归 前言 在统计学中,回归分析(Regression Analysis)指的是确定两种或两种以上变量间的相互依赖的定量关系的一种分析方法。该方法常使用数据统计的基本原理,对大量统计数据进行数学处理...
  • 多元线性回归多重共线性Linear Regression is one of the simplest and most widely used algorithms for Supervised machine learning problems where the output is a numerical quantitative variable and the ...
  • 快速介绍Python中的线性回归嗨,大家好!在简要介绍Panads库NumPy库之后,我想快速介绍一下在Python中构建模型,还有什么比最基本的线性模型更好的...线性回归是用于检查两个(简单线性回归)或更多(多重线性回...
  • 今天主要大家分享一下自己关于多重回归的学习。在实际的项目以及学习中,我们多元回归的一般数学方程为: y = a + b1x1 + b2x2 +...bnxn 以下是所使用的参数的描述 - y是响应变量。 a,b1,...
  • 利用多重多元回归分析理论,在干燥过程中建立干燥指标与其影响因素之间的预测模型,从而达到预测含水率、应力的目的。选择温度、相对湿度、干燥时问作为自变量,应力、含水率作为因变量,建立多对多的木材干燥质量...
  • 解决多元线性回归中多重共线性问题的方法分析,谢小韦,印凡成,为了解决多元线性回归中自变量之间的多重共线性问题,常用的有三种方法: 岭回归、主成分回归和偏最小二乘回归。本文以考察职工平�
  • 本博文源于《商务统计》,旨在讲述如何观测多元回归下的可决(判定)系数.在一元线性回归中,因变量取值的变差中,能被估计的回归方程所解释的边变量的比例叫做可决系数。在多元线性回归中,这种也被叫做多重可决系数
  • STA 199:线性回归-多元回归 日期:3月31日,星期三 学习目标 回顾扩展我们前两个回归类中的概念 拟合并解释多个线性回归模型 评估回归推断的条件 检测多重共线性
  • R语言 多重回归

    2018-04-24 13:00:48
    在简单线性关系中,我们有一个预测变量一个响应变量,但在多元回归中,我们有多个预测变量一个响应变量。 多元回归的一般数学方程为 - y = a + b1x1 + b2x2 +...bnxn 以下是所使用的参数的描述 - y是...
  • 线性回归——简单线性回归多元线性回归

    千次阅读 多人点赞 2020-04-30 22:13:37
    当只有一个自变量时,称为简单线性回归,当具有多个自变量时,称为多元线性回归。 线性关系的理解: 画出来的图像是直的。 每个自变量的最高次项为1。 拟合是指构建一种算法,使得该算法能够符合真实的数据。从...
  • 多元线性回归模型

    万次阅读 多人点赞 2019-07-02 19:22:12
    多元线性回归模型通常用来描述变脸yx之间的随机线性关系,即: 如果对yx进行了x次观测,得到n组观察值yi,x1i,…,xki(i=1,2,…,n),他们满足一下关系式: 1.2模型参数的检验 在正态假定下,如果X是列...
  • R语言多元Logistic回归 应用案例 多元Logistic回归 如何进行多重逻辑回归 可以使用阶梯函数通过逐步过程确定多重逻辑回归。此函数选择模型以最小化AIC,而不是像手册中的SAS示例那样根据p值。另请注意,在此...
  • http://www.iikx.com/news/statistics/6460.html
  • 多重共线性指自变量问存在线性相关关系,即一个自变量可以用其他...而在使用多元线性回归构建模型过程中,变量之间存在多重共线性问题也是比较常见的。那么当发现多重线性回归模型中存在多重共线性时我们该如何处理呢
  • 多重线性回归(Multiple Linear Regression) 研究一个因变量与多个自变量间线性关系的方法 在实际工作中,因变量的变化往往受几个重要因素的影响,此时就需要用2个或2个以上的影响因素作为自变量来解释因变量的...
  • SPSS—回归多元线性回归结果分析(二)

    万次阅读 多人点赞 2014-03-19 17:57:28
    SPSS—回归多元线性回归结果分析(二) ,最近一直很忙,公司的潮起潮落,就好比人生的跌岩起伏,眼看着一步步走向衰弱,却无能为力,也许要学习“步步惊心”里面“四阿哥”的座右铭:“行到水穷处”,”坐看...
  • numpy - Python中的多元线性回归我似乎无法找到任何进行多重回归的python库。 我发现的唯一的东西只做简单的回归。 我需要对几个自变量(x1,x2,x3等)回归我的因变量(y)。例如,使用此数据:print 'y x1 x2 x3 ...

空空如也

空空如也

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

多重回归和多元回归