Easy-R: statistics made easy

Reference or Study

Lessons from product development, or the end can be the beginning.

jsme začali v roce 2018 stavět na základech, které vytvořil Libor v rámci svého Ph.D. studia na Lékařské fakultě Univerzity Palackého. Vyvíjeli jsme grafickou a uživatelsky přívětivou nástavbu nad volně dostupným statistickým programovacím jazykem R. Výsledkem měl být nástroj, který "na jedno tlačítko" nabídne základní statistické zpracování dat pro studenty vysokých škol. Cílová skupina pro nás byli studenti, kteří "statistiku nesnáší, ale musí".

Oproti konkurenci, která byla z jedné strany reprezentována MS Excelem a z druhé strany velkými statistickými balíky typu IBM SPSS nebo Statistika, jsme chtěli nabídnout naprostou jednoduchost, kterou zvládne obsluhovat i netechničtější a něžnější část vysokoškolské populace. Průvodce importem dat do programu, předchystané statistické testy a okomentované výsledky tabulek a grafů. Kromě základní statistiky jsme zapracovali testování hypotéz, korelaci, regresní analýzu a analýzu přežívání. Od začátku jsme počítali s tím, že program bude dostupný v lokálních jazycích a přizpůsobili tomu vývoj. Kromě programu JASP jsme v roce 2018 víceméně nenašli jiného konkurenta, který by něco podobného nabízel.

Na projektu se nám nejvíc líbilo naše globální cílení. Představovali jsme si, jak platební brána cvaká a přijímá platby za semestrální nebo roční předplatné od studentů z USA, Německa nebo třeba z Maďarska.

Měli jsme za sebou konzultace s vyučujícími statistiky z různých českých vysokých škol, kteří byli k našemu projektu spíše neutrální než že by z něj jásali. Zjistili jsme, že hodně záleží na doporučení vyučujících, v jakém programu budou studenti statistické výpočty dělat. A konečně jsme "šli se svou kůží na trh".

Na konci roku 2018 jsme zveřejnili první verzi v češtině a angličtině na webu a spustili drobnou kampaň na Facebooku zaměřenou na české studenty v Praze, Brně a Ostravě. Cílem bylo dosáhnout několika stažení verze zdarma a získat první zpětnou vazbu.

Výsledek kampaně byl hodně špatný. Jednotky stažení, jedna zpětná vazba. Hrůza. Ale nenechali jsme se znechutit poměrně výrazným neúspěchem s tím, že se jedná "pouze o český trh". Naskytla se příležitost získat konzultace od německé digitální agentury Blackbit. Stefano Viani s námi strávil několik dnů a následně nám jeho tým pomáhal s otestováním zájmu v Evropě. Zároveň jsme požádali o spolupráci profesionální statističku Anetu Mazouchovou, která nám pomáhala přizpůsobit EasyR požadavkům studentů. Aneta nám radila udělat z EasyR něco jako "superEasyR". Nástroj, který bude ještě jednodušší, než jsme zamýšleli. Cílit na studenty, kteří jsou téměř úplně bez znalosti statistiky a udělat jim naprosto základní vyhodnocení, které potřebují do diplomky. Ukázalo se, že takové super zjednodušení s aktivní změnou výpočtených výsledků by bylo z vývojového hlediska poměrně složité, protože koncept EasyR byl úplně odlišný. Dále se zejména Liborovi nelíbilo, že by až takový stupeň zjednodušení mohl mít vliv na kvalitu výsledků, navíc jsme se s touto redukovanou statistickou funkčností blížili statistické úrovni MS Excelu.

Mírně jsme také změnili úhel pohledu a začali uvažovat i o nabídce statistického zpracování pomocí EasyR jako službě. Bohužel jsme si také všimli nového projektu JAMOVI, který se za poslední rok své existence posouval mílovými kroky vpřed.

Už poměrně demotivovaní, po stovkách hodin strávených programováním, výzkumem trhu, tvorbou webu a s "cvakající" platební bránou v nedohlednu, jsme na podzim 2019 s Blackbit odstartovali kampaň v Německu a Holandsku. Připraveno bylo A/B testování - studenti si mohli stáhnout EasyR nebo nahrát datový set v Excelu pro zpracování statistické analýzy. Měli jsme profesionálně nastavenou PPCčkovou a facebookovou kampaň spolu s jednoduchým, ale funkčním webem EasyR. A výsledek byl opět tristní. A znamenal konec projektu.

Zůstal nám poměrně robustní nástroj a spousta kódu, který se dá využít v jiných projektech zaměřených na zpracování a vizualizaci dat.

A taky zajímavé zkušenosti:

  • I když je to těžké, tak "méně programování, více ověření zájmu" - i když je to základní a jediný správný přístup, o kterém jsme velmi dobře věděli, tak jsme tuto chybu udělali. Prostě zákaznické průzkumy jsou to první, co je nutné udělat. K výsledku průzkumu trhu být kritický, ale brát je v úvahu, abychom příště nevyvíjeli "mrtvého koně".
  • Klást si realizovatelné cíle. Byli jsme tým dvou vývojářů a jednoho obchoďáka a chtěli jsme udělat globálně používanou aplikaci. JASP a JAMOVI nás převálcovali, protože měli k dispozici týmy programátorů u kterých nemusí řešit žádné financování, protože jim jde stabilní plat z univerzity. Víceméně nám mělo být jasné, že projekt s takovým rozsahem nemůžeme ve třech zvládnout.
  • I když jsme byli jenom tři, tak se v určité fázi vývoje stalo, že jsme "nedělali všichni to stejné". Bylo to v okamžiku zjednodušování na "superEasyR", kdy část týmu tento přístup přijala a přizpůsobili jsme tomu komunikaci. Ale Libor se s takovým zjednodušením nesmířil a nechtěl toto zjednodušení akceptovat. Debata o tomto se vedla celkem v ostřejším duchu.
  • To, že existoval projekt JASP a pak nás dotáhl a předehnal projekt JAMOVI, nám úplně rozvrátilo morálku. V týmu nastalo přesvědčení, že pokud jsou k dispozici solidní aplikace zdarma (financované samozřejmě z různých grantů), že za tu naši nebude nikdo platit. Už se to teď nedozvíme, jestli by platil, ale konkurence, v tomto případě spíš dumping, nás rozložila.

