Hvilke fordeler og ulemper har R over Stata, dvs. hva er Rs evne til raskt å sette sammen et bilde av utviklingen av et firma, land, by eller andre makrodata versus Stratas evne til å gjøre det samme?

Beste svaret

Jeg byttet fra stata til R. Her er mine observasjoner:

Fordeler:

  • R er åpen kildekode, vil du ha tilgang til noen virkelig kule algoritmer eller programvare som folk har skrevet for nisjeproblemer.
  • R har bedre visualiseringer. Når du har et godt grep om ggplot2, kan du gjøre ganske fantastiske ting med nesten alle typer data.
  • Jeg har funnet R lettere for å skrive tilpassede pakker og funksjoner.
  • R er nærmere statistikk / maskinlæringssamfunnet, slik at du finner mer støtte / pakker enn stata.
  • Jeg elsker RStudio Gui, spesielt når du jobber på en server.
  • R gir bedre Latex-støtte.
  • R har et veldig aktivt fellesskap og hjelpelister – de har vært utrolig raske i støtte med alle spørsmålene mine.
  • R fungerer med Big Data! RHadoop-pakken lar deg skrive egendefinerte MapReduce-skript ved hjelp av R-funksjoner. Hvis du noen gang må håndtere store data og bare kan bruke Stata, er du skrudd.
  • Det pleier å være mange flere «hacks» i R for kompliserte problemer som nettverksanalyse, egendefinerte bootstraps osv. Så snart du våger deg bort fra vaniljeimplementeringer, har jeg ofte funnet snarveisfunksjoner i prosedyrer i R mens du i Stata ofte må kode deg ut.

Ulemper:

  • R er åpen kildekode, du må kanskje vente en stund for å få tilgang til nye algoritmer hvis det ikke er noen aktiv utvikling.
  • Stata er mye nærmere økonometrisk samfunn og har mange flere algoritmer, pakker og implementeringer enn R. Hvis du er økonom, vil du bli frustrert av mangelen på omfattende økonomipakkepakker.
  • Stata har en flott GUI som lar deg interaktivt velge prosedyren du vil kjøre, og fyller ut de fleste detaljene for deg. Dette er flott når du bruker en funksjon du aldri har brukt før. R har ikke dette virkelig – jeg føler at når jeg bruker RI er på Google halve tiden.
  • Stata er raskere enn R [1].
  • Nedlasting av statamoduler er en mye mer strømlinjeformet prosess. For R-moduler i CRAN er det vanligvis ikke noe problem (selv om jeg har fått problemer når jeg bruker en Centos-maskin), men det er flere viktige pakker som ikke er på CRAN.
  • Statas standard visualisering og plotting er mye bedre enn R.
  • Stata har bedre standardhjelp – jeg føler at jeg kan lese hjelpen på en hvilken som helst funksjon og finne ut nøyaktig hva jeg trenger å gjøre mens jeg ikke føler det for flere R-pakker som er dårlig dokumentert.
  • R har en «WTF» syntaks og pakke navnestruktur. De fleste åpne prosjekter gjør det. Jeg savner enkelheten til statafunksjoner (reg, lm, etc.).

[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html

Svar

Generelt når jeg finner adverbet » åpenbart «i en setning, finner jeg noen uberettiget uttalelse etter den. Her er jeg uenig i påstanden din om at R har «en bisarr syntaks». Hver utdannet programmerer foretrekker å kode i Haskell eller i noen Lisp, men faktum er at disse språkene aldri vil nå et stort publikum. R er en Lisp-innside (for eksempel kan du faktisk kode på språket i R, men ikke i Python), men er nær nok til et vitenskapelig språk utenfor. Som du bemerker, som et språk for dataanalyse , er R virkelig det mest naturlige og elegante språket der ute. Hvis du vil ha bevis på dette, sjekk ut aktiviteten rundt Python og Julia: implementering av datarammer (pandaer og data.frame i Jlia), formler (patsy), plyr (pandas). Og fremdeles føles alle disse funksjonene litt podet på de andre språkene. Det folk oppfatter som «bisarr» eller «wonky», er enten resultatet av konsesjon til interaktiv bruk (f.eks. Slippende dimensjon), eller av språkets funksjonelle arv.

Jeg er enig i at R har rikelig med områder å forbedre, men stort sett ikke i språksyntaks. Visst, dets navnekonvensjoner er inkonsekvente; hastighet og minnehåndtering er kjente problemer; og så videre. Hvorfor det? Noen få grunner:

  1. hoveddirektivet til R (ifølge skaperen, John Chambers) er å produsere pålitelig programvare. R setter høy verdi på nøyaktighet og pålitelighet. De viktigste statistiske funksjonene er førsteklasses; til og med det grafiske basissystemet er nøye gjennomtenkt, fra histogrambinning (ikke et trivielt problem!) til tekstplassering. Hastighet har aldri vært en stor bekymring, og med rette. Hvis hastighet og minneeffektivitet var problemet, ville vi alle kodet i FORTRAN, som også er enkelt og høyt nivå. Kildekoden til R-basen er kort (400K LOC; som sammenligning har Numpy alene samme størrelse) , og veldig lesbar. Kode du kan forstå og stole på.
  2. Splus og R ble unnfanget på 80- og 90-tallet, i god tid før «big data» og fremveksten av Machine Learning. Men R har forbedret seg . Minnehåndtering er mye bedre, sannsynligvis bedre enn MATLAB «s. Det har noen veier å gå, men visse ting kan forbedres (f.eks. Intern datarepresentasjon).
  3. Kjerneutviklingsteamet har minimal omsetning, og de unge koderne for 15 år siden er nå i 50-årene. I tillegg er de langt mindre involvert i samfunnet, og består av en pittoresk / mytisk karakter som Brian Ripley: en professor i Oxford som er ansvarlig for 70\% + av forpliktelsene, og ikke den mest vennlige personen på planeten og på R-adresselister.
  4. R ber om en rask JIT-kompilator rettet mot LLVM, men disse tingene skjer ikke over natten. Du trenger et team av fremragende og velutdannede kodere med kompilator- og tolkdesignkunnskap, sterk arbeidsmoral (for å presse ut et produkt om et par år) og ydmykhet til å implementere et eksisterende språk på nytt i stedet for å lage sitt eget forfengelighetsprosjekt. Se også nr. 3.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *