• Programare
    • Tutorial

    Introducere

    Sunt matematician și programator. Cel mai mare salt pe care l-am făcut în cariera mea a fost când am învățat să spun: "Eu nu înțeleg nimic!" Acum nu mi-e rușine să-i spun luminatorului științei că el îmi ține o prelegere, că nu înțeleg ce îmi spune el, luminatorul. Și este foarte greu. Da, a-ți recunoaște ignoranța este dificil și jenant. Cui îi place să recunoască că nu știe elementele de bază ale ceva? Din cauza profesiei mele, trebuie să merg cantitati mari prezentări și prelegeri, unde, recunosc, în marea majoritate a cazurilor vreau să dorm pentru că nu înțeleg nimic. Dar nu înțeleg pentru că problema uriașă a situației actuale în știință constă în matematică. Se presupune că toți ascultătorii sunt familiarizați cu absolut toate domeniile matematicii (ceea ce este absurd). A recunoaște că nu știi ce este un derivat (vom vorbi despre ce este acesta puțin mai târziu) este rușinos.

    Dar am învățat să spun că nu știu ce este înmulțirea. Da, nu știu ce este o subalgebră peste o algebră Lie. Da, nu știu de ce sunt necesare în viață ecuații pătratice. Apropo, dacă ești sigur că știi, atunci avem despre ce să vorbim! Matematica este o serie de trucuri. Matematicienii încearcă să încurce și să intimideze publicul; unde nu există confuzie, nu există reputație, nici autoritate. Da, este prestigios să vorbești într-o limbă cât mai abstractă, ceea ce este o totală prostie.

    Știți ce este un derivat? Cel mai probabil îmi veți spune despre limita raportului de diferență. În primul an de matematică și mecanică la Universitatea de Stat din Sankt Petersburg, mi-a spus Viktor Petrovici Khavin determinat derivată ca coeficient al primului termen al seriei Taylor al funcției la un punct (aceasta a fost o gimnastică separată pentru a determina seria Taylor fără derivate). Am râs de această definiție mult timp până am înțeles în sfârșit despre ce este vorba. Derivata nu este altceva decât o simplă măsură a cât de asemănătoare este funcția pe care o diferențiem cu funcția y=x, y=x^2, y=x^3.

    Acum am onoarea de a ține prelegeri studenților care frică matematică. Dacă ți-e frică de matematică, suntem pe aceeași cale. De îndată ce încerci să citești ceva text și ți se pare că este prea complicat, atunci știi că este prost scris. Afirm că nu există o singură zonă a matematicii care să nu poată fi discutată „pe degete” fără a pierde acuratețea.

    Temă pentru viitorul apropiat: le-am încredințat studenților să înțeleagă ce este un regulator liniar pătratic. Nu fi timid, petrece trei minute din viața ta și urmărește linkul. Dacă nu înțelegi nimic, atunci suntem pe aceeași cale. Nici eu (matematician-programator profesionist) nu am inteles nimic. Și vă asigur că vă puteți da seama de asta „pe degetele tale”. Pe acest moment Nu știu ce este, dar vă asigur că ne putem da seama.

    Așadar, prima prelegere pe care o voi ține studenților mei după ce vor veni în fugă la mine îngroziți și vor spune că un regulator liniar-quadratic este un lucru groaznic pe care nu îl vei stăpâni niciodată în viața ta este metode cele mai mici pătrate . Poți decide ecuatii lineare? Dacă citiți acest text, atunci cel mai probabil nu.

    Deci, având în vedere două puncte (x0, y0), (x1, y1), de exemplu, (1,1) și (3,2), sarcina este de a găsi ecuația dreptei care trece prin aceste două puncte:

    ilustrare

    Această linie ar trebui să aibă o ecuație ca următoarea:

    Aici alfa și beta ne sunt necunoscute, dar două puncte ale acestei linii sunt cunoscute:

    Putem scrie această ecuație sub formă de matrice:

    Ce ar trebui făcut aici digresiune lirică: Ce este o matrice? O matrice nu este nimic mai mult decât o matrice bidimensională. Acesta este un mod de stocare a datelor; nu ar trebui să i se atașeze alte semnificații. Depinde de noi exact cum să interpretăm o anumită matrice. Periodic o voi interpreta ca o mapare liniară, periodic ca o formă pătratică și uneori pur și simplu ca un set de vectori. Toate acestea vor fi clarificate în context.

    Să înlocuim matricele concrete cu reprezentarea lor simbolică:

    Apoi (alfa, beta) pot fi găsite cu ușurință:

    Mai precis pentru datele noastre anterioare:

    Ceea ce duce la următoarea ecuație a dreptei care trece prin punctele (1,1) și (3,2):

    Bine, totul este clar aici. Să găsim ecuația dreptei care trece prin Trei puncte: (x0,y0), (x1,y1) și (x2,y2):

    Oh-oh-oh, dar avem trei ecuații pentru două necunoscute! Un matematician standard va spune că nu există o soluție. Ce va spune programatorul? Și mai întâi va rescrie sistemul anterior de ecuații în următoarea formă:

    În cazul nostru vectorii i,j,b tridimensional, prin urmare (în caz general) nu există o soluție pentru acest sistem. Orice vector (alfa\*i + beta\*j) se află în planul acoperit de vectorii (i, j). Dacă b nu aparține acestui plan, atunci nu există soluție (egalitatea nu poate fi obținută în ecuație). Ce să fac? Să căutăm un compromis. Să notăm prin e(alfa, beta) exact cât de departe nu am atins egalitatea:

    Și vom încerca să minimizăm această eroare:

    De ce pătrat?

    Căutăm nu doar minimul normei, ci și minimul pătratului normei. De ce? Punctul minim în sine coincide, iar pătratul dă o funcție netedă (o funcție pătratică a argumentelor (alfa, beta)), în timp ce pur și simplu lungimea dă o funcție în formă de con, nediferențiabilă la punctul minim. Brr. Un pătrat este mai convenabil.

    Evident, eroarea este minimizată atunci când vectorul e ortogonală cu planul acoperit de vectori iȘi j.

    Ilustrare

    Cu alte cuvinte: căutăm o linie dreaptă astfel încât suma pătratelor lungimii distanțelor de la toate punctele la această dreaptă să fie minimă:

    UPDATE: Am o problemă aici, distanța până la linia dreaptă ar trebui măsurată vertical, și nu prin proiecție ortogonală. comentatorul are dreptate.

    Ilustrare

    Cu cuvinte complet diferite (atenție, prost formalizate, dar ar trebui să fie clar): luăm toate liniile posibile între toate perechile de puncte și căutăm linia medie între toate:

    Ilustrare

    O altă explicație este simplă: atașăm un arc între toate punctele de date (aici avem trei) și linia dreaptă pe care o căutăm, iar linia dreaptă a stării de echilibru este exact ceea ce căutăm.

    Forma pătratică minimă

    Deci, având vector dat bși un plan acoperit de vectorii coloană ai matricei A(în acest caz (x0,x1,x2) și (1,1,1)), căutăm vectorul e cu un pătrat minim de lungime. Evident, minimul este realizabil doar pentru vector e, ortogonal la planul acoperit de vectorii coloană ai matricei A:

    Cu alte cuvinte, căutăm un vector x=(alfa, beta) astfel încât:

    Permiteți-mi să vă reamintesc că acest vector x=(alfa, beta) este minimul funcției pătratice ||e(alfa, beta)||^2:

    Aici ar fi util să ne amintim că matricea poate fi interpretată și ca o formă pătratică, de exemplu, matricea de identitate ((1,0),(0,1)) poate fi interpretată ca o funcție x^2 + y^ 2:

    formă pătratică

    Toată această gimnastică este cunoscută sub denumirea de regresie liniară.

    Ecuația lui Laplace cu condiția la limită Dirichlet

    Acum, cea mai simplă sarcină reală: există o anumită suprafață triangulată, este necesar să o neteziți. De exemplu, să încărcăm un model al feței mele:

    Commit-ul original este disponibil. Pentru a minimiza dependențele externe, am luat codul programului meu de redare software, deja pe Habré. Pentru solutii sistem liniar Folosesc OpenNL, este un solutor excelent, care, însă, este foarte greu de instalat: trebuie să copiați două fișiere (.h+.c) în folderul cu proiectul dumneavoastră. Toată netezirea se face cu următorul cod:

    Pentru (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 = fețe[i]; pentru (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); } }

    Coordonatele X, Y și Z sunt separabile, le netezesc separat. Adică rezolv trei sisteme de ecuații liniare, fiecare cu un număr de variabile egal cu numărul de vârfuri din modelul meu. Primele n rânduri ale matricei A au doar un 1 pe rând, iar primele n rânduri ale vectorului b au coordonatele modelului original. Adică leg un arc între noua poziție a vârfului și vechea poziție a vârfului - cele noi nu trebuie să se îndepărteze prea mult de cele vechi.

    Toate rândurile ulterioare ale matricei A (faces.size()*3 = numărul de muchii ale tuturor triunghiurilor din plasă) au o apariție de 1 și o apariție de -1, cu vectorul b având componente zero opuse. Aceasta înseamnă că am pus un arc pe fiecare margine a rețelei noastre triunghiulare: toate marginile încearcă să obțină același vârf ca punctul lor de început și de sfârșit.

    Încă o dată: toate nodurile sunt variabile și nu se pot deplasa departe de poziția lor inițială, dar în același timp încearcă să devină asemănătoare între ele.

    Iată rezultatul:

    Totul ar fi bine, modelul este cu adevărat netezit, dar s-a îndepărtat de marginea inițială. Hai sa schimbam putin codul:

    Pentru (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); }

    În matricea noastră A, pentru vârfurile care sunt pe margine, nu adaug un rând din categoria v_i = verts[i][d], ci 1000*v_i = 1000*verts[i][d]. Ce se schimbă? Și asta ne schimbă forma pătratică de eroare. Acum, o singură abatere de la partea de sus la margine va costa nu o unitate, ca înainte, ci 1000*1000 de unități. Adică am atârnat un arc mai puternic pe vârfurile extreme, soluția va prefera să le întindă pe celelalte mai puternic. Iată rezultatul:

    Să dublăm puterea arcului dintre vârfuri:
    nlCoeficient(față[ j ], 2); nlCoeficient(față[(j+1)%3], -2);

    Este logic că suprafața a devenit mai netedă:

    Și acum chiar de o sută de ori mai puternic:

    Ce este asta? Imaginează-ți că am scufundat un inel de sârmă în apă cu săpun. Drept urmare, filmul de săpun rezultat va încerca să aibă cea mai mică curbură posibil, atingând granița - inelul nostru de sârmă. Este exact ceea ce am obținut fixând chenarul și cerând o suprafață netedă în interior. Felicitări, tocmai am rezolvat ecuația lui Laplace cu condițiile la limită Dirichlet. Suna bine? Dar, în realitate, trebuie doar să rezolvi un sistem de ecuații liniare.

    ecuația lui Poisson

    Să ne amintim un alt nume grozav.

    Să zicem că am o imagine ca aceasta:

    Arată bine tuturor, dar nu-mi place scaunul.

    Voi tăia poza în jumătate:



    Și voi alege un scaun cu mâinile mele:

    Apoi voi trage tot ce este alb în mască în partea stângă a imaginii și, în același timp, pe parcursul imaginii, voi spune că diferența dintre doi pixeli vecini ar trebui să fie egală cu diferența dintre doi pixeli vecini din dreapta. imagine:

    Pentru (int i=0; i

    Iată rezultatul:

    Cod si poze disponibile

    Exemplu.

    Date experimentale despre valorile variabilelor XȘi la sunt date în tabel.

    Ca urmare a alinierii lor, se obține funcția

    Folosind metoda celor mai mici pătrate, aproximați aceste date printr-o dependență liniară y=ax+b(găsiți parametri AȘi b). Aflați care dintre cele două linii (în sensul metodei celor mai mici pătrate) aliniază mai bine datele experimentale. Faceți un desen.

    Esența metodei celor mai mici pătrate (LSM).

    Sarcina este de a găsi coeficienții de dependență liniară la care funcția a două variabile AȘi b ia cea mai mică valoare. Adică dat AȘi b suma abaterilor pătrate a datelor experimentale de la linia dreaptă găsită va fi cea mai mică. Acesta este punctul întreg al metodei celor mai mici pătrate.

    Astfel, rezolvarea exemplului se reduce la găsirea extremului unei funcții a două variabile.

    Derivarea formulelor pentru găsirea coeficienților.

    Se compilează și se rezolvă un sistem de două ecuații cu două necunoscute. Găsirea derivatelor parțiale ale unei funcții în raport cu variabile AȘi b, echivalăm aceste derivate cu zero.

    Rezolvăm sistemul de ecuații rezultat folosind orice metodă (de exemplu prin metoda substitutiei sau ) și obțineți formule pentru găsirea coeficienților folosind metoda celor mai mici pătrate (LSM).

    Dat AȘi b funcţie ia cea mai mică valoare. Dovada acestui fapt este dată.

    Aceasta este întreaga metodă a celor mai mici pătrate. Formula pentru găsirea parametrului A conține sumele , , și parametrul n- cantitatea de date experimentale. Vă recomandăm să calculați separat valorile acestor sume. Coeficient b găsit după calcul A.

    Este timpul să ne amintim de exemplul original.

    Soluţie.

    În exemplul nostru n=5. Completam tabelul pentru confortul calculării sumelor care sunt incluse în formulele coeficienților necesari.

    Valorile din al patrulea rând al tabelului se obțin prin înmulțirea valorilor celui de-al 2-lea rând cu valorile celui de-al 3-lea rând pentru fiecare număr i.

    Valorile din al cincilea rând al tabelului se obțin prin pătratul valorilor din al doilea rând pentru fiecare număr i.

    Valorile din ultima coloană a tabelului sunt sumele valorilor de pe rânduri.

    Folosim formulele metodei celor mai mici pătrate pentru a găsi coeficienții AȘi b. Înlocuim valorile corespunzătoare din ultima coloană a tabelului în ele:

    Prin urmare, y = 0,165x+2,184- linia dreaptă de aproximare dorită.

    Rămâne să aflăm care dintre rânduri y = 0,165x+2,184 sau aproximează mai bine datele originale, adică face o estimare folosind metoda celor mai mici pătrate.

    Estimarea erorilor metodei celor mai mici pătrate.

    Pentru a face acest lucru, trebuie să calculați suma abaterilor pătrate ale datelor originale din aceste linii Și , o valoare mai mică corespunde unei linii care aproximează mai bine datele originale în sensul metodei celor mai mici pătrate.

    De la , apoi drept y = 0,165x+2,184 aproximează mai bine datele originale.

    Ilustrare grafică a metodei celor mai mici pătrate (LS).

    Totul este clar vizibil pe grafice. Linia roșie este linia dreaptă găsită y = 0,165x+2,184, linia albastră este , punctele roz sunt datele originale.

    De ce este nevoie de acest lucru, de ce toate aceste aproximări?

    Eu personal îl folosesc pentru a rezolva probleme de netezire a datelor, probleme de interpolare și extrapolare (în exemplul original li se poate cere să găsească valoarea unei valori observate y la x=3 sau când x=6 folosind metoda celor mai mici pătrate). Dar vom vorbi mai multe despre asta mai târziu într-o altă secțiune a site-ului.

    Dovada.

    Așa că atunci când este găsit AȘi b funcția ia cea mai mică valoare, este necesar ca în acest moment matricea formei pătratice a diferenţialului de ordinul doi pentru funcţie a fost pozitiv definit. Să o arătăm.

    Are multe aplicații, deoarece permite o reprezentare aproximativă a unei anumite funcții de către altele mai simple. LSM poate fi extrem de util în procesarea observațiilor și este utilizat în mod activ pentru a estima unele cantități pe baza rezultatelor măsurătorilor altora care conțin erori aleatoare. În acest articol, veți învăța cum să implementați calculele celor mai mici pătrate în Excel.

    Enunțarea problemei folosind un exemplu specific

    Să presupunem că există doi indicatori X și Y. Mai mult, Y depinde de X. Deoarece OLS ne interesează din punct de vedere al analizei de regresie (în Excel metodele sale sunt implementate folosind funcții încorporate), ar trebui să trecem imediat la luarea în considerare a unui problemă specifică.

    Deci, să fie X spațiul de vânzare cu amănuntul al unui magazin alimentar, măsurat în metri pătrați, și Y să fie cifra de afaceri anuală, măsurată în milioane de ruble.

    Este necesar să se facă o prognoză a cifrei de afaceri (Y) va avea magazinul dacă are cutare sau cutare spațiu comercial. Evident, funcția Y = f (X) este în creștere, deoarece hipermarketul vinde mai multe mărfuri decât taraba.

    Câteva cuvinte despre corectitudinea datelor inițiale utilizate pentru predicție

    Să presupunem că avem un tabel construit folosind date pentru n magazine.

    Conform statisticilor matematice, rezultatele vor fi mai mult sau mai puțin corecte dacă se examinează datele pe cel puțin 5-6 obiecte. În plus, rezultatele „anomale” nu pot fi utilizate. În special, un mic butic de elită poate avea o cifră de afaceri de câteva ori mai mare decât cifra de afaceri a magazinelor mari de vânzare cu amănuntul din clasa „masmarket”.

    Esența metodei

    Datele din tabel pot fi reprezentate pe un plan cartezian sub forma punctelor M 1 (x 1, y 1), ... M n (x n, y n). Acum soluția problemei se va reduce la selectarea unei funcții de aproximare y = f (x), care are un grafic care trece cât mai aproape de punctele M 1, M 2, .. M n.

    Desigur, puteți utiliza un polinom de grad înalt, dar această opțiune nu este doar dificil de implementat, ci și pur și simplu incorectă, deoarece nu va reflecta tendința principală care trebuie detectată. Soluția cea mai rezonabilă este căutarea dreptei y = ax + b, care aproximează cel mai bine datele experimentale, sau mai precis, coeficienții a și b.

    Evaluarea acurateței

    Cu orice aproximare, evaluarea acurateței sale este de o importanță deosebită. Să notăm cu e i diferența (abaterea) dintre valorile funcționale și experimentale pentru punctul x i, adică e i = y i - f (x i).

    Evident, pentru a evalua acuratețea aproximării, puteți utiliza suma abaterilor, adică atunci când alegeți o linie dreaptă pentru o reprezentare aproximativă a dependenței lui X de Y, ar trebui să acordați prioritate celei cu cea mai mică valoare a sum e i la toate punctele luate în considerare. Cu toate acestea, nu totul este atât de simplu, deoarece împreună cu abaterile pozitive vor exista și unele negative.

    Problema poate fi rezolvată folosind module de abatere sau pătratele acestora. Ultima metodă este cea mai utilizată. Este folosit în multe domenii, inclusiv în analiza de regresie (implementată în Excel folosind două funcții încorporate) și și-a dovedit de mult eficacitatea.

    Metoda celor mai mici pătrate

    După cum știți, Excel are o funcție încorporată AutoSum care vă permite să calculați valorile tuturor valorilor situate în intervalul selectat. Astfel, nimic nu ne va împiedica să calculăm valoarea expresiei (e 1 2 + e 2 2 + e 3 2 + ... e n 2).

    În notație matematică, aceasta arată astfel:

    Deoarece a fost luată inițial decizia de a aproxima folosind o linie dreaptă, avem:

    Astfel, sarcina de a găsi linia dreaptă care descrie cel mai bine dependența specifică a mărimilor X și Y se rezumă la calcularea minimului unei funcții a două variabile:

    Pentru a face acest lucru, trebuie să echivalați derivatele parțiale față de noile variabile a și b la zero și să rezolvați un sistem primitiv format din două ecuații cu 2 necunoscute de forma:

    După câteva transformări simple, inclusiv împărțirea cu 2 și manipularea sumelor, obținem:

    Rezolvând-o, de exemplu, folosind metoda lui Cramer, obținem un punct staționar cu anumiți coeficienți a * și b *. Acesta este minimul, adică pentru a prezice ce cifră de afaceri va avea un magazin pentru o anumită zonă, este potrivită linia dreaptă y = a * x + b *, care este un model de regresie pentru exemplul în cauză. Desigur, nu vă va permite să găsiți rezultatul exact, dar vă va ajuta să vă faceți o idee dacă achiziționarea unei anumite zone din creditul magazinului va fi rentabilă.

    Cum se implementează cele mai mici pătrate în Excel

    Excel are o funcție pentru calcularea valorilor folosind cele mai mici pătrate. Are următoarea formă: „TENDINȚA” (valori Y cunoscute; valori X cunoscute; valori X noi; constantă). Să aplicăm formula de calcul OLS în Excel la tabelul nostru.

    Pentru a face acest lucru, introduceți semnul „=” în celula în care ar trebui să fie afișat rezultatul calculului folosind metoda celor mai mici pătrate în Excel și selectați funcția „TENDINȚA”. În fereastra care se deschide, completați câmpurile corespunzătoare, evidențiind:

    • intervalul de valori cunoscute pentru Y (în acest caz, date pentru cifra de afaceri comercială);
    • interval x 1 , …x n , adică dimensiunea spațiului comercial cu amănuntul;
    • atât valorile cunoscute, cât și cele necunoscute ale lui x, pentru care trebuie să aflați dimensiunea cifrei de afaceri (pentru informații despre locația lor pe foaia de lucru, consultați mai jos).

    În plus, formula conține variabila logică „Const”. Dacă introduceți 1 în câmpul corespunzător, aceasta va însemna că trebuie să efectuați calculele, presupunând că b = 0.

    Dacă trebuie să aflați prognoza pentru mai mult de o valoare x, atunci după introducerea formulei nu trebuie să apăsați „Enter”, ci trebuie să introduceți combinația „Shift” + „Control” + „Enter” pe tastatură.

    Unele caracteristici

    Analiza de regresie poate fi accesibilă chiar și pentru manechin. Formula Excel pentru prezicerea valorii unei matrice de variabile necunoscute — TREND — poate fi folosită chiar și de cei care nu au auzit niciodată de cele mai mici pătrate. Este suficient doar să cunoașteți câteva dintre caracteristicile muncii sale. În special:

    • Dacă aranjați intervalul de valori cunoscute ale variabilei y într-un rând sau coloană, atunci fiecare rând (coloană) cu valori cunoscute ale lui x va fi perceput de program ca o variabilă separată.
    • Dacă un interval cu x cunoscut nu este specificat în fereastra TREND, atunci când utilizați funcția în Excel, programul o va trata ca o matrice formată din numere întregi, al căror număr corespunde intervalului cu valorile date ale variabila y.
    • Pentru a scoate o matrice de valori „prevăzute”, expresia pentru calcularea tendinței trebuie introdusă ca formulă matrice.
    • Dacă nu sunt specificate valori noi ale lui x, atunci funcția TREND le consideră egale cu cele cunoscute. Dacă nu sunt specificate, atunci tabloul 1 este luat ca argument; 2; 3; 4;…, care este proporțional cu intervalul cu parametrii deja specificați y.
    • Intervalul care conține noile valori x trebuie să aibă aceleași sau mai multe rânduri sau coloane ca și intervalul care conține valorile y date. Cu alte cuvinte, trebuie să fie proporțional cu variabilele independente.
    • O matrice cu valori x cunoscute poate conține mai multe variabile. Cu toate acestea, dacă vorbim despre unul singur, atunci este necesar ca intervalele cu valorile date ale lui x și y să fie proporționale. În cazul mai multor variabile, este necesar ca intervalul cu valorile y date să se încadreze într-o coloană sau un rând.

    Funcția PREDICTION

    Implementat folosind mai multe funcții. Una dintre ele se numește „PREDICȚIE”. Este similar cu „TENDINȚA”, adică oferă rezultatul calculelor folosind metoda celor mai mici pătrate. Cu toate acestea, doar pentru un X, pentru care valoarea lui Y este necunoscută.

    Acum cunoașteți formule în Excel pentru manechine care vă permit să preziceți valoarea viitoare a unui anumit indicator în conformitate cu o tendință liniară.

    Metoda celor mai mici pătrate este o procedură matematică pentru construirea unei ecuații liniare care se potrivește cel mai bine unui set de perechi ordonate prin găsirea valorilor pentru a și b, coeficienții din ecuația dreptei. Scopul celor mai mici pătrate este de a minimiza eroarea pătrată totală dintre valorile lui y și ŷ. Dacă pentru fiecare punct determinăm eroarea ŷ, metoda celor mai mici pătrate minimizează:

    unde n = numărul de perechi ordonate în jurul liniei. cât mai aproape de date.

    Acest concept este ilustrat în figură

    Pe baza figurii, linia care se potrivește cel mai bine datelor, linia de regresie, minimizează eroarea totală pătrată a celor patru puncte de pe grafic. Vă voi arăta cum să determinați acest lucru folosind cele mai mici pătrate cu următorul exemplu.

    Imaginați-vă un cuplu tânăr care s-a mutat recent împreună și împart o masă de toaletă în baie. Tânărul a început să observe că jumătate din masa lui se micșora inexorabil, pierzând teren în fața spumei de păr și a complexelor de soia. În ultimele luni, tipul a monitorizat îndeaproape rata cu care crește numărul de obiecte de pe partea ei a mesei. Tabelul de mai jos arată numărul de articole pe care fata le-a acumulat pe toaleta de baie în ultimele luni.

    Deoarece scopul nostru este să aflăm dacă numărul de articole crește în timp, „Luna” va fi variabila independentă, iar „Numărul de articole” va fi variabila dependentă.

    Folosind metoda celor mai mici pătrate, determinăm ecuația care se potrivește cel mai bine datelor, calculând valorile lui a, intersecția cu y, și b, panta dreptei:

    a = y avg - bx avg

    unde x avg este valoarea medie a lui x, variabila independentă, y avg este valoarea medie a lui y, variabila independentă.

    Tabelul de mai jos rezumă calculele necesare pentru aceste ecuații.

    Curba efectului pentru exemplul nostru de cada de baie ar fi dată de următoarea ecuație:

    Deoarece ecuația noastră are o pantă pozitivă de 0,976, tipul are dovezi că numărul de elemente de pe tabel crește în timp la o rată medie de 1 articol pe lună. Graficul arată curba efectului cu perechi ordonate.

    Așteptările pentru numărul de articole în următoarele șase luni (luna 16) va fi calculată după cum urmează:

    ŷ = 5,13 + 0,976x = 5,13 + 0,976(16) ~ 20,7 = 21 elemente

    Așadar, este timpul ca eroul nostru să ia ceva măsuri.

    Funcția TREND în Excel

    După cum probabil ați ghicit deja, Excel are o funcție pentru calcularea valorilor prin metoda celor mai mici pătrate. Această funcție se numește TREND. Sintaxa sa este următoarea:

    TENDINȚĂ (valori Y cunoscute; valori X cunoscute; valori X noi; constantă)

    valori Y cunoscute – o matrice de variabile dependente, în cazul nostru, numărul de obiecte de pe tabel

    valori cunoscute X – o serie de variabile independente, în cazul nostru aceasta este luna

    noi valori X – noi valori X (luni) pentru care Funcția TREND returnează valoarea așteptată a variabilelor dependente (numărul de elemente)

    const - optional. O valoare booleană care specifică dacă constanta b trebuie să fie 0.

    De exemplu, figura arată funcția TENDINȚĂ folosită pentru a determina numărul așteptat de articole pe o chiodă de baie pentru a 16-a lună.

    Metoda celor mai mici pătrate

    Metoda celor mai mici pătrate ( MCO, MCO, Cele mai mici pătrate obișnuite) - una dintre metodele de bază de analiză de regresie pentru estimarea parametrilor necunoscuți ai modelelor de regresie folosind date eșantion. Metoda se bazează pe minimizarea sumei pătratelor reziduurilor de regresie.

    Trebuie remarcat faptul că metoda celor mai mici pătrate în sine poate fi numită o metodă de rezolvare a unei probleme în orice domeniu dacă soluția se află sau satisface un anumit criteriu de minimizare a sumei pătratelor unor funcții ale variabilelor cerute. Prin urmare, metoda celor mai mici pătrate poate fi folosită și pentru o reprezentare aproximativă (aproximare) a unei anumite funcții prin alte funcții (mai simple), atunci când se găsesc o mulțime de mărimi care satisfac ecuații sau constrângeri, al căror număr depășește numărul acestor mărimi. , etc.

    Esența MNC

    Să fie dat un model (parametric) al unei relații probabilistice (de regresie) între variabila (explicată). yși mulți factori (variabile explicative) X

    unde este vectorul parametrilor necunoscuți ai modelului

    - eroare aleatoare de model.

    Să existe și eșantion de observații ale valorilor acestor variabile. Fie numărul de observație (). Apoi sunt valorile variabilelor din a-a observație. Apoi, pentru valorile date ale parametrilor b, este posibil să se calculeze valorile teoretice (modelului) ale variabilei explicate y:

    Mărimea reziduurilor depinde de valorile parametrilor b.

    Esența metodei celor mai mici pătrate (obișnuită, clasică) este de a găsi parametrii b pentru care suma pătratelor reziduurilor (ing. Suma reziduală a pătratelor) va fi minimă:

    În cazul general, această problemă poate fi rezolvată prin metode de optimizare (minimizare) numerică. În acest caz ei vorbesc despre cele mai mici pătrate neliniare(NLS sau NLLS - engleză) Cele mai mici pătrate neliniare). În multe cazuri este posibilă obținerea unei soluții analitice. Pentru a rezolva problema de minimizare, este necesar să se găsească puncte staționare ale funcției prin diferențierea acesteia față de parametrii necunoscuți b, echivalând derivatele la zero și rezolvând sistemul de ecuații rezultat:

    Dacă erorile aleatoare ale modelului sunt distribuite în mod normal, au aceeași varianță și sunt necorelate, estimările parametrilor MCO sunt aceleași cu estimările cu probabilitatea maximă (MLM).

    MCO în cazul unui model liniar

    Fie dependența de regresie liniară:

    Lăsa y este un vector coloană de observații ale variabilei explicate și este o matrice de observații factoriale (rândurile matricei sunt vectorii valorilor factorilor dintr-o observație dată, coloanele sunt vectorul valorilor unui factor dat în toate observaţiile). Reprezentarea matricială a modelului liniar este:

    Atunci vectorul estimărilor variabilei explicate și vectorul reziduurilor de regresie vor fi egali

    În consecință, suma pătratelor reziduurilor de regresie va fi egală cu

    Diferențiând această funcție în raport cu vectorul parametrilor și echivalând derivatele la zero, obținem un sistem de ecuații (sub formă de matrice):

    .

    Rezolvarea acestui sistem de ecuații oferă formula generală pentru estimările celor mai mici pătrate pentru un model liniar:

    În scopuri analitice, cea din urmă reprezentare a acestei formule este utilă. Dacă într-un model de regresie datele centrat, atunci în această reprezentare prima matrice are semnificația unei matrice de covarianță eșantion de factori, iar a doua este un vector de covarianțe de factori cu variabila dependentă. Dacă în plus datele sunt de asemenea normalizat către MSE (adică, în cele din urmă standardizate), atunci prima matrice are semnificația unei matrice de corelație eșantion de factori, al doilea vector - un vector de corelații de eșantion de factori cu variabila dependentă.

    O proprietate importantă a estimărilor MOL pentru modele cu constantă- linia regresiei construite trece prin centrul de greutate al datelor eșantionului, adică egalitatea este satisfăcută:

    În special, în cazul extrem, când singurul regresor este o constantă, constatăm că estimarea MCO a singurului parametru (constanta însăși) este egală cu valoarea medie a variabilei explicate. Adică, media aritmetică, cunoscută pentru proprietățile sale bune din legile numerelor mari, este și o estimare a celor mai mici pătrate - satisface criteriul sumei minime a abaterilor pătrate de la aceasta.

    Exemplu: cea mai simplă regresie (în perechi).

    În cazul unei băi de aburi regresie liniara formulele de calcul sunt simplificate (puteți face fără algebră matriceală):

    Proprietățile estimatorilor MCO

    În primul rând, observăm că pentru modelele liniare, estimările MCO sunt estimări liniare, după cum rezultă din formula de mai sus. Pentru estimările MCO nepărtinitoare, este necesar și suficient să se îndeplinească cea mai importantă condiție a analizei de regresie: așteptarea matematică a unei erori aleatoare, condiționată de factori, trebuie să fie egală cu zero. Această condiție, în special, este îndeplinită dacă

    1. așteptarea matematică a erorilor aleatoare este zero și
    2. factorii și erorile aleatoare sunt variabile aleatoare independente.

    A doua condiție - condiția de exogeneitate a factorilor - este fundamentală. Dacă această proprietate nu este îndeplinită, atunci putem presupune că aproape orice estimări vor fi extrem de nesatisfăcătoare: nici măcar nu vor fi consecvente (adică chiar și o cantitate foarte mare de date nu ne permite să obținem estimări de înaltă calitate în acest caz ). În cazul clasic, se face o presupunere mai puternică despre determinismul factorilor, spre deosebire de o eroare aleatorie, ceea ce înseamnă automat că este îndeplinită condiția de exogeneitate. În cazul general, pentru consistența estimărilor, este suficient să se satisfacă condiția de exogeneitate împreună cu convergența matricei către o matrice nesingulară pe măsură ce dimensiunea eșantionului crește la infinit.

    Pentru ca, pe lângă consecvență și imparțialitate, estimările celor mai mici pătrate (obișnuite) să fie și eficiente (cele mai bune din clasa estimărilor liniare imparțiale), trebuie îndeplinite proprietăți suplimentare ale erorii aleatoare:

    Aceste ipoteze pot fi formulate pentru matricea de covarianță a vectorului de eroare aleatorie

    Un model liniar care satisface aceste condiții se numește clasic. Estimările MCO pentru regresia liniară clasică sunt estimări imparțiale, consistente și cele mai eficiente din clasa tuturor estimărilor nepărtinitoare liniare (în literatura engleză abrevierea este uneori folosită ALBASTRU (Cel mai bun estimator liniar nebazat) - cea mai bună estimare liniară imparțială; în literatura rusă este mai des citată teorema Gauss-Markov). După cum este ușor de arătat, matricea de covarianță a vectorului estimărilor de coeficienți va fi egală cu:

    MCO generalizată

    Metoda celor mai mici pătrate permite o generalizare largă. În loc de a minimiza suma pătratelor reziduurilor, se poate minimiza o formă pătratică definită pozitivă a vectorului de reziduuri, unde este o matrice de greutate definită pozitivă simetrică. Cele mai mici pătrate convenționale sunt un caz special al acestei abordări, în care matricea de greutate este proporțională cu matricea de identitate. După cum se știe din teoria matricelor (sau operatorilor) simetrice, pentru astfel de matrici există o descompunere. În consecință, funcționalitatea specificată poate fi reprezentată după cum urmează, adică această funcțională poate fi reprezentată ca suma pătratelor unor „rămăși” transformate. Astfel, putem distinge o clasă de metode ale celor mai mici pătrate - metodele LS (Least Squares).

    S-a dovedit (teorema lui Aitken) că pentru un model de regresie liniară generalizată (în care nu sunt impuse restricții asupra matricei de covarianță a erorilor aleatoare), cele mai eficiente (din clasa estimărilor liniare nepărtinitoare) sunt așa-numitele estimări. Cele mai mici pătrate generalizate (GLS - Generalized Least Squares)- Metoda LS cu o matrice de ponderi egală cu matricea de covarianță inversă a erorilor aleatoare: .

    Se poate demonstra că formula pentru estimările GLS ale parametrilor unui model liniar are forma

    Matricea de covarianță a acestor estimări va fi în consecință egală cu

    De fapt, esența MOL constă într-o anumită transformare (liniară) (P) a datelor originale și aplicarea MCO obișnuită la datele transformate. Scopul acestei transformări este ca pentru datele transformate, erorile aleatoare să satisfacă deja ipotezele clasice.

    MCO ponderate

    În cazul unei matrice de ponderi diagonale (și, prin urmare, a unei matrice de covarianță a erorilor aleatoare), avem așa-numitele Least Squares (WLS) ponderate. În acest caz, suma ponderată a pătratelor reziduurilor modelului este minimizată, adică fiecare observație primește o „pondere” care este invers proporțională cu varianța erorii aleatoare din această observație: . De fapt, datele sunt transformate prin ponderarea observațiilor (împărțirea la o sumă proporțională cu abaterea standard estimată a erorilor aleatoare), iar datelor ponderate se aplică MCO obișnuite.

    Câteva cazuri speciale de utilizare a MNC în practică

    Aproximarea dependenței liniare

    Să luăm în considerare cazul când, ca urmare a studierii dependenței unei anumite mărimi scalare de o anumită mărime scalară (Acesta ar putea fi, de exemplu, dependența tensiunii de puterea curentului: , unde este o valoare constantă, rezistența lui conductor), s-au efectuat măsurători ale acestor mărimi, în urma cărora valorile și valorile corespunzătoare acestora. Datele de măsurare trebuie înregistrate într-un tabel.

    Masa. Rezultatele măsurătorilor.

    Masura nr.
    1
    2
    3
    4
    5
    6

    Întrebarea este: ce valoare a coeficientului poate fi selectată pentru a descrie cel mai bine dependența? Conform metodei celor mai mici pătrate, această valoare ar trebui să fie astfel încât suma abaterilor pătrate ale valorilor de la valori

    a fost minim

    Suma abaterilor pătrate are un extremum - un minim, ceea ce ne permite să folosim această formulă. Să găsim din această formulă valoarea coeficientului. Pentru a face acest lucru, îi transformăm partea stângă după cum urmează:

    Ultima formulă ne permite să găsim valoarea coeficientului, care este ceea ce a fost cerut în problemă.

    Poveste

    Până la începutul secolului al XIX-lea. oamenii de știință nu aveau anumite reguli pentru rezolvarea unui sistem de ecuații în care numărul de necunoscute este mai mic decât numărul de ecuații; Până atunci se foloseau tehnici private care depindeau de tipul de ecuații și de inteligența calculatoarelor și, prin urmare, calculatoare diferite, bazate pe aceleași date de observație, ajungeau la concluzii diferite. Gauss (1795) a fost primul care a folosit metoda, iar Legendre (1805) a descoperit-o și a publicat-o independent sub numele său modern (franceză. Méthode des moindres quarrés ). Laplace a legat metoda de teoria probabilității, iar matematicianul american Adrain (1808) a luat în considerare aplicațiile sale teoretice ale probabilității. Metoda a fost răspândită și îmbunătățită prin cercetări ulterioare ale lui Encke, Bessel, Hansen și alții.

    Utilizări alternative ale OLS

    Ideea metodei celor mai mici pătrate poate fi folosită și în alte cazuri care nu au legătură directă cu analiza de regresie. Cert este că suma pătratelor este una dintre cele mai comune măsuri de proximitate pentru vectori (metrică euclidiană în spații cu dimensiuni finite).

    O aplicație este „soluția” sistemelor de ecuații liniare în care numărul de ecuații este mai mare decât numărul de variabile

    unde matricea nu este pătrată, ci dreptunghiulară de dimensiune.

    Un astfel de sistem de ecuații, în cazul general, nu are soluție (dacă rangul este de fapt mai mare decât numărul de variabile). Prin urmare, acest sistem poate fi „rezolvat” doar în sensul alegerii unui astfel de vector pentru a minimiza „distanța” dintre vectori și . Pentru a face acest lucru, puteți aplica criteriul minimizării sumei pătratelor diferențelor dintre laturile stânga și dreapta ale ecuațiilor sistemului, adică. Este ușor de demonstrat că rezolvarea acestei probleme de minimizare duce la rezolvarea următorului sistem de ecuații