Edit: Projektu jsme dali ještě jednu šanci na jaře 2022. Najali jsme si studentku z Univerzity Palackého, která cíleně oslovovala učitele statistiky na několika vysokých školách v ČR. Oslovila jich něco přes 100. Zpět jsme získali jednotky zpětných vazeb, z nichž většina byla vůči projektu negativní (většinou již využívali jiný software, na který byli zvyklí nebo prostě jenom ten MS Excel). Sice se našlo několik e-mailů, které nám fandili, ale nepřesvědčilo nás to investovat další hodiny do vývoje.

EasyR tak čeká na svoje využití zejméně pro specializované opakované analýzy. Tak uvidíme.

Libor k tomu dodává ze svého pohledu analytika a programátora

Pro složitější zpracování statistických údajů je jedním ze standardů „programovací“ jazyk R (uvozovky jsou zde záměrně, viz dále).  Jde o implementaci komerčního programovacího jazyka S pod svobodnou licencí. Protože je zdarma, R již předstihlo počtem uživatelů komerční S a stalo se faktickým standardem v řadě oblastí statistiky. R se používá z příkazového řádku, existuje však několik frontendů s grafickým rozhraním jako RKWard, RStudio a R Commander. Funkce prostředí R lze rozšířit pomocí knihoven označovaných jako balíčky (packages). Pro verzi 3.6.2 jich bylo v lednu roku 2020 v centrálním repozitáři CRAN k dispozici 15 325 - https://cs.wikipedia.org/wiki/R_(programovac%C3%AD_jazyk

Problémem pro používání R je, že ne každý uživatel statistiky se chce stát zároveň programátorem. Vypůjčím si pohled od expertního matematického konzultanta Johna D. Cooka PhD. Při snaze naučit se programovat v „jazyku“ R jsem měl úplně stejný pocit, navíc obsahuje i zhodnocení další zajímavé vlastnosti jazyka R – R je ve své podstatě i interaktivním prostředím pro statistické výpočty.

I have written software professionally in perhaps a dozen programming languages, and the hardest language for me to learn has been R. The language is actually fairly simple, but it is unconventional. These notes are intended to make the language easier to learn for someone used to more commonly used languages such as C++, Java, Perl, etc.

R is more than a programming language. It is an interactive environment for doing statistics. I find it more helpful to think of R as having a programming language than being a programming language. The R language is the scripting language for the R environment, just as VBA is the scripting language for Microsoft Excel. Some of the more unusual features of the R language begin to make sense when viewed from this perspective.

https://www.johndcook.com/blog/r_language_for_programmers/

Pokud složitější programování v R dá zabrat i expertům s PhD titulem co programují v cca dvanácti programovacích jazycích, tak je jasné, že složitější a zajímavější rysy tohoto jazyka nebude používat nikdo. VŠ uživatelé skončí na úrovni jednoduchých předpřipravených skriptů a mezi programátory nebude tento jazyk také moc populární.

Při snaze zpřístupnit možnosti jazyka R širšímu spektru uživatelů jsme vycházeli jak z pohledu běžného uživatele, tak i z pohledu zjednodušení vývoje statistických aplikací v „mainstreamových“ programovacích jazycích.

Z hlediska pokročilejšího uživatele je situace jasná a jednoduchá – většina umí pracovat v Excelu, svá data má v Excelu, chce je tak zpracovat v tomto formátu co nejjednodušším způsobem bez náročné výuky programování (nejlépe i kompletně bez přemýšlení, máme přece počítače). Toto zjištění není úplně objevné, například i populární (a drahý) statistický program SPSS má některé rysy Excelu.

Z hlediska programátora je situace podobná – každý programátor databázových aplikací (kterých se programuje drtivá většina) umí na nějaké úrovni dotazovací jazyk SQL. Proč by se měl učit něco dalšího?

EasyR obsahuje zjednodušení pro obě skupiny. Pro uživatele práci v prostředí inspirovaném populární aplikací SPSS a snadným importem/exportem do formátu Excelu. Oproti SPSS umožňuje naše aplikace tvorbu komplexních statistických sestav obsahujících všechny potřebné údaje zároveň (například provedené testy a grafy normality a pak teprve výsledky statistických testů vyžadujících normalitu). Navíc všechny tabulky se dají velmi jednoduše „seskupovat“ (pokud se testují různé části souboru) a „programovat“, tj. zobrazovat/nezobrazovat údaje různých statistických testů.

Pro programátora obsahuje EasyR abstraktní vrstvu, která umožňuje do ní zaregistrovat různé výpočty a knihovny R. Veškeré výpočty (výběry výsledků, seskupování) pak z hlediska aplikace probíhají pomocí této vrstvy, která se postará o přepis do jazyka R, spuštění těchto příkazů a vrácení potřebných výsledků „vrstvě“.  Vygenerovaný přepis do jazyka R jde pak samozřejmě spustit i samostatně (skvělá součást unit testování). Programátor je tak od programování v Rku a od jeho interaktivního prostředí odstíněn. Podobným způsobem funguje například i ORM při používání jazyka SQL.

Others References and Studies