精华内容
下载资源
问答
  • 研究一片小区域且较为平坦的区域,应用最小二乘和总体最小二乘对平面拟合法、二次曲面拟合法和三次曲面拟合法进行探讨,并在Visual Studio平台上用Cshape语言实现高程拟合的过程。
  • 文中针对矿区高程异常参数求解中,传统最小二乘系数矩阵易受观测值误差影响、总体最小二乘难以抵抗粗差等缺陷,提出一种抗差加权总体最小二乘算法。采用模拟和矿区实测数据对算法进行验证,结果表明:该算法既能削弱系数...
  • 一种Ⅱ型 T-S 模糊系统参数辨识法--总体最小二乘
  • 为此,分析了局部放电测量数据粗差的来源及现有定位算法的缺陷,提出了基于稳健加权总体最小二乘的局部放电定位算法,采用含误差变量模型推导迭代公式,运用权函数修改含粗差数据在迭代过程中的权重,能够有效抑制...
  • 谐波频率估计的总体最小二乘方法TLS-ESPRIT,是ESPRIT的改进方法。
  • STLS与CTLS的等价性证明

    参考文献:[1]Bart De Moor. Total Least Squares forAffinely Structured Matrices and the Noisy Realization Problem.

              [2]Pilippe Lmmerling, Bart De Moor,Sabine Van Huffel. On the Equivalen-ce of Constrained Total Least Square andStructured Total Least Squares.

              


    展开全文
  • 总体最小二乘(TLS)

    2014-11-15 21:15:00
    总体最小二乘是一种推广最小二乘方法,本文的主要内容参考张贤达的《矩阵分析与应用》。 1. 最小二乘法 最小二乘法,大家都很熟悉,用在解决一超定方程。最小“二”乘的“二”体现在准则上——令误差的平方和...

    对于见得多了的东西,我往往就习以为常了,慢慢的就默认了它的存在,而不去思考内在的一些道理。总体最小二乘是一种推广最小二乘方法,本文的主要内容参考张贤达的《矩阵分析与应用》。

    1. 最小二乘法

        最小二乘法,大家都很熟悉,用在解决一超定方程Ax=b。最小“二”乘的“二”体现在准则上——令误差的平方和最小,等价于

       最小二乘解为(非奇异)

    x=(A^TA)^{- 1}A^T b

        可以从多个角度来理解最小二乘方法,譬如从几何方面考虑,利用正交性原理导出。

        Steven M.Kay 的《统计信号处理—估计理论》中是这样介绍最小二乘估计的:最小二乘估计特点在于对观察数据没有任何概率假设,只需要假设一个信号模型,因此它不是最佳的,如果没有对数据的概率结构做出假设,其统计性能也是无法评判的。(实际上LSE可能是MVU,说不是最佳有些不妥)

        当然,我们希望能够分析最小二乘解的特性,即使不能对其进行全面的评判,至少需要了解其应用范围和特点。

    2. 稳定性分析

        一个好的估计往往具有无偏和最小方差的特性(或是渐进无偏的,譬如最大似然估计)。Gauss-Markov定理告诉我们,对于数据向量b具有加性噪声或者扰动的超定方程A \theta = b e,如果误差向量满足以下条件,此时最小二乘解是无偏且具有最小方差的。

    E\{e\}=0,    conv(e)=E\{ee^H\}=\sigma ^2 I

        定理证明可见张贤达《矩阵分析与应用》p406页。这一结论表明,最小二乘解是一个很好的估计,那么问题出现在哪呢?我们注意到,采用最小均方误差准则的线性回归(Linear regression)和最小二乘解具有相同的形式。《Machine Learning plus Intelligent Optimization》书中有这样一幅图显示了线性回归中存在的稳定性问题。

     

    image

        左图表示一个好的数据集合能够确定一个稳定的平面。右图中,不恰当的取样点使得微小的扰动会导致大的结果的偏差。 然而往往数据集的分布是不可控的。

     

        稳定性指数据小的扰动只会导致小的结果偏差。一个良态问题(well-posed problem)是稳定的,然而实际上的问题往往是病态(ill-posed)。为此,在线性回归以及其他多种解决问题方案中采用了正则化方法。广为应用的方法是Tichonov regularization,思想在于利解的先验知识使解稳定,即假设解是光滑的。关于正则化问题,可以参考Simon Haykin的《神经网络原理》,此处不做讨论。对于稳定性分析,或者说数值稳定性,《矩阵分析与应用》p342进行了详细的讨论。

     


    (矩阵)数值稳定性

        研究矩阵Ax=b,其中Ab发生扰动时,解向量如何发生变化?讨论得到以下结果

        由此可见,影响解向量变化的重要参数是,我们将其记为条件数,记作

        这就是矩阵的条件数的定义,由上式易知,条件数刻画了误差经过矩阵后扩大为解向量误差的程度。当系数矩阵一个很小扰动只会引起解向量很小变化的时候,我们将矩阵称为是“良态”的,反之称为是“病态”的。

        正定矩阵的Cholesky分解这篇文章中提到了矩阵的“良态”和特征值之间的关系,此处我并没有进行太多思考,有兴趣的话可以去看看特征值扩散度相关知识。wiki百科上给出的例子表明,如果采用2-范数,条件数可以记为

    cond(A)=\frac{\sigma_{max}(A)}{\sigma_{min}(A)}

        其中\sigma (A)代表的是矩阵的奇异值。

     


        最小二乘法中对于超定方程实际求解的是A^H Ax=A^Hb,条件数表示为

    cond(A^H A)=[cond(A)]^2

        也就是说,A,b误差对方程解的影响和A的条件数的平方成反比,这显然是我们不愿意看到的。采用正则化方法实际求解的是A^H A \lambda I,由上可知条件数下降了(从2-范数来看,分子分母同时加上了\lambda)。

    3.总体最小二乘

        如果说模型是完全正确的,我们根本不需要考虑算法的稳定性(当然,由于计算机计算时会有截位,所以这是不可能的)。道理很简单,没有扰动,为何需要分析稳定性呢?这充分说明了,最小二乘没有考虑到扰动的存在,因此其稳定性较差是情有可原的。

        可以对矩阵有扰动情况下,最小二乘的性能进行分析,矩阵A的扰动矩阵非零情况下,x_{LS}一般有偏。且可以证明(p407)x_{LS}\approx (A_0^HA_0)^{-1}\Delta A (A_0^HA_0)^{-1}A_0^Hb_0

        如果\Delta A为零均值,方差为\sigma _1^2的独立同分布噪声,\Delta b为零均值,方差为\sigma_1^2的独立同分布噪声。此时最小二乘解方差相对于矩阵无扰动下增加倍数等于

    1 (\sigma _1/\sigma_2)^2|\.|(A_0^HA_0)^{-1}A_0^Hb_0||^2

        我们知道其根源在于没有考虑矩阵A的扰动,在这一情况下,为了克服最小二乘的缺点,引入了总体最小二乘方法。

     

        总体最小二乘思想在于分别使用扰动向量和扰动矩阵去修正Ab中的扰动。也就是说,总体最小二乘解决以下问题

        其中E为扰动矩阵, ,此处范数采用Frobenius范数。

        利用增广矩阵B=[-b,A]的奇异值分解可以求得总体最小二乘解。(只讨论超定方程情况)其中分为两种情况:只有一个最小的奇异值时有一组解,最小奇异值多重或者后面若干个非常接近时求解某一意义下的最小二乘解。即B^HB应该是非满秩矩阵(由于噪声存在,一般都是满秩的),因此对应最小特征值的特征向量就是总体最小二乘解,多个相同最小二乘解时特征向量有多个,因此加上其他约束求解。具体方法本文不做论述。

    4.TLS解释和分析

        真正吸引人的不是TLS的解法,而是它到底为何能够(在一定条件下)弥补LS的缺点?(虽然从其推导过程中感觉是有效的)即使有效,那么原因是什么呢?

        张贤达书p414页神奇的推导出了这么一个结果(不可逆情况下求伪逆,此时有其他诸如最小范数的约束)

    x_{TLS}=(A^HA-\sigma_{n 1}^2I)^{-1}A^Hb

        第一眼看到这个结果的时候,我想:怎么可能?正则化中的加法很有道理,这里的减法不是会让情况更差吗?但是这里的解释很有道理

        总体最小二乘可以解释为一种具有噪声消除的最小二乘方法,先从协方差矩阵中减去噪声影响项,然后再对矩阵求逆求解,得到最小二乘解。

        那么问题出在哪呢?我们注意到正则化中的\lambda是任意选取的,或者说不是“任意”,也是和矩阵A没有多大关系的。然而此处的\sigma_{n 1}^2实际上是矩阵B的奇异值中的最小的那个,由于TLS采用了完全不同的思路,出现相异的结果也就不足为奇了。

     

        我们再对TLS进行详细的分析,实际上b\in Range(A),所以B^HB至少应该有一个特征值为零的。由于噪声的存在,这一要求往往是达不到的。假设噪声是高斯白且独立同分布,那么噪声的自相关矩阵是对角阵,也就相当于在所有特征值上加上了一个固定的常数,这个常数就是噪声的方差。一般而言B^HB是实数,其特征值都是正数,所以我们可以认为最小的特征值(多个最小则都取)实际上就是噪声的方差。这些特征值对应的特征函数构成的线性空间被称为噪声子空间。总体最小二乘就是去除了噪声的最小二乘,从这一点上看,TLS对矩阵A的扰动有抑制作用,即TLS的更加接近无扰动子空间。

        对于扰动敏感度分析,可参考《矩阵分析与应用》p416。

    5.总结

        接触这一方法的时间不长,如有错误,还请大家指正。本文只对其进行了理论上的分析,就我接触而言,在谱分析中总体最小二乘应用广泛,不知在其他应用上是否能够取得好的效果。就线性回归而言,一般情况下正则化方法应该会有更好的效果,总体最小二乘还是有太多的假设了。不知这一结论是否正确,还请大家指明或仿真分析。

        但毋庸置疑的是,总体最小二乘在很多地方都取得了很好的效果,或许还能够得到更广泛的应用。同时,最重要的是在这一过程中我深刻的体会到了对越熟悉的东西要越了解,而不是麻木。

     

        算法对扰动的敏感度要低,我们对算法的敏感度要高才好。

    转载于:https://www.cnblogs.com/sea-wind/p/4100246.html

    展开全文
  • python实现总体最小二乘(TLS)

    千次阅读 2018-01-25 22:43:41
    用python实现总体最小二乘 导入库,读取数据(数据网址为点击打开链接) import numpy as np import matplotlib.pyplot as plt import pandas as pd data=pd.read_table("/Users/cofreewy.txt") x1=data['...

    用python实现总体最小二乘

    导入库,读取数据(数据网址为点击打开链接

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    data=pd.read_table("/Users/cofreewy.txt")
    x1=data['Traffic']
    y1=data['CO']
    数据归一化

    from sklearn.preprocessing import scale
    x1= scale(x1)
    y1=scale(y1)
    (1)拟合普通最小二乘 -- OLS

    from scipy.optimize import leastsq
    p0=[1,20]
    def func(p,x):
        k,b=p
        return k*x+b
    def error(p,x,y):
        return func(p,x)-y
    Para=leastsq(error,p0,args=(x1,y1))
    #读取结果
    #coding=utf-8
    k,b=Para[0]
    print("k=",k,"b=",b)
    print("cost:"+str(Para[1]))
    print("拟合直线为:")
    print("y="+str(round(k,4))+"x"+str(round(b,4))

    #输出的OLS结果

     ('k=', 0.9626654614422958, 'b=', -4.1450221033301204e-10)

      cost:1
     拟合直线为:
      y=0.9627x+-0.0

    画散点图及拟合直线

    #画样本点
    plt.scatter(x1,y1,color="green",label="label_num",linewidth=1)
    #画拟合直线
    y_ols=k*x1+b ##函数式
    plt.plot(x1,y_ols,color="red",label="ols",linewidth=1) 
    plt.legend(loc='lower right') #绘制图例
    plt.show()


    (2)定义总体最小二乘 -- TLS

    # Total Least Squares:
    def line_total_least_squares(x,y):
        n = len(x)
        
        x_m = np.sum(x)/n
        y_m = np.sum(y)/n
        
        # Calculate the x~ and y~ 
        x1 = x - x_m
        y1 = y - y_m
        
        # Create the matrix array
        X = np.vstack((x1, y1))
        X_t = np.transpose(X)
        
        # Finding A_T_A and it's Find smallest eigenvalue::
        prd = np.dot(X,X_t)
        W,V = np.linalg.eig(prd)
        small_eig_index = W.argmin()
        a,b = V[:,small_eig_index] 
        
        # Compute C:
        c = (-1*a*x_m) + (-1*b*y_m)
        
        return a,b,c
    打印结果

    # Total Least Squares:
    print ('Training................................')
    a1,b1,c1 = line_total_least_squares(x1,y1)
    print ('Training Complete')
    print 'a = ', a1
    print 'b = ', b1
    print 'c = ', c1
    print("总体最小二乘法拟合直线为:")
    print("y="+str(round(-a1,4))+"x"+str(round(-b1,4)))
    #--TLS--输出拟合直线结果为
    Training Complete
    a =  -0.7071067811865474
    b =  0.7071067811865477
    c =  1.242989863124656e-16
    总体最小二乘法拟合直线为:
    y=0.7071x-0.7071
    
    绘出普通最小二乘和总体最小二乘拟合直线
    
    plt.figure(figsize=(6,6))
    y_fitted = -1*(a1/b1)*x1 + (-1*(c1/b1))
    plt.scatter(x1,y1,color="green",label="label_num",linewidth=1)
    plt.plot(x1,y_fitted,color="red",label="LST",linewidth=1)
    plt.plot(x1,y_ols,color="y",label="ols",linewidth=1) 
    plt.legend(loc='lower right')
    plt.show()

    拟合图结果


    展开全文
  • 数据的直线拟合: 1. Data: Y = X*B, B = (a, b), 拟合直线y = ax + b。 >> X X =  0.50000 1.00000  0.80000 1.00000  1.10000 1.00000  1.80000 1.00000  4.00000 1.00000 ... 7.10000

     

    数据的直线拟合:
    1. Data:  Y = X*B, B = (a, b), 拟合直线y = ax + b。

    >> X =[0.50000   1.00000;   0.80000   1.00000;   1.10000   1.00000;   1.80000   1.00000;   4.00000   1.00000]
    X =


       0.50000   1.00000
       0.80000   1.00000
       1.10000   1.00000
       1.80000   1.00000
       4.00000   1.00000


    >> Y = [7.10000   4.40000   3.20000   1.90000   0.9]'
    Y =


       7.10000
       4.40000
       3.20000
       1.90000
       0.90000


    1. LS:

    >> B = inv(X'*X) * (X' * Y)
    B =

      -1.4052
       5.8046

    拟合出直线:a = -1.4052, b = 5.8046;

    2. TLS:  法向量A = [t0 t1], 拟合直线 t0*(x-MX) + t1*(y-MY)=0.

    >> MX = mean(X(:,1))
    MX =  1.6400
    >> MY = mean(Y)
    MY =  3.5000
    >> [m, n] = size(X)
    m =  5
    n =  2
    >> C = ones(m, 2);

    >> dX = X(:, 1) .- MX;

    >> C(:, 1)=dX

    >> dY = Y .- MY;

    >> C(:, 1)=dX;

    >> C(:, 2)=dY;
    >> C
    C =


      -1.14000   3.60000
      -0.84000   0.90000
      -0.54000  -0.30000
       0.16000  -1.60000
       2.36000  -2.60000


    >>  [MU, MS] = eigs(C'*C)
    MU =


      -0.46502  -0.88530
       0.88530  -0.46502


    MS =


    Diagonal Matrix


       29.0052         0
             0    2.0668


    >> A = MU(:, 2)
    A =


      -0.88530
      -0.46502


    >> t0 = A(1,1)
    t0 = -0.88530
    >>  t1 = A(2,1)
    t1 = -0.46502
    >> a = -t0/t1
    a = -1.9038
    >> b = (t0.*MX+t1.*MY)./t1
    b =  6.6222
    >> B
    B =


      -1.4052
       5.8046


    >> PX=[0, 1, 2, 3, 4]
    PX =


       0   1   2   3   4


    >> PX=[0, 1, 2, 3, 4]'
    PX =


       0
       1
       2
       3
       4


    >> PY0=PX.*B(1,1) + B(2, 1)
    PY0 =


       5.80456
       4.39934
       2.99412
       1.58890
       0.18368


    >> PY1=PX.*a + b
    PY1 =


       6.62224
       4.71843
       2.81463
       0.91083
      -0.99298


    >> plot(X(:, 1), Y, 'o');
    >> hold on
    >> plot(MX, MY, '*');
    >> plot(PX, PY0);
    >> plot(PX, PY1);
    >> plot(PX, PY1, 'r');



    3. y = C * exp(A*x);   线性化拟合: Y = Ax + B,   y = ln(Y), C = exp(B).




    展开全文
  • 总体最小二乘法的ESPRIT方法,这种算法的估计精度明显好于原来的ESPRIT算法(matlab程序)
  • 文中基于GM(1,1)灰色模型,分为两步进行预测:第一步,利用总体最小二乘法顾及观测向量与系数矩阵中含有的误差,解得灰参数与预测结果;第二步,将预测值重新代入,对数据的信息进行更新,保持模型维度不变并重新组成系数...
  • 针对铁路线路正矢数据特征,考虑自变量、因变量同时存在误差的情况,提出EIV(Error-in-Variables)模型下的加权总体最小二乘法(WTLS)进行曲线拟合。通过分析拟合点贡献的不等确定度以及修正设计矩阵[A]的列向量...
  • 最小二乘估计量1 线性CEF和线性回归模型从线性CEF:可以知道随机变量组合满足这里的叫做误差。实际中,我们只能得到随机变量组合的某一组实现,N是样本量。参照式(1)我们有理由构造如下线性回归模型:注意:是未知的...
  • 谐波频率估计的总体最小二乘方法ESPRIT-估计原信号的频率.
  • 二种最小二乘曲面拟合

    千次阅读 2019-05-18 21:29:55
    如果我有很多XYZ坐标值,怎么对该数据进行移动最小二乘曲面拟合和总体最小二乘拟合?麻烦大神可以回答下,非常感谢@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想...
  • 图片来自网络,侵删 回顾上一篇文章...假设四:随机干扰项同方差且序列不相关 假设五:随机干扰项具有正态分布 再看看我们在一元线性回归时,估计模型中的参数的套路:夔小攀:计量经济学:一元线性回归最小二乘估计...
  • 回顾上上篇文章:夔小攀:计量... 总体回归模型:样本回归函数:样本回归模型:上一篇文章不加解释地阐述了一元线性回归的假设前提,在这里先不予回顾。从建立经济学模型的四个步骤来看,我们已经建立了理论模型,...
  • 对未知参数的估计方法有三种:矩估计(运用p+q个样本的自相关系数估计总体的自相关系数),极大似然估计(使得联合密度函数达到最大的参数值),最小二乘估计(使得残差平方和达到最小的那组参数值即为最小二乘估计)。...
  • 其次,匹配点的空间关系由核偏最小二乘(KPLS)编码。 通过分析KPLS特征从粗到细的共线性,可以指示错误的匹配。 最后,使用正确的匹配项来实现准确的注册。 实验结果表明,总体上显着减少了不匹配,同时保持了较高...
  • 1. 概览 偏最小二乘算法,因其仅仅利用数据X和Y中部分信息(partial information)来建模,所以得此名字。其总体处理框架体现在下面两图中。 建议先看第2部分,对pls算法有初步了解后再看此框架,会有更全面深入的...
  • 图片来自网络,侵删 回顾上一篇文章...假设四:随机干扰项同方差且序列不相关 假设五:随机干扰项具有正态分布 再看看我们在一元线性回归时,估计模型中的参数的套路:夔小攀:计量经济学:一元线性回归最小二乘估计...
  • 异方差性以及加权最小二乘优化

    万次阅读 2017-03-01 09:00:14
    所谓同方差,是为了保证回归参数估计量具有良好的统计性质,经典线性回归模型的一个重要假定:总体回归函数中的随机误差项满足同方差性,即它们都有相同的方差。如果这一假定不满足,即:随机误差项具有不同的方差,...
  • 给定模型与参数,我们就能对样本空间进行描述。大家很自然地会问,这个描述是不是最... 常用的参数估计方法有:最小二乘估计,最大似然估计和最大后验估计,其中最小二乘估计用于函数模型的参数估计,最大似然估计和...
  • 最小二乘就是对n个点进行拟合,使其距离拟合直线的总体误差尽量小。求解方法也很简单,就是最小化每个点到直线的垂直误差。 1、建立方差误差 2、求导得参数 缺点:1、无法拟合垂直线,且由于误差采用的是垂直...
  • 回归分析-(偏)最小二乘

    千次阅读 2011-04-08 21:10:00
    Reference: 李卫东,2008,《应用多元统计分析》 回归分析 英文名称:regression ...通过样本的假设检验来估计总体的a和b。求a、b的估计值一般采用最小二乘法。 采用spass做回归分析步骤:1. 模
  • 一. 最大似然估计(Maximum Likelihood Estimation) 首先理解概率和似然概率, 概率:指给定参数之后,预测即将发生的事件的可能性;...(1) 由总体分布到处样本的联合概率函数(分布信息) (2) ...
  • 回顾上上篇文章:夔小攀:计量... 总体回归模型:样本回归函数:样本回归模型:上一篇文章不加解释地阐述了一元线性回归的假设前提,在这里先不予回顾。从建立经济学模型的四个步骤来看,我们已经建立了理论模型,...
  • 关于总体最小二乘问题的条件数,贾仲孝,李冰玉,本文研究了总体最小二乘问题条件数的计算公式和上下界。给定一个以 为数据的总体最小二乘问题,文中给出了两个简单的计算公式。�

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 127
精华内容 50
关键字:

总体最小二乘