Least squares method for finding errors. Method of least squares examples of problem solving

Method least squares(LSM) allows you to estimate various quantities using the results of multiple measurements containing random errors.

Characteristic MNC

Main idea this method consists in the fact that as a criterion for the accuracy of the solution of the problem, the sum of squared errors is considered, which is sought to be minimized. When using this method, both numerical and analytical approaches can be applied.

In particular, as a numerical implementation, the least squares method implies carrying out as much as possible more measurements of the unknown random variable. Moreover, the more calculations, the more accurate the solution will be. On this set of calculations (initial data), another set of proposed solutions is obtained, from which the best one is then selected. If the set of solutions is parametrized, then the least squares method will be reduced to finding the optimal value of the parameters.

As an analytical approach to the implementation of the LSM on the set of initial data (measurements) and the proposed set of solutions, some (functional) is defined, which can be expressed by a formula obtained as a certain hypothesis that needs to be confirmed. In this case, the least squares method is reduced to finding the minimum of this functional on the set of squared errors of the initial data.

Note that not the errors themselves, but the squares of the errors. Why? The fact is that often deviations of measurements from exact value are both positive and negative. When determining the average, simple summation can lead to an incorrect conclusion about the quality of the estimate, since the mutual cancellation of positive and negative values ​​will reduce the sampling power of the set of measurements. And, consequently, the accuracy of the assessment.

To prevent this from happening, the squared deviations are summed up. Even more than that, in order to equalize the dimension of the measured value and the final estimate, the sum of squared errors is used to extract

Some applications of MNCs

