(Acest articol a fost publicat pentru prima dată pe Laboratorul software al lui Adamși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Introducere
În prima parte a acestei serii, m -am uitat să folosesc R în Excel pentru a obține statistici descriptive. În această a doua parte a seriei mă voi uita să folosesc R în Excel pentru a efectua regresie liniară, în special folosind lm() funcţie. lm() este o adevărată funcție a calului de muncă. Poate fi utilizat pentru a efectua regresia unică și multiplă și diferite tipuri de analize ale variației. Pentru această demonstrație mă voi concentra doar pe regresie unică și multiplă.
Cartea de lucru pentru această parte a seriei este: „Partea a II -a – r în Excel – Linear Regression.xlsx”. Ca și înainte, fișele de lucru „Referințe” listează link -uri către referințe externe. Fișa de lucru „Biblioteci” încarcă pachete suplimentare (fără default). În această demonstrație, folosesc datarium şi broom pachete. Fișa de lucru „Seturi de date” conține datele la care se face referire în foile de lucru.
Datele
Setul de date este setul de date de marketing din datarium pachet. Este format dintr -un cadru de date care conține impactul a trei medii publicitare (YouTube, Facebook și ziar) asupra vânzărilor. Datele sunt bugetul de publicitate în mii de dolari, împreună cu vânzările. Experimentul de publicitate a fost repetat de 200 de ori. Setul de date este descris aici.

Dacă setul de date nu este disponibil, verificați dacă datarium Biblioteca este încărcată accesând foaia de lucru a bibliotecilor și evaluând:
=RScript.Evaluate(library(datarium), TRUE)
Regresie liniară simplă
În foaia de lucru simplă de regresie liniară creăm un model liniar simplu.
smodel <- lm(sales ~ youtube, data = marketing)
Așa cum am făcut în prima parte a acestei serii, despachetăm „smodel”. Mai ales aceasta este pur și simplu o problemă de evaluare a obiectelor R corespunzătoare, de exemplu reziduurile și coeficienții. De asemenea, solicităm intervale de încredere de 95% pentru coeficienți.


În acest moment, putem compara rezultatele cu producția sumară oferită de funcția de regresie a instrumentului de analiză (inclusiv intervalele de încredere de 95%).
Merită să subliniem faptul că ieșirea care este returnată la Excel prin add-in nu este „formatată”, așa cum este în r/rstudio. Dacă sunăm summary(smodel) În R ni se prezintă o ieșire tabel familiară care rezumă principalele caracteristici ale modelului. Cu toate acestea, ceea ce este returnat la Excel prin supliment este mai de bază. Deci, merită să petreceți ceva timp uitându -vă la asta. Putem vedea din mediul suplimentar, că smodel_summary este o listă de 11 articole. Pentru a utiliza acest lucru, trebuie să despachetăm unele dintre elementele de listă individuale.


Aici putem vedea apelul real efectuat și detaliile modelului, inclusiv statisticile (sigma, r-squared și așa mai departe). Are nevoie de unele lucrări suplimentare pentru a despacheta datele sumare din reziduurile modelului pentru a produce o ieșire tabulară.
as.data.frame(as.array(summary(smodel$residuals)))
Această formulă rezumă reziduurile modelului și constrânge datele într -un tablou mai întâi (pentru a obține numele) și apoi ca un cadru de date. Efectuăm o operație similară pentru a obține coeficienții într -un format tabular.
Cu toate datele disponibile în acest formular și, cu puțin efort, acum putem construi o ieșire sumară similară cu R.


Regresie liniară multiplă
Următoarea foaie de lucru demonstrează regresie liniară multiplă folosind aceleași date de marketing. Acest lucru este similar cu foaia de lucru anterioară și ilustrează modul de extragere a valorilor relevante din datele modelului returnat.
Cu toate acestea, în acest caz, folosim pachetul broom. Acest lucru poate ajuta la redactarea datelor de ieșire.


În exemplele anterioare, am extras rezultatele modelului prin concatenarea numelui modelului returnat cu etichete din model. Pentru a facilita preluarea rezultatelor, suplimentul oferă câteva funcții suplimentare pentru modelele de interogare: Model.Results Rezultă o listă de rezultate din model. Model.Result rezultă rezultatul obținut dintr -un element al listei de rezultate ale modelului. Opțional, rezultatul poate fi formatat ca un cadru de date. Acest lucru este ceva mai convenabil decât trebuie să evaluați scripturile formei model name'$coeffcientsetc. prin extragerea datelor modelului și a rezumatului, putem construi o ieșire similară cu cea oferită de R.
Regresie logistică
Exemplul final demonstrează regresia logistică. În acest moment, s -ar putea să vă gândiți că acest masaj și extragerea datelor de ieșire nu este complet satisfăcătoare. Este multă muncă și poate fi destul de fragil (dacă se schimbă referințele celulare, de exemplu). Mai mult, pe măsură ce modelele devin mai complicate (vezi partea a III -a din serie), această abordare poate deveni mai dezordonată. Pentru a atenua acest lucru, suplimentul oferă câteva funcții de înveliș în jurul regresiei. Acestea ajută atât cu configurarea, cât și cu ieșirea unor modele mai complexe.


Intrările modelului sunt specificate ca un bloc de parametri, iar funcția Regression.GLM este utilizat în loc de echivalentul scriptului folosind glm. Ieșirile modelului pot fi „interogate” folosind Model.Results și Model.Result formule. Cu toate acestea, chiar și cu aceasta, este nevoie de un efort pentru a transmite un rezumat similar cu cel furnizat de R.
Învelire
În această postare, am analizat cum să folosim R în Excel pentru a efectua regresie liniară și am petrecut ceva timp demonstrând cum să extragem diferitele componente din datele modelului. Acest lucru va fi util în următoarele două părți ale acestei serii.
