精华内容
下载资源
问答
  • 关于如何使用Matlab构建多元非线性回归模型在数学建模中有许多情况需要用到多远非线性回归
  • 基于MATLAB的多元非线性回归模型.pdf
  • 对实验获得的离散点进行拟合,采用最小二乘原理、多元非线性回归模型线性化理论计算并确定模型参数,建立半焦分选特性的多元非线性回归模型,模型计算结果与实验数据吻合较好,相对误差均在9%以内。
  • 基于MATLAB的多元非线性回归模型

    热门讨论 2010-05-17 01:01:32
    基于MATLAB的多元非线性回归模型。文章充分利用 MATLAB统计工具箱的优势 ,通过程序的实现 ,对多元非线性回归模型的未知参数的估计方法以及对估 计后的模型预报做出研究 ,并以实例验证了该方法的有效性。
  • import numpy as npclass LinearRegression:'''支持多元线性回归'''def __init__(self):'''初始化 Linear Regression 模型'''self.coef_ = Noneself.interception_ = Noneself._theta = Nonedef fit_normal(self,X_...

    import numpy as np

    class LinearRegression:

    '''支持多元线性回归'''

    def __init__(self):

    '''初始化 Linear Regression 模型'''

    self.coef_ = None

    self.interception_ = None

    self._theta = None

    def fit_normal(self,X_train,y_train):

    '''根据训练数据 X_train, y_train 训练 Linear Regression 模型'''

    assert X_train.shape[0] == y_train.shape[0],

    'the size of X_train must equal to y_train'

    X_b = np.hstack(np.ones(len(X_train,1)),X_train)

    self._theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)

    self.interception_ = self._theta[0]

    self.coef_ = self.theta[1:]

    return self

    def predict(self,x_predict):

    '''给定 x_predict 进行预测'''

    assert self.coef_ is not None and self.interception_ is not None,

    'must fit_normal before predict'

    assert x_predict.shape[1] == len(self.coef_),'the feature of x_predict must be equal to self.coef_'

    X_b = np.hstack(np.ones(len(x_predict,1)),x_predict)

    return X_b.dot(self._theta)

    def fit_gd(self,X_train,y_train,eta=0.01,n_iters=1e4):

    '''根据训练数据集X_train, y_train, 使用梯度下降法训练 Linear Regression 模型'''

    assert X_train.shape[0] == y_train.shape[0],'the size of X_train must be equal to y_train'

    def J(theta,X_b,y):

    try:

    return np.sum((y-X_b.dot(theta))**2) / len(y)

    except:

    return float('inf')

    def dJ(theta,X_b,y):

    return X_b.T.dot(X_b.dot(theta)-y)*2. / len(y)

    def gradient_descent(X_b,y,initial_theta,eta,n_iters=1e4,epsilon=1e-4):

    '''梯度下降法'''

    theta = initial_theta

    cur_iter = 0

    while cur_iter < n_iters:

    gradient = dJ(theta,X_b,y)

    las_theta = theta

    theta = theta - dJ(theta,X_b,y)*eta

    if (abs(dJ(theta,X_b,y)-dJ(last_theta,X_b,y))) < epsilon:

    break

    cur_iter += 1

    return theta

    def __repre__(self):

    return 'LinearRegression() Module'

    展开全文
  • 基于潮流跟踪理论确定线路功率的主导开闭所负荷,并建立线路功率与主导开闭所负荷之间的功率分摊多元非线性回归模型。在此基础上,提出以变电站下网功率之和最大为目标函数,以电网N - 1供电安全准则下的变电站主变...
  • 1、可线性化的非线性分析变量之间的非线性形式较多,较为常见的形式如下图:非线性形式的变量关系一般可以通过变量代换或转换的方式转化为线性关系。横纵轴所代表变量之间的关系为幂函数形式的关系,即可建立的模型...

    1、可线性化的非线性分析

    变量之间的非线性形式较多,较为常见的形式如下图:

    非线性形式的变量关系一般可以通过变量代换或转换的方式转化为线性关系。横纵轴所代表变量之间的关系为幂函数形式的关系,即可建立的模型为:

    其中a、β为模型参数,ε为误差项。

    在实际建模过程中,可以把上述模型左右变量同时取对数,可得:

    令y’=lny,x’=Inx,a’=Ina 可得如下模型:

    类似的,对数模型y=a+βInx+ε,可以转换成y=a+βx’+ε的线性形式;

    指数模型:

    对上式两边同时取对数,可得Iny=lna+βx+ε,再用变量代换转换为y’=a’+βx+ε的线性形式;

    逻辑斯蒂(Logistic)模型:

    可以转换为:

    再使用变量代换的形式转换成线性形式;

    抛物线模型同理也可作类似处理。

    类似的,在存在多个自变量情形下的非线性回归,也可以按照上述变量转换和代换的方式把多元非线性模型转化为多元线性模型。

    2、非线性回归模型

    对常见非线性模型进行线性转换后用线性回归的参数估计方法进行参数估计虽然较简单,但有时估计效果不理想。当对因变量y作变换时,由于线性回归的最小二乘估计是对变换后的y而不是直接对y进行估计,在此基础上估计的曲线可能会造成拟合效果并不理想。此外,有些时候变量间的曲线关系比较明显,关系式也已知,但是难以用变量变换或代换的方式将其线性化,这个时候可以考虑直接使用非线性最小二乘估计方法来估计模型参数。

    此外,非线性回归模型还有一种情况:模型中至少有一个参数不是线性的,该模型也可称之为非线性模型。如有如下模型:

    对模型右边求偏导数并利用回归模型经典假定,得到:

    由上述第二个偏导数得知,自变量对因变量的影响还会受到参数β本身的影响,而自变量β通过对因变量发生的作用并不是线性的。这种模型可称之为非线性回归模型。

    非线性模型的参数一般可以使用最小二乘及迭代算法进行估计,主要估计方法有最速下降法(Steepest-Descent)或梯度法(Gradient Method)、牛顿法( Newton Method)、修正高斯-牛顿法(Modified Gauss-Newton Method)和麦夸特法(Marquardt Method)等。一般而言, 非线性曲线的拟合程度均较高,在考虑实际数据的拟合问题时,一般的分析过程往往不会给出模型检验结果。

    展开全文
  • 试试像这样的编辑:添加了一个使用线性回归结果估计输出的示例函数。import numpy as npdata =np.array([[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],[0.042780748663101636, -0....

    试试像这样的

    编辑:添加了一个使用线性回归结果估计输出的示例函数。import numpy as np

    data =np.array(

    [[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],

    [0.042780748663101636, -0.0044771571786609945, -0.10506567946276074],

    [0.542780748663101636, -0.005771571786609945, 0.30506567946276074],

    [-0.342780748663101636, -0.0304077157178660995, 0.90506567946276074]])

    coefficient = data[:,0:2]

    dependent = data[:,-1]

    x,residuals,rank,s = np.linalg.lstsq(coefficient,dependent)

    def f(x,u,v):

    return u*x[0] + v*x[1]

    for datum in data:

    print f(x,*datum[0:2])

    它给予>>> x

    array([ 0.16991146, -30.18923739])

    >>> residuals

    array([ 0.07941146])

    >>> rank

    2

    >>> s

    array([ 0.64490113, 0.02944663])

    用你的系数创建的函数0.115817326583

    0.142430900298

    0.266464019171

    0.859743371665

    更多信息可以在我作为评论发布的documentation上找到。

    编辑2:将数据拟合到任意模型。

    编辑3:使我的模型成为易于理解的函数。

    编辑4:使代码更容易读取/更改为二次拟合模型,但您应该能够读取此代码并知道如何使其最小化您现在想要的任何剩余。

    捏造的例子:import numpy as np

    from scipy.optimize import leastsq

    data =np.array(

    [[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],

    [0.042780748663101636, -0.0044771571786609945, -0.10506567946276074],

    [0.542780748663101636, -0.005771571786609945, 0.30506567946276074],

    [-0.342780748663101636, -0.0304077157178660995, 0.90506567946276074]])

    coefficient = data[:,0:2]

    dependent = data[:,-1]

    def model(p,x):

    a,b,c = p

    u = x[:,0]

    v = x[:,1]

    return (a*u**2 + b*v + c)

    def residuals(p, y, x):

    a,b,c = p

    err = y - model(p,x)

    return err

    p0 = np.array([2,3,4]) #some initial guess

    p = leastsq(residuals, p0, args=(dependent, coefficient))[0]

    def f(p,x):

    return p[0]*x[0] + p[1]*x[1] + p[2]

    for x in coefficient:

    print f(p,x)

    给予-0.108798280153

    -0.00470479385807

    0.570237823475

    0.413016072653

    展开全文
  • 在单因子实验的基础上,以激光功率、光斑移动速率、激光频率作为3个影响因子,建立多元非线性数学回归模型,通过方差分析和回归分析得出该回归模型的相关系数:切口抗张强度的相关系数为0.9131,切口峰值温度的相关...
  • function [fitresult, gof] = createFit(x1, x2, y)[xData, yData, zData] = prepareSurfaceData( x1, x2, y );% Set up fittype and options.ft = fittype( '(A/x)*exp(B/x)*y^(-C)', 'independent', {'x', 'y'}, '...

    function [fitresult, gof] = createFit(x1, x2, y)

    [xData, yData, zData] = prepareSurfaceData( x1, x2, y );

    % Set up fittype and options.

    ft = fittype( '(A/x)*exp(B/x)*y^(-C)', 'independent', {'x', 'y'}, 'dependent', 'z' );

    opts = fitoptions( 'Method', 'NonlinearLeastSquares' );

    opts.Display = 'Off';

    opts.StartPoint = [0.913375856139019 0.63235924622541 0.0975404049994095];

    % Fit model to data.

    [fitresult, gof] = fit( [xData, yData], zData, ft, opts );

    % Plot fit with data.

    figure( 'Name', 'untitled fit 1' );

    h = plot( fitresult, [xData, yData], zData );

    legend( h, 'untitled fit 1', 'y vs. x1, x2', 'Location', 'NorthEast' );

    % Label axes

    xlabel x1

    ylabel x2

    zlabel y

    grid on

    试试上面的函数,不过用你的数据看拟合效果比较差

    展开全文
  • 我正在尝试使用数据集在R中运行非线性多元回归,它有数千行,所以我只是将前几个放在这里:Header.1 Header.2 Header.3 Header.4 Header.5 Header.6 Header.71 -60 -45 615 720 1.8318 0.428 -11.6142 -59 -...
  • 【Matlab学习手记】多元非线性回归

    千次阅读 2019-08-16 10:46:15
    介绍两种方法做多元非线性回归:lsqcurvefit、Adagrad 法。 lsqcurvefit是Matlab提供的内置函数,用于基于最小二乘的曲线拟合问题...% 多元非线性回归模型 % z = w1 * exp(-x / w2) + w3 * y % z = 10 * exp(-x / 5...
  • contents;Functional from misspecification;Functional Form;Functional Form (continued;Functional Form (continued;RESET test, example;If the models have the same dependent variables, but nonnested xs co
  • 第一章一元线性回归与证券投资回归分析 第二章 一般多元线性回归模型 第三章多元线性回归模型的有偏估计 第四章异方差与自相关广义线性模型 第五章方差分量线性回归模型 第六章虚拟与离散变量...第七章非线性回归模型
  • MATLAB实现多元非线性回归

    万次阅读 多人点赞 2019-01-10 16:25:36
    简单多元非线性回归算例 现有以下数据 i x1 x2 x3 y 1 1.1 2 3.2 10.1 2 1 2 3.2 10.2 3 1.2 1.8 3 10 4 1.1 1.9 2.9 10.1 5 0.9 2.1 2.9 10 假如有以下模型: y=ax1+bx2+cx32y=ax_1+bx_2+cx_3^2y...
  • 基于华北型深部煤层底板破坏深度实测数据,考虑了多因素耦合的特点,运用多元非线性回归的方法构建了深部煤层底板破坏深度预测模型,与《建筑物、水体、铁路及主要井巷煤柱留设与压煤开采规程》给出的线性回归公式进行...
  • 1 单因素试验的方差分析 2 双因素试验的方差分析 3 一元线性回归 4 多元线性回归
  • 以黄陵矿煤层瓦斯含量与相关因素的数据为例,采用基于多元非线性回归理论的数学方法,建立了一种适合矿井实际的预测模型:多元非线性瓦斯含量预测模型,通过该模型进行了煤层瓦斯含量预测,预测精度较高,适用性较强。
  • MATLAB多元线性回归

    2018-08-19 23:45:22
    MATLAB多元线性回归: 基于MATLAB的多元非线性回归模型.pdf 多元线性回归建模以及MATLAB和SPSS求解.pdf MATLAB语言在多元线性回归中的应用.pdf
  • 为准确预测元宝山露天煤矿涌水量,提高煤矿生产安全系数,基于矿区多降雨量和煤炭产量实测数据,以降雨量和煤炭产量为涌水量影响因子,运用水文地质比拟法和多元非线性回归分析法,分别建立矿区涌水量预测模型,通过对比...
  • SAS进行多元非线性回归

    千次阅读 2012-09-12 21:13:49
    多元非线性回归方程重要方法是转化为线性回归方程.转化时应首先选择适合的非线性回归形式,并将其线性化。对于实际问题,首先应对原始数据进行作图或通过观察,选择适当函数进行拟合。 已知1978~2006年全国GDP(y)...
  • 使用MATLAB进行多元非线性回归——nlinfit函数的使用

    万次阅读 多人点赞 2018-12-03 16:29:11
    帮我对象做数据分析时遇到的问题,发现网上matlab多元非线性回归例子很少,写下来这篇用作参考 使用beta= nlinfit(x, y, model, beta0)  ——x为自变量,可以是多个自变量 ——y为因变量,只能由一个 ——model...
  • UA MATH571A 多元线性回归V 自相关与非线性模型简介Durbin-Watson检验一阶误差自回归模型模型的性质预测一阶自相关的消去Cochrane-Orcutt方法Hildreth-Lu方法一阶差分法非线性回归及其最小二乘估计非线性回归的一般...
  • 3.1多元线性回归模型 一、多元线性回归模型多元线性回归模型的一般形式为: Y=β0+β1*X1+β2*X1+⋯+βk*X1+μ 其中k为解释变量的数目, βj (j=0,1,⋯,k)称为回归系数。上式也被称为总体随机函数的随机表达形式...
  • 多元线性回归模型及stata实现:总论

    千次阅读 2020-06-30 20:49:53
    多元线性回归方程及stata实现 一、模型 Y=β0+β1X1+β2X2+⋯+βnXn+e Y: Dependent variable(因变量、应变量、反应变量、响应变量、被解释变量等) X1、X2⋯Xn:Independent variable(自变量、解释变量、控制...
  • 多元线性回归模型中的常数项

    万次阅读 2018-03-19 17:15:21
    作者:flyerye链接:https://www.zhihu.com/question/22450977/answer/250476871来源:...从定义来看,多元线性回归方程定义如下:这里的 a 为常数项, 为随机误差项,且服从标准正态分布( ),或者我们把它称作白...
  • 本文主要包含以下内容:1 简介2 最大似然和最小二乘3 最小二乘几何4 序列学习5 正则化最小二乘6 多元...因此,通过输入变量的固定的非线性函数的组合来扩展这个模型的类:其中是基函数(basis functions),其最大值的...
  • 大的因素,然后运用多元二次回归分析做进一步的定量研究,并与DPS系统的分析结果进行对比。结果 表明,灰色关联分析可以较好的得到与裂缝导流能力关系密切的因素,回归分析可以得出因素间的具体 定量关系,且回归分析计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386
精华内容 154
关键字:

多元非线性回归模型