MNC is widely used in various fields. For example, in probability theory and mathematical statistics the method is used to determine such a characteristic of a random variable as the mean standard deviation, which determines the width of the range of values ​​of the random variable.

  • Programming
    • tutorial

    Introduction

    I am a computer programmer. I made the biggest leap in my career when I learned to say: "I do not understand anything!" Now I am not ashamed to tell the luminary of science that he is giving me a lecture, that I do not understand what it, the luminary, is talking to me about. And it's very difficult. Yes, it's hard and embarrassing to admit you don't know. Who likes to admit that he does not know the basics of something-there. By virtue of my profession, I have to attend a large number of presentations and lectures, where, I confess, in the vast majority of cases I feel sleepy, because I do not understand anything. And I don’t understand because the huge problem of the current situation in science lies in mathematics. It assumes that all students are familiar with absolutely all areas of mathematics (which is absurd). To admit that you do not know what a derivative is (that this is a little later) is a shame.

    But I've learned to say that I don't know what multiplication is. Yes, I don't know what a subalgebra over a Lie algebra is. Yes, I don't know why you need in life quadratic equations. By the way, if you are sure that you know, then we have something to talk about! Mathematics is a series of tricks. Mathematicians try to confuse and intimidate the public; where there is no confusion, no reputation, no authority. Yes, it is prestigious to speak in the most abstract language possible, which is complete nonsense in itself.

    Do you know what a derivative is? Most likely you will tell me about the limit of the difference relation. In the first year of mathematics at St. Petersburg State University, Viktor Petrovich Khavin me defined derivative as the coefficient of the first term of the Taylor series of the function at the point (it was a separate gymnastics to determine the Taylor series without derivatives). I laughed at this definition for a long time, until I finally understood what it was about. The derivative is nothing more than just a measure of how much the function we are differentiating is similar to the function y=x, y=x^2, y=x^3.

    I now have the honor of lecturing students who fear mathematics. If you are afraid of mathematics - we are on the way. As soon as you try to read some text and it seems to you that it is overly complicated, then know that it is badly written. I argue that there is not a single area of ​​mathematics that cannot be spoken about "on fingers" without losing accuracy.

    The challenge for the near future: I instructed my students to understand what a linear-quadratic controller is. Don't be shy, waste three minutes of your life, follow the link. If you do not understand anything, then we are on the way. I (a professional mathematician-programmer) also did not understand anything. And I assure you, this can be sorted out "on the fingers." On the this moment I do not know what it is, but I assure you that we will be able to figure it out.

    So, the first lecture that I am going to give to my students after they come running to me in horror with the words that a linear-quadratic controller is a terrible bug that you will never master in your life is least squares methods. Can you decide linear equations? If you are reading this text, then most likely not.

    So, given two points (x0, y0), (x1, y1), for example, (1,1) and (3,2), the task is to find the equation of a straight line passing through these two points:

    illustration

    This straight line should have an equation like the following:

    Here alpha and beta are unknown to us, but two points of this line are known:

    You can write this equation in matrix form:

    Here we should make a lyrical digression: what is a matrix? A matrix is ​​nothing but a two-dimensional array. This is a way of storing data, no more values ​​​​should be given to it. It is up to us how exactly to interpret a certain matrix. Periodically, I will interpret it as a linear mapping, periodically as a quadratic form, and sometimes simply as a set of vectors. This will all be clarified in context.

    Let's replace specific matrices with their symbolic representation:

    Then (alpha, beta) can be easily found:

    More specifically for our previous data:

    Which leads to the following equation of a straight line passing through the points (1,1) and (3,2):

    Okay, everything is clear here. And let's find the equation of a straight line passing through three points: (x0,y0), (x1,y1) and (x2,y2):

    Oh-oh-oh, but we have three equations for two unknowns! The standard mathematician will say that there is no solution. What will the programmer say? And he will first rewrite the previous system of equations in the following form:

    In our case vectors i,j,b are three-dimensional, hence (in the general case) there is no solution to this system. Any vector (alpha\*i + beta\*j) lies in the plane spanned by the vectors (i, j). If b does not belong to this plane, then there is no solution (equality in the equation cannot be achieved). What to do? Let's look for a compromise. Let's denote by e(alpha, beta) how exactly we did not achieve equality:

    And we will try to minimize this error:

    Why a square?

    We are looking not just for the minimum of the norm, but for the minimum of the square of the norm. Why? The minimum point itself coincides, and the square gives a smooth function (a quadratic function of the arguments (alpha,beta)), while just the length gives a function in the form of a cone, non-differentiable at the minimum point. Brr. Square is more convenient.

    Obviously, the error is minimized when the vector e orthogonal to the plane spanned by the vectors i And j.

    Illustration

    In other words: we are looking for a line such that the sum of the squared lengths of the distances from all points to this line is minimal:

    UPDATE: here I have a jamb, the distance to the line should be measured vertically, not orthographic projection. the commenter is right.

    Illustration

    In completely different words (carefully, poorly formalized, but it should be clear on the fingers): we take all possible lines between all pairs of points and look for the average line between all:

    Illustration

    Another explanation on the fingers: we attach a spring between all data points (here we have three) and the line that we are looking for, and the line of the equilibrium state is exactly what we are looking for.

    Quadratic form minimum

    So, given the vector b and the plane spanned by the columns-vectors of the matrix A(in this case (x0,x1,x2) and (1,1,1)), we are looking for a vector e with a minimum square of length. Obviously, the minimum is achievable only for the vector e, orthogonal to the plane spanned by the columns-vectors of the matrix A:

    In other words, we are looking for a vector x=(alpha, beta) such that:

    I remind you that this vector x=(alpha, beta) is the minimum quadratic function||e(alpha, beta)||^2:

    Here it would be useful to remember that the matrix can be interpreted as well as the quadratic form, for example, identity matrix((1,0),(0,1)) can be interpreted as a function of x^2 + y^2:

    quadratic form

    All this gymnastics is known as linear regression.

    Laplace equation with Dirichlet boundary condition

    Now the simplest real problem: there is a certain triangulated surface, it is necessary to smooth it. For example, let's load my face model:

    The original commit is available. To minimize external dependencies, I took the code of my software renderer, already on Habré. For solutions linear system I use OpenNL , it's a great solver, but it's really hard to install: you need to copy two files (.h+.c) to your project folder. All smoothing is done by the following code:

    For (int d=0; d<3; d++) { nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, verts.size()); nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); nlBegin(NL_SYSTEM); nlBegin(NL_MATRIX); for (int i=0; i<(int)verts.size(); i++) { nlBegin(NL_ROW); nlCoefficient(i, 1); nlRightHandSide(verts[i][d]); nlEnd(NL_ROW); } for (unsigned int i=0; i&face = faces[i]; for (int j=0; j<3; j++) { nlBegin(NL_ROW); nlCoefficient(face[ j ], 1); nlCoefficient(face[(j+1)%3], -1); nlEnd(NL_ROW); } } nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); nlSolve(); for (int i=0; i<(int)verts.size(); i++) { verts[i][d] = nlGetVariable(i); } }

    X, Y and Z coordinates are separable, I smooth them separately. That is, I solve three systems of linear equations, each with the same number of variables as the number of vertices in my model. The first n rows of matrix A have only one 1 per row, and the first n rows of vector b have original model coordinates. That is, I spring-tie between the new vertex position and the old vertex position - the new ones shouldn't be too far away from the old ones.

    All subsequent rows of matrix A (faces.size()*3 = the number of edges of all triangles in the grid) have one occurrence of 1 and one occurrence of -1, while the vector b has zero components opposite. This means I put a spring on each edge of our triangular mesh: all edges try to get the same vertex as their starting and ending points.

    Once again: all vertices are variables, and they cannot deviate far from their original position, but at the same time they try to become similar to each other.

    Here is the result:

    Everything would be fine, the model is really smoothed, but it moved away from its original edge. Let's change the code a little:

    For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }

    In our matrix A, for the vertices that are on the edge, I add not a row from the category v_i = verts[i][d], but 1000*v_i = 1000*verts[i][d]. What does it change? And this changes our quadratic form of the error. Now a single deviation from the top at the edge will cost not one unit, as before, but 1000 * 1000 units. That is, we hung a stronger spring on the extreme vertices, the solution prefers to stretch others more strongly. Here is the result:

    Let's double the strength of the springs between the vertices:
    nlCoefficient(face[ j ], 2); nlCoefficient(face[(j+1)%3], -2);

    It is logical that the surface has become smoother:

    And now even a hundred times stronger:

    What's this? Imagine that we have dipped a wire ring in soapy water. As a result, the resulting soap film will try to have the least curvature as possible, touching the same border - our wire ring. This is exactly what we got by fixing the border and asking for a smooth surface inside. Congratulations, we have just solved the Laplace equation with Dirichlet boundary conditions. Sounds cool? But in fact, just one system of linear equations to solve.

    Poisson equation

    Let's have another cool name.

    Let's say I have an image like this:

    Everyone is good, but I don't like the chair.

    I cut the picture in half:



    And I will select a chair with my hands:

    Then I will drag everything that is white in the mask to the left side of the picture, and at the same time I will say throughout the whole picture that the difference between two neighboring pixels should be equal to the difference between two neighboring pixels of the right image:

    For (int i=0; i

    Here is the result:

    Code and pictures are available

    • tutorial

    Introduction

    I am a computer programmer. I made the biggest leap in my career when I learned to say: "I do not understand anything!" Now I am not ashamed to tell the luminary of science that he is giving me a lecture, that I do not understand what it, the luminary, is talking to me about. And it's very difficult. Yes, it's hard and embarrassing to admit you don't know. Who likes to admit that he does not know the basics of something-there. By virtue of my profession, I have to attend a large number of presentations and lectures, where, I confess, in the vast majority of cases I feel sleepy, because I do not understand anything. And I don’t understand because the huge problem of the current situation in science lies in mathematics. It assumes that all students are familiar with absolutely all areas of mathematics (which is absurd). To admit that you do not know what a derivative is (that this is a little later) is a shame.

    But I've learned to say that I don't know what multiplication is. Yes, I don't know what a subalgebra over a Lie algebra is. Yes, I do not know why quadratic equations are needed in life. By the way, if you are sure that you know, then we have something to talk about! Mathematics is a series of tricks. Mathematicians try to confuse and intimidate the public; where there is no confusion, no reputation, no authority. Yes, it is prestigious to speak in the most abstract language possible, which is complete nonsense in itself.

    Do you know what a derivative is? Most likely you will tell me about the limit of the difference relation. In the first year of mathematics at St. Petersburg State University, Viktor Petrovich Khavin me defined derivative as the coefficient of the first term of the Taylor series of the function at the point (it was a separate gymnastics to determine the Taylor series without derivatives). I laughed at this definition for a long time, until I finally understood what it was about. The derivative is nothing more than just a measure of how much the function we are differentiating is similar to the function y=x, y=x^2, y=x^3.

    I now have the honor of lecturing students who fear mathematics. If you are afraid of mathematics - we are on the way. As soon as you try to read some text and it seems to you that it is overly complicated, then know that it is badly written. I argue that there is not a single area of ​​mathematics that cannot be spoken about "on fingers" without losing accuracy.

    The challenge for the near future: I instructed my students to understand what a linear-quadratic controller is. Don't be shy, waste three minutes of your life, follow the link. If you do not understand anything, then we are on the way. I (a professional mathematician-programmer) also did not understand anything. And I assure you, this can be sorted out "on the fingers." At the moment I do not know what it is, but I assure you that we will be able to figure it out.

    So, the first lecture that I am going to give to my students after they come running to me in horror with the words that a linear-quadratic controller is a terrible bug that you will never master in your life is least squares methods. Can you solve linear equations? If you are reading this text, then most likely not.

    So, given two points (x0, y0), (x1, y1), for example, (1,1) and (3,2), the task is to find the equation of a straight line passing through these two points:

    illustration

    This straight line should have an equation like the following:

    Here alpha and beta are unknown to us, but two points of this line are known:

    You can write this equation in matrix form:

    Here we should make a lyrical digression: what is a matrix? A matrix is ​​nothing but a two-dimensional array. This is a way of storing data, no more values ​​​​should be given to it. It is up to us how exactly to interpret a certain matrix. Periodically, I will interpret it as a linear mapping, periodically as a quadratic form, and sometimes simply as a set of vectors. This will all be clarified in context.

    Let's replace specific matrices with their symbolic representation:

    Then (alpha, beta) can be easily found:

    More specifically for our previous data:

    Which leads to the following equation of a straight line passing through the points (1,1) and (3,2):

    Okay, everything is clear here. And let's find the equation of a straight line passing through three points: (x0,y0), (x1,y1) and (x2,y2):

    Oh-oh-oh, but we have three equations for two unknowns! The standard mathematician will say that there is no solution. What will the programmer say? And he will first rewrite the previous system of equations in the following form:

    In our case, the vectors i, j, b are three-dimensional, therefore, (in the general case) there is no solution to this system. Any vector (alpha\*i + beta\*j) lies in the plane spanned by the vectors (i, j). If b does not belong to this plane, then there is no solution (equality in the equation cannot be achieved). What to do? Let's look for a compromise. Let's denote by e(alpha, beta) how exactly we did not achieve equality:

    And we will try to minimize this error:

    Why a square?

    We are looking not just for the minimum of the norm, but for the minimum of the square of the norm. Why? The minimum point itself coincides, and the square gives a smooth function (a quadratic function of the arguments (alpha,beta)), while just the length gives a function in the form of a cone, non-differentiable at the minimum point. Brr. Square is more convenient.

    Obviously, the error is minimized when the vector e orthogonal to the plane spanned by the vectors i And j.

    Illustration

    In other words: we are looking for a line such that the sum of the squared lengths of the distances from all points to this line is minimal:

    UPDATE: here I have a jamb, the distance to the line should be measured vertically, not orthographic projection. This commenter is correct.

    Illustration

    In completely different words (carefully, poorly formalized, but it should be clear on the fingers): we take all possible lines between all pairs of points and look for the average line between all:

    Illustration

    Another explanation on the fingers: we attach a spring between all data points (here we have three) and the line that we are looking for, and the line of the equilibrium state is exactly what we are looking for.

    Quadratic form minimum

    So, given the vector b and the plane spanned by the columns-vectors of the matrix A(in this case (x0,x1,x2) and (1,1,1)), we are looking for a vector e with a minimum square of length. Obviously, the minimum is achievable only for the vector e, orthogonal to the plane spanned by the columns-vectors of the matrix A:

    In other words, we are looking for a vector x=(alpha, beta) such that:

    I remind you that this vector x=(alpha, beta) is the minimum of the quadratic function ||e(alpha, beta)||^2:

    Here it is useful to remember that the matrix can be interpreted as well as the quadratic form, for example, the identity matrix ((1,0),(0,1)) can be interpreted as a function of x^2 + y^2:

    quadratic form

    All this gymnastics is known as linear regression.

    Laplace equation with Dirichlet boundary condition

    Now the simplest real problem: there is a certain triangulated surface, it is necessary to smooth it. For example, let's load my face model:

    The original commit is available. To minimize external dependencies, I took the code of my software renderer, already on Habré. To solve the linear system, I use OpenNL , it's a great solver, but it's very difficult to install: you need to copy two files (.h + .c) to your project folder. All smoothing is done by the following code:

    For (int d=0; d<3; d++) { nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, verts.size()); nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); nlBegin(NL_SYSTEM); nlBegin(NL_MATRIX); for (int i=0; i<(int)verts.size(); i++) { nlBegin(NL_ROW); nlCoefficient(i, 1); nlRightHandSide(verts[i][d]); nlEnd(NL_ROW); } for (unsigned int i=0; i&face = faces[i]; for (int j=0; j<3; j++) { nlBegin(NL_ROW); nlCoefficient(face[ j ], 1); nlCoefficient(face[(j+1)%3], -1); nlEnd(NL_ROW); } } nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); nlSolve(); for (int i=0; i<(int)verts.size(); i++) { verts[i][d] = nlGetVariable(i); } }

    X, Y and Z coordinates are separable, I smooth them separately. That is, I solve three systems of linear equations, each with the same number of variables as the number of vertices in my model. The first n rows of matrix A have only one 1 per row, and the first n rows of vector b have original model coordinates. That is, I spring-tie between the new vertex position and the old vertex position - the new ones shouldn't be too far away from the old ones.

    All subsequent rows of matrix A (faces.size()*3 = the number of edges of all triangles in the grid) have one occurrence of 1 and one occurrence of -1, while the vector b has zero components opposite. This means I put a spring on each edge of our triangular mesh: all edges try to get the same vertex as their starting and ending points.

    Once again: all vertices are variables, and they cannot deviate far from their original position, but at the same time they try to become similar to each other.

    Here is the result:

    Everything would be fine, the model is really smoothed, but it moved away from its original edge. Let's change the code a little:

    For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }

    In our matrix A, for the vertices that are on the edge, I add not a row from the category v_i = verts[i][d], but 1000*v_i = 1000*verts[i][d]. What does it change? And this changes our quadratic form of the error. Now a single deviation from the top at the edge will cost not one unit, as before, but 1000 * 1000 units. That is, we hung a stronger spring on the extreme vertices, the solution prefers to stretch others more strongly. Here is the result:

    Let's double the strength of the springs between the vertices:
    nlCoefficient(face[ j ], 2); nlCoefficient(face[(j+1)%3], -2);

    It is logical that the surface has become smoother:

    And now even a hundred times stronger:

    What's this? Imagine that we have dipped a wire ring in soapy water. As a result, the resulting soap film will try to have the least curvature as possible, touching the same border - our wire ring. This is exactly what we got by fixing the border and asking for a smooth surface inside. Congratulations, we have just solved the Laplace equation with Dirichlet boundary conditions. Sounds cool? But in fact, just one system of linear equations to solve.

    Poisson equation

    Let's have another cool name.

    Let's say I have an image like this:

    Everyone is good, but I don't like the chair.

    I cut the picture in half:



    And I will select a chair with my hands:

    Then I will drag everything that is white in the mask to the left side of the picture, and at the same time I will say throughout the whole picture that the difference between two neighboring pixels should be equal to the difference between two neighboring pixels of the right image:

    For (int i=0; i

    Here is the result:

    Code and pictures are available

    Example.

    Experimental data on the values ​​of variables X And at are given in the table.

    As a result of their alignment, the function

    Using least square method, approximate these data with a linear dependence y=ax+b(find parameters but And b). Find out which of the two lines is better (in the sense of the least squares method) aligns the experimental data. Make a drawing.

    The essence of the method of least squares (LSM).

    The problem is to find the linear dependence coefficients for which the function of two variables but And b takes the smallest value. That is, given the data but And b the sum of the squared deviations of the experimental data from the found straight line will be the smallest. This is the whole point of the least squares method.

    Thus, the solution of the example is reduced to finding the extremum of a function of two variables.

    Derivation of formulas for finding coefficients.

    A system of two equations with two unknowns is compiled and solved. Finding partial derivatives of functions by variables but And b, we equate these derivatives to zero.

    We solve the resulting system of equations by any method (for example substitution method or Cramer's method) and obtain formulas for finding the coefficients using the least squares method (LSM).

    With data but And b function takes the smallest value. The proof of this fact is given below the text at the end of the page.

    That's the whole method of least squares. Formula for finding the parameter a contains the sums ,,, and the parameter n- amount of experimental data. The values ​​of these sums are recommended to be calculated separately. Coefficient b found after calculation a.

    It's time to remember the original example.

    Solution.

    In our example n=5. We fill in the table for the convenience of calculating the amounts that are included in the formulas of the required coefficients.

    The values ​​in the fourth row of the table are obtained by multiplying the values ​​of the 2nd row by the values ​​of the 3rd row for each number i.

    The values ​​in the fifth row of the table are obtained by squaring the values ​​of the 2nd row for each number i.

    The values ​​of the last column of the table are the sums of the values ​​across the rows.

    We use the formulas of the least squares method to find the coefficients but And b. We substitute in them the corresponding values ​​from the last column of the table:

    Consequently, y=0.165x+2.184 is the desired approximating straight line.

    It remains to find out which of the lines y=0.165x+2.184 or better approximates the original data, i.e. to make an estimate using the least squares method.

    Estimation of the error of the method of least squares.

    To do this, you need to calculate the sums of squared deviations of the original data from these lines And , a smaller value corresponds to a line that better approximates the original data in terms of the least squares method.

    Since , then the line y=0.165x+2.184 approximates the original data better.

    Graphic illustration of the least squares method (LSM).

    Everything looks great on the charts. The red line is the found line y=0.165x+2.184, the blue line is , the pink dots are the original data.

    In practice, when modeling various processes - in particular, economic, physical, technical, social - these or those methods of calculating the approximate values ​​of functions from their known values ​​at some fixed points are widely used.

    Problems of approximation of functions of this kind often arise:

      when constructing approximate formulas for calculating the values ​​of the characteristic quantities of the process under study according to the tabular data obtained as a result of the experiment;

      in numerical integration, differentiation, solving differential equations, etc.;

      if it is necessary to calculate the values ​​of functions at intermediate points of the considered interval;

      when determining the values ​​of the characteristic quantities of the process outside the considered interval, in particular, when forecasting.

    If, in order to model a certain process specified by a table, a function is constructed that approximately describes this process based on the least squares method, it will be called an approximating function (regression), and the task of constructing approximating functions itself will be an approximation problem.

    This article discusses the possibilities of the MS Excel package for solving such problems, in addition, methods and techniques for constructing (creating) regressions for tabularly given functions (which is the basis of regression analysis) are given.

    There are two options for building regressions in Excel.

      Adding selected regressions (trendlines) to a chart built on the basis of a data table for the studied process characteristic (available only if a chart is built);

      Using the built-in statistical functions of an Excel worksheet that allows you to get regressions (trendlines) directly from a table of source data.

    Adding Trendlines to a Chart

    For a table of data describing a certain process and represented by a diagram, Excel has an effective regression analysis tool that allows you to:

      build on the basis of the least squares method and add to the diagram five types of regressions that model the process under study with varying degrees of accuracy;

      add an equation of the constructed regression to the diagram;

      determine the degree of compliance of the selected regression with the data displayed on the chart.

    Based on the chart data, Excel allows you to get linear, polynomial, logarithmic, exponential, exponential types of regressions, which are given by the equation:

    y = y(x)

    where x is an independent variable, which often takes the values ​​of a sequence of natural numbers (1; 2; 3; ...) and produces, for example, a countdown of the time of the process under study (characteristics).

    1 . Linear regression is good at modeling features that increase or decrease at a constant rate. This is the simplest model of the process under study. It is built according to the equation:

    y=mx+b

    where m is the tangent of the slope linear regression to the x-axis; b - coordinate of the point of intersection of the linear regression with the y-axis.

    2 . A polynomial trendline is useful for describing characteristics that have several distinct extremes (highs and lows). The choice of the degree of the polynomial is determined by the number of extrema of the characteristic under study. Thus, a polynomial of the second degree can well describe a process that has only one maximum or minimum; polynomial of the third degree - no more than two extrema; polynomial of the fourth degree - no more than three extrema, etc.

    In this case, the trend line is built in accordance with the equation:

    y = c0 + c1x + c2x2 + c3x3 + c4x4 + c5x5 + c6x6

    where the coefficients c0, c1, c2,... c6 are constants whose values ​​are determined during construction.

    3 . The logarithmic trend line is successfully used in modeling characteristics, the values ​​of which change rapidly at first, and then gradually stabilize.

    y = c ln(x) + b

    4 . The power trend line gives good results if the values ​​of the studied dependence are characterized by a constant change in the growth rate. An example of such a dependence can serve as a graph of uniformly accelerated movement of the car. If there are zero or negative values ​​in the data, you cannot use a power trendline.

    It is built in accordance with the equation:

    y = cxb

    where the coefficients b, c are constants.

    5 . An exponential trendline should be used if the rate of change in the data is continuously increasing. For data containing zero or negative values, this kind of approximation is also not applicable.

    It is built in accordance with the equation:

    y=cebx

    where the coefficients b, c are constants.

    When selecting a trend line, Excel automatically calculates the value of R2, which characterizes the accuracy of the approximation: the closer the R2 value is to one, the more reliably the trend line approximates the process under study. If necessary, the value of R2 can always be displayed on the diagram.

    Determined by the formula:

    To add a trend line to a data series:

      activate the chart built on the basis of the data series, i.e., click within the chart area. The Chart item will appear in the main menu;

      after clicking on this item, a menu will appear on the screen, in which you should select the Add trend line command.

    The same actions are easily implemented if you hover over the graph corresponding to one of the data series and right-click; in the context menu that appears, select the Add trend line command. The Trendline dialog box will appear on the screen with the Type tab opened (Fig. 1).

    After that you need:

    On the Type tab, select the required trend line type (Linear is selected by default). For the Polynomial type, in the Degree field, specify the degree of the selected polynomial.

    1 . The Built on Series field lists all the data series in the chart in question. To add a trendline to a specific data series, select its name in the Built on series field.

    If necessary, by going to the Parameters tab (Fig. 2), you can set the following parameters for the trend line:

      change the name of the trend line in the Name of the approximating (smoothed) curve field.

      set the number of periods (forward or backward) for the forecast in the Forecast field;

      display the equation of the trend line in the chart area, for which you should enable the checkbox show the equation on the chart;

      display the value of the approximation reliability R2 in the diagram area, for which you should enable the checkbox put the value of the approximation reliability (R^2) on the diagram;

      set the point of intersection of the trend line with the Y-axis, for which you should enable the checkbox Intersection of the curve with the Y-axis at a point;

      click the OK button to close the dialog box.

    There are three ways to start editing an already built trend line:

      use the Selected trend line command from the Format menu, after selecting the trend line;

      select the Format Trendline command from the context menu, which is called by right-clicking on the trendline;

      by double clicking on the trend line.

    The Format Trendline dialog box will appear on the screen (Fig. 3), containing three tabs: View, Type, Parameters, and the contents of the last two completely coincide with the similar tabs of the Trendline dialog box (Fig. 1-2). On the View tab, you can set the line type, its color and thickness.

    To delete an already constructed trend line, select the trend line to be deleted and press the Delete key.

    The advantages of the considered regression analysis tool are:

      the relative ease of plotting a trend line on charts without creating a data table for it;

      a fairly wide list of types of proposed trend lines, and this list includes the most commonly used types of regression;

      the possibility of predicting the behavior of the process under study for an arbitrary (within common sense) number of steps forward, as well as backward;

      the possibility of obtaining the equation of the trend line in an analytical form;

      the possibility, if necessary, of obtaining an assessment of the reliability of the approximation.

    The disadvantages include the following points:

      the construction of a trend line is carried out only if there is a chart built on a series of data;

      the process of generating data series for the characteristic under study based on the trend line equations obtained for it is somewhat cluttered: the required regression equations are updated with each change in the values ​​of the original data series, but only within the chart area, while the data series formed on the basis of the old line equation trend, remains unchanged;

      In PivotChart reports, when you change the chart view or the associated PivotTable report, existing trendlines are not preserved, so you must ensure that the layout of the report meets your requirements before you draw trendlines or otherwise format the PivotChart report.

    Trend lines can be added to data series presented on charts such as a graph, histogram, flat non-normalized area charts, bar, scatter, bubble and stock charts.

    You cannot add trendlines to data series on 3-D, Standard, Radar, Pie, and Donut charts.

    Using Built-in Excel Functions

    Excel also provides a regression analysis tool for plotting trendlines outside the chart area. A number of statistical worksheet functions can be used for this purpose, but all of them allow you to build only linear or exponential regressions.

    Excel has several functions for building linear regression, in particular:

      TREND;

    • SLOPE and CUT.

    As well as several functions for constructing an exponential trend line, in particular:

      LGRFPapprox.

    It should be noted that the techniques for constructing regressions using the TREND and GROWTH functions are practically the same. The same can be said about the pair of functions LINEST and LGRFPRIBL. For these four functions, when creating a table of values, Excel features such as array formulas are used, which somewhat clutters up the process of building regressions. We also note that the construction of a linear regression, in our opinion, is easiest to implement using the SLOPE and INTERCEPT functions, where the first of them determines the slope of the linear regression, and the second determines the segment cut off by the regression on the y-axis.

    The advantages of the built-in functions tool for regression analysis are:

      a fairly simple process of the same type of formation of data series of the characteristic under study for all built-in statistical functions that set trend lines;

      a standard technique for constructing trend lines based on the generated data series;

      the ability to predict the behavior of the process under study for the required number of steps forward or backward.

    And the disadvantages include the fact that Excel does not have built-in functions for creating other (except linear and exponential) types of trend lines. This circumstance often does not allow choosing a sufficiently accurate model of the process under study, as well as obtaining forecasts close to reality. In addition, when using the TREND and GROW functions, the equations of the trend lines are not known.

    It should be noted that the authors did not set the goal of the article to present the course of regression analysis with varying degrees of completeness. Its main task is to show the capabilities of the Excel package in solving approximation problems using specific examples; demonstrate what effective tools Excel has for building regressions and forecasting; illustrate how relatively easily such problems can be solved even by a user who does not have deep knowledge of regression analysis.

    Examples of solving specific problems

    Consider the solution of specific problems using the listed tools of the Excel package.

    Task 1

    With a table of data on the profit of a motor transport enterprise for 1995-2002. you need to do the following.

      Build a chart.

      Add linear and polynomial (quadratic and cubic) trend lines to the chart.

      Using the trend line equations, obtain tabular data on the profit of the enterprise for each trend line for 1995-2004.

      Make a profit forecast for the enterprise for 2003 and 2004.

    The solution of the problem

      In the range of cells A4:C11 of the Excel worksheet, we enter the worksheet shown in Fig. 4.

      Having selected the range of cells B4:C11, we build a chart.

      We activate the constructed chart and, according to the method described above, after selecting the type of trend line in the Trend Line dialog box (see Fig. 1), we alternately add linear, quadratic and cubic trend lines to the chart. In the same dialog box, open the Parameters tab (see Fig. 2), in the Name of the approximating (smoothed) curve field, enter the name of the added trend, and in the Forecast forward for: periods field, set the value 2, since it is planned to make a profit forecast for two years ahead. To display the regression equation and the approximation reliability value R2 in the diagram area, enable the checkboxes Show the equation on the screen and place the approximation reliability value (R^2) on the diagram. For better visual perception, we change the type, color, and thickness of the constructed trend lines, for which we use the View tab of the Trend Line Format dialog box (see Fig. 3). The resulting chart with added trend lines is shown in fig. five.

      To obtain tabular data on the profit of the enterprise for each trend line for 1995-2004. Let's use the equations of the trend lines presented in fig. 5. To do this, in the cells of the D3:F3 range, enter textual information about the type of the selected trend line: Linear trend, Quadratic trend, Cubic trend. Next, enter the linear regression formula in cell D4 and, using the fill marker, copy this formula with relative references to the range of cells D5:D13. It should be noted that each cell with a linear regression formula from the range of cells D4:D13 has a corresponding cell from the range A4:A13 as an argument. Similarly, for quadratic regression, the cell range E4:E13 is filled, and for cubic regression, the cell range F4:F13 is filled. Thus, a forecast was made for the profit of the enterprise for 2003 and 2004. with three trends. The resulting table of values ​​is shown in fig. 6.

    Task 2

      Build a chart.

      Add logarithmic, exponential and exponential trend lines to the chart.

      Derive the equations of the obtained trend lines, as well as the values ​​of the approximation reliability R2 for each of them.

      Using the trend line equations, obtain tabular data on the profit of the enterprise for each trend line for 1995-2002.

      Make a profit forecast for the business for 2003 and 2004 using these trend lines.

    The solution of the problem

    Following the methodology given in solving problem 1, we obtain a diagram with added logarithmic, exponential and exponential trend lines (Fig. 7). Further, using the obtained trend line equations, we fill in the table of values ​​for the profit of the enterprise, including the predicted values ​​for 2003 and 2004. (Fig. 8).

    On fig. 5 and fig. it can be seen that the model with a logarithmic trend corresponds to the lowest value of the approximation reliability

    R2 = 0.8659

    The highest values ​​of R2 correspond to models with a polynomial trend: quadratic (R2 = 0.9263) and cubic (R2 = 0.933).

    Task 3

    With a table of data on the profit of a motor transport enterprise for 1995-2002, given in task 1, you must perform the following steps.

      Get data series for linear and exponential trendlines using the TREND and GROW functions.

      Using the TREND and GROWTH functions, make a profit forecast for the enterprise for 2003 and 2004.

      For the initial data and the received data series, construct a diagram.

    The solution of the problem

    Let's use the worksheet of task 1 (see Fig. 4). Let's start with the TREND function:

      select the range of cells D4:D11, which should be filled with the values ​​of the TREND function corresponding to the known data on the profit of the enterprise;

      call the Function command from the Insert menu. In the Function Wizard dialog box that appears, select the TREND function from the Statistical category, and then click the OK button. The same operation can be performed by pressing the button (Insert function) of the standard toolbar.

      In the Function Arguments dialog box that appears, enter the range of cells C4:C11 in the Known_values_y field; in the Known_values_x field - the range of cells B4:B11;

      to make the entered formula an array formula, use the key combination + + .

    The formula we entered in the formula bar will look like: =(TREND(C4:C11;B4:B11)).

    As a result, the range of cells D4:D11 is filled with the corresponding values ​​of the TREND function (Fig. 9).

    To make a forecast of the company's profit for 2003 and 2004. necessary:

      select the range of cells D12:D13, where the values ​​predicted by the TREND function will be entered.

      call the TREND function and in the Function Arguments dialog box that appears, enter in the Known_values_y field - the range of cells C4:C11; in the Known_values_x field - the range of cells B4:B11; and in the field New_values_x - the range of cells B12:B13.

      turn this formula into an array formula using the keyboard shortcut Ctrl + Shift + Enter.

      The entered formula will look like: =(TREND(C4:C11;B4:B11;B12:B13)), and the range of cells D12:D13 will be filled with the predicted values ​​of the TREND function (see Fig. 9).

    Similarly, a data series is filled using the GROWTH function, which is used in the analysis of non-linear dependencies and works exactly the same as its linear counterpart TREND.

    Figure 10 shows the table in formula display mode.

    For the initial data and the obtained data series, the diagram shown in fig. eleven.

    Task 4

    With the table of data on the receipt of applications for services by the dispatching service of the motor transport enterprise for the period from the 1st to the 11th day of the current month, the following actions must be performed.

      Obtain data series for linear regression: using the SLOPE and INTERCEPT functions; using the LINEST function.

      Retrieve a data series for exponential regression using the LYFFPRIB function.

      Using the above functions, make a forecast about the receipt of applications to the dispatch service for the period from the 12th to the 14th day of the current month.

      For the original and received data series, construct a diagram.

    The solution of the problem

    Note that, unlike the TREND and GROW functions, none of the functions listed above (SLOPE, INTERCEPTION, LINEST, LGRFPRIB) are regressions. These functions play only an auxiliary role, determining the necessary regression parameters.

    For linear and exponential regressions built using the functions SLOPE, INTERCEPT, LINEST, LGRFPRIB, the appearance of their equations is always known, in contrast to the linear and exponential regressions corresponding to the functions TREND and GROWTH.

    1 . Let's build a linear regression that has the equation:

    y=mx+b

    using the SLOPE and INTERCEPT functions, with the slope of the regression m being determined by the SLOPE function, and the constant term b - by the INTERCEPT function.

    To do this, we perform the following actions:

      enter the source table in the range of cells A4:B14;

      the value of the parameter m will be determined in cell C19. Select from the Statistical category the Slope function; enter the range of cells B4:B14 in the known_values_y field and the range of cells A4:A14 in the known_values_x field. The formula will be entered into cell C19: =SLOPE(B4:B14;A4:A14);

      using a similar method, the value of the parameter b in cell D19 is determined. And its content will look like this: = INTERCEPT(B4:B14;A4:A14). Thus, the values ​​of the parameters m and b required for constructing a linear regression will be stored, respectively, in cells C19, D19;

      then we enter the linear regression formula in cell C4 in the form: = $ C * A4 + $ D. In this formula, cells C19 and D19 are written with absolute references (the cell address should not change with possible copying). The absolute reference sign $ can be typed either from the keyboard or using the F4 key, after placing the cursor on the cell address. Using the fill handle, copy this formula to the range of cells C4:C17. We get the desired data series (Fig. 12). Due to the fact that the number of requests is an integer, you should set the number format on the Number tab of the Cell Format window with the number of decimal places to 0.

    2 . Now let's build a linear regression given by the equation:

    y=mx+b

    using the LINEST function.

    For this:

      enter the LINEST function as an array formula into the range of cells C20:D20: =(LINEST(B4:B14;A4:A14)). As a result, we get the value of the parameter m in cell C20, and the value of the parameter b in cell D20;

      enter the formula in cell D4: =$C*A4+$D;

      copy this formula using the fill marker to the range of cells D4:D17 and get the desired data series.

    3 . We build an exponential regression that has the equation:

    with the help of the LGRFPRIBL function, it is performed similarly:

      in the range of cells C21:D21 we enter the function LGRFPRIBL as an array formula: =( LGRFPRIBL (B4:B14;A4:A14)). In this case, the value of the parameter m will be determined in cell C21, and the value of the parameter b will be determined in cell D21;

      the formula is entered into cell E4: =$D*$C^A4;

      using the fill marker, this formula is copied to the range of cells E4:E17, where the data series for exponential regression will be located (see Fig. 12).

    On fig. 13 shows a table that shows the functions we use with the necessary cell ranges, as well as formulas.

    Value R 2 called determination coefficient.

    The task of constructing a regression dependence is to find the vector of coefficients m of the model (1) at which the coefficient R takes the maximum value.

    To assess the significance of R, Fisher's F-test is used, calculated by the formula

    where n- sample size (number of experiments);

    k is the number of model coefficients.

    If F exceeds some critical value for the data n And k and the accepted confidence level, then the value of R is considered significant. Tables of critical values ​​of F are given in reference books on mathematical statistics.

    Thus, the significance of R is determined not only by its value, but also by the ratio between the number of experiments and the number of coefficients (parameters) of the model. Indeed, the correlation ratio for n=2 for a simple linear model is 1 (through 2 points on a plane, you can always draw a single straight line). However, if the experimental data are random variables, such a value of R should be trusted with great care. Usually, in order to obtain a significant R and reliable regression, it is aimed at ensuring that the number of experiments significantly exceeds the number of model coefficients (n>k).

    To build a linear regression model, you must:

    1) prepare a list of n rows and m columns containing the experimental data (column containing the output value Y must be either first or last in the list); for example, let's take the data of the previous task, adding a column called "period number", numbering the numbers of periods from 1 to 12. (these will be the values X)

    2) go to menu Data/Data Analysis/Regression

    If the "Data Analysis" item in the "Tools" menu is missing, then you should go to the "Add-ons" item of the same menu and check the "Analysis Package" box.

    3) in the "Regression" dialog box, set:

    input interval Y;

    input interval X;

    · output interval - the upper left cell of the interval in which the calculation results will be placed (it is recommended to place it on a new worksheet);

    4) click "Ok" and analyze the results.

    3.5. Least square method

    The first work, which laid the foundations of the method of least squares, was carried out by Legendre in 1805. In the article "New methods for determining the orbits of comets", he wrote: "After all the conditions of the problem are fully used, it is necessary to determine the coefficients so that the magnitude of their errors were the least possible. The simplest way to achieve this is the method, which consists in finding the minimum of the sum of squared errors. ”Currently, the method is used very widely in approximating unknown functional dependencies given by many experimental readings in order to obtain an analytical expression that is best approximated to a full-scale experiment.

    Let, on the basis of the experiment, it is required to establish the functional dependence of the quantity y on x : .And let as a result of the experiment obtainedn values ywith the corresponding values ​​of the argumentx. If the experimental points are located on the coordinate plane as in the figure, then, knowing that there are errors in the experiment, we can assume that the dependence is linear, i.e.y= ax+ b.Note that the method does not impose restrictions on the form of the function, i.e. it can be applied to any functional dependencies.

    From the point of view of the experimenter, it is often more natural to think that the sequence of samplingfixed in advance, i.e. is an independent variable, and the counts - dependent variable. This is especially clear if under instants of time are understood, which most widely takes place in technical applications. But this is only a very common special case. For example, it is necessary to classify some samples by size. Then the independent variable will be the number of the sample, the dependent variable will be its individual size.

    The least squares method is described in detail in many educational and scientific publications, especially in terms of the approximation of functions in electrical and radio engineering, as well as in books on probability theory and mathematical statistics.

    Let's go back to the drawing. The dotted lines show that errors can arise not only due to the imperfection of the measurement procedures, but also due to the inaccuracy of setting the independent variable. With the chosen form of the function it remains to choose the parameters included in ita And b.It is clear that the number of parameters can be more than two, which is typical only for linear functions. In general, we will assume

    .(1)

    It is required to choose coefficientsa, b, c... so that the condition is met

    . (2)

    Let's find the values a, b, c… that turn the left side of (2) to a minimum. To do this, we define stationary points (points at which the first derivative vanishes) by differentiating the left side of (2) with respect toa, b, c:

    (3)

    etc. The resulting system of equations contains as many equations as there are unknownsa, b, c…. It is impossible to solve such a system in a general form, therefore it is necessary to set, at least approximately, a specific type of function . Next, we consider two cases: linear and quadratic functions.

    Linear function .

    Consider the sum of the squared differences between the experimental values ​​and the function values ​​at the corresponding points:

    (4)

    Let's select the parametersa And bso that this sum has the smallest value. Thus, the problem is reduced to finding the valuesa And b, at which the function has a minimum, i.e. to the study of a function of two independent variablesa And bto the minimum. To do this, we differentiate with respect toa And b:

    ;

    .


    Or

    (5)

    Substituting the experimental data and , we obtain a system of two linear equations with two unknownsa And b. Having solved this system, we can write the function .

    We make sure that for the found valuesa And bhas a minimum. To do this, we find , and :

    , , .

    Consequently,

    − = ,

    >0,

    those. a sufficient minimum condition for a function of two variables is satisfied.

    quadratic function .

    Let the values ​​of the function at the points be obtained in the experiment. Let also on the basis of a priori information there is an assumption that the function is quadratic:

    .

    It is required to find the coefficientsa, b And c.We have

    is a function of three variablesa, b, c.

    In this case, system (3) takes the form:

    Or:

    Solving this system of linear equations, we determine the unknownsa, b, c.

    Example.Let four values ​​of the desired function be obtained on the basis of the experiment y = (x ) with four values ​​of the argument, which are given in the table: