PDA

Pogčedajte punu verziju : Sotware za statističku analizu (uglavnom vremenskih nizova)


misko_
15. 09. 2011., 10:00
Imam želju (ideju), za osobno potrebe, da napravim alat ili skup alata s kojima bih mogao analizirati i vizualno (uz pomoć raznih grafova) prikazivati podatke iz vremenskih nizova (jedan stupac je vrijeme, a drugi je nekakva vrijednost(uglavnom cijena)).

Moja prva ideja je bila da sve podatke strpam u tablicu (bazu) i pomoću SQL-a vadim sirove podatke (SELECT * FROM table).
Uzmem Python (ili R) za obradu podataka, te poslje koristim neki alata za grafikone (npr. gnuplot)

Od ove ideje sam odustao iz više razloga:
- jer ne znam R, neznam ga kao jezik, a ni ne znam koliko bi bio dobar za moje potrebe
- u Python bi trebao dosta pisati
- vidio da i SQL mi može koristiti za nekakve statistike (npr. min, max, avg, cijena po mjesecu, godini... -> što bio više kodiranja u pythonu)

U mom postu http://www.devprotalk.com/t10362-kako-izra269unati-verine-indekse-statistika-u-mysql.html se vidi da sam tu već došao do nekakvih problema, ali je ipak nekako riješen.

Onda sam htio izračunati MEDIAN, ali MySQL ga nema, ali ipak postoji http://mysql-udf.sourceforge.net/.
Ali mučenje oko kompajliranje (http://groups.google.com/group/mysql-udf-repository/browse_thread/thread/004e035b7d31dba7?pli=1), mi se čini previše. Pogotovo jer bih htio računati i MOD i INTERKVARTILE, itd.
A za to bi morao sam pisati svoje "User Defined Functions" i nekako mi se to čini kao prevelika muka.

Ono što me zanima je da li mi netko može dati nekakav savjet kako da si malo život olakšam.

Trenutno radim sa SQL (u kojem pišem upite), a BIRT (java eclipse) koristim za prikaz grafikona.

Čak mi pada napamet da možda sa SQL-om vadim podatke, stavljam ih u excel, pa u excelu radim obrade i prikaz.

Znači ako tko ima kakav savjet, dobrodošao je.

Hvala

JovanT
15. 09. 2011., 10:20
Kako stojiš sa PHP-om? Pomoću njega možeš vrlo lako da radiš obradu a ima i jako lepe klase za pravljenje grafikona.

misko_
15. 09. 2011., 10:37
Kako stojiš sa PHP-om? Pomoću njega možeš vrlo lako da radiš obradu a ima i jako lepe klase za pravljenje grafikona.

Generalno moj prvi pristup je bio:
- Baza -> tu se nalaze podaci
- Neki programski jezik -> služi za obradu, transformaciju podataka
- neka klasa, alat -> za prikaz na grafikon

Meni nije problem da li će mi korak između biti PHP, Python, R ili neki drugi jezik.
R sam spomenio jer sam čuo da je on baš za statističke analize dobar.

Problem sa PHP (Pythonom, ili nešto treće) je sljedeća.
Jednostavna stvar kao što je ova u SQL-u:

SELECT
CONCAT(MONTH(date),"-",YEAR(date)) as MM_YYYY,
ROUND(AVG(eur_pm),2) as EUR_PM
FROM lbma_gold
WHERE date BETWEEN '1999-1-1' AND NOW()
GROUP BY YEAR(date), MONTH(date);

Za koju i treba napisati i testirati max 3 minute.

U PHP ili nešto treće trebalo bi i po sat vremena.
Jer bi morao proći kroz svaki red, pa imati logiku da kužim godine, mjesece, pa da ih grupiram, računa prosjek, pa brojač itd.

Ono što bih ja želio je imati alate, kod kojih ću sa minimalno utrošenog vremena dobiti rezultat.

SQL mi je ko super za te stvari (upit se napiše jako brzo), samo je mana što nema sve funkcije koje su mi potrebne.

Možda bi mogao pisati storane procedure za te kompliciranje stvari ?

jablan
15. 09. 2011., 11:15
Ono što me zanima je da li mi netko može dati nekakav savjet kako da si malo život olakšam.

Nauči R.

jablan
15. 09. 2011., 12:22
^ Da elaboriram i ujedno odgovorim na PP...

Imam želju (ideju), za osobno potrebe, da napravim alat ili skup alata s kojima bih mogao analizirati i vizualno (uz pomoć raznih grafova) prikazivati podatke iz vremenskih nizova (jedan stupac je vrijeme, a drugi je nekakva vrijednost(uglavnom cijena)).

Osim ako tvoj cilj nije usavršavanje u programiranju (što sumnjam, s obzirom da nisi načisto u kom pravcu da ideš), ili izrada komercijalne aplikacije (za šta ti treba dosta para/vremena), nema smisla izmišljati rupu u saksiji. R je specijalizovan jezik koji ljudi već koriste u praksi, dovlači podatke iz baze, ima grafičko predstavljanje itd. Meni lično nije jasno kako činjenica da ne znaš neki jezik uopšte može da bude kriterijum za eliminaciju?!

Ako ti treba veća sloboda (po cenu više posla), uzmeš Python, on ima dobre numeričke (a verujem i statističke) biblioteke, proveren je jezik.

PHP u celoj priči nema šta da traži, osim po principu "imam čekić, ergo sve oko mene je ekser (http://en.wikipedia.org/wiki/Law_of_the_instrument)".

misko_
15. 09. 2011., 13:59
Bilo bi najbolje (u što sumljam da će se dogoditi), kada bi bio netko tko je ovakvo što već napravio, pa im on rekao radili smo tako i tako, i imali ovakve i ovakve probleme, da krećem iz početka uradio bi to i to.

Jer velika je razlika da li netko govori iz osobno, tuđeg ili onoga što je pročitao po netu.

Zato sam te na PP pitao da li si imao iskustva sa R ili ne.

Ja osobno znam samo jednu osobu koja ima nešto iskustva sa R.
Kada sam ga pitao za savjet u vezi ovoga moga, on mi je odgovorio da dosta toga bi morao sam programirati, možda je bio u krivu.

Kada sam ga pitao čemu on koristi taj R, rekao mi je za analizu ženinih menstrualnih ciklusa (toliko o tome koliko ga on ozbiljno koristi :1046: )

^ Da elaboriram i ujedno odgovorim na PP...

Osim ako tvoj cilj nije usavršavanje u programiranju (što sumnjam, s obzirom da nisi načisto u kom pravcu da ideš), ili izrada komercijalne aplikacije (za šta ti treba dosta para/vremena), nema smisla izmišljati rupu u saksiji.


Izrada komercijalne mi nije u vidu, bar ne sada. Ja sam tražio da li se može kupiti kakav alat za ovo što me zanima, i ima ih dosta. Ali svi oni imaju predefinirane upite (izvještaje) koje možeš napraviti. I zbog toga sam krenuo sa izradom svoga alata (ili skupa alata).


R je specijalizovan jezik koji ljudi već koriste u praksi, dovlači podatke iz baze, ima grafičko predstavljanje itd. Meni lično nije jasno kako činjenica da ne znaš neki jezik uopšte može da bude kriterijum za eliminaciju?!


Meni je bitno na što bolji način (tako da potrošim i sada i u budućnosti, što manje vremena) riješiti problem.
Pošto R zahtijeva vrijeme za učenje, a nisam ni siguran da li bi riješio moje zahtijeve, zato nisam bio voljan odmah uhvati knjigu u ruke i čitati.
Iako mi se čini da ču krenuti tim putem.


Ako ti treba veća sloboda (po cenu više posla), uzmeš Python, on ima dobre numeričke (a verujem i statističke) biblioteke, proveren je jezik.
.

Ja sam po blogovima čitao da za statistiku zaboravi Python (i numpy) bolje uzmi R. Ali opet to je što sam čitao nije osobno iskustvo.

Usput SQL upiti sa MySQL Workbench, pa malo wordpad 's/./,/g', pa copy/paste excel, pa malo izračun ručno, pa chart/pivot, nije tako loše, dobijem što mi treba.
Mana je što mi za svaki izvještaj treba po 30 min, a ako hoću nešto promjeniti opet potrošiti 30 min, zato bih htio to sve napraviti automatski da samo unesem parametre i nakon par sekundi sve gotovo.

ivanhoe
15. 09. 2011., 15:21
Matlab, on je smisljen (izmedju ostalog) za to i imas 2 miliona statistickih boxova/funkcija koje samo treba da ukljucis... dok god nisi izmislio novi matematicki model, nego samo koristis nesto postojece, i naravno ako ne simuliras nastajanje kosmosa, matlab razbija...

jablan
15. 09. 2011., 17:35
Kada sam ga pitao čemu on koristi taj R, rekao mi je za analizu ženinih menstrualnih ciklusa (toliko o tome koliko ga on ozbiljno koristi :1046: )

Ja lično nisam, ali ovi u mojoj firmi ga koriste i to za prilično ozbiljne stvari. Mislim, na kraju krajeva, imaš masu primera po netu, možeš da vidiš da li ti odgovara bez da ga učiš.

Python je jezik opšte namene, tako da je upoređivati ga sa R-om malo mešanje baba i žaba.

A Matlab je, sa druge strane, moćan komercijalni paket, sigurno bi ti i on završio posao, ako ti odgovara taj ekosistem.

M.S.
15. 09. 2011., 19:54
Pozdrav Misko,

Ne treba Vam nista drugo do SPSS-a.

R je dobar, ali zahteva programerski "pristup".

I Access je odlican, ali cini mi se da ima ogranicenje na broj redova u bazi. Ja sam imao po 13M redova, i to Access nije mogao da odradi. Ali da je odlican za grafove - jeste.

SPSS - topla preporuka. Samo ga probajte, necete se pokajati. Sto se web alata za analizu veceg broja podataka tice...to bi i ja voleo da vidim, pa ako nadjete nesto - javite.

ivanhoe
15. 09. 2011., 20:17
A i Excel ume da uradi jako puno toga

M.S.
15. 09. 2011., 20:37
Da, Excel sam koristio za "svlacenje" podataka sa sajtova, kao pripremu za unos u SPSS.

Problem je u tome sto Excel zahteva mnogo kuckanja. U SPSS-u je GUI fenomenalan, a opcije za analizu su na klik. Dok bi mi u Excelu pisanje sopstvenih formula oduzelo par sati, u SPSS-u to imam u 5 klikova.

misko_
16. 09. 2011., 13:22
Znam programirati tako da mi R nije problem.
Jučer sam ga počeo proučavati.

Za SPSS sam našao nekakav video toturial (za verziju 13) pa ga gledam.
Računam bolje gledati par sati, nego sam istraživati ili čitati knjigu.
Sviđa mi se što ima output gdje se već dobiju tablie i grafikoni.

javim kako ovo završi.

M.S.
16. 09. 2011., 19:02
Tabele, Grafikoni, izvestaji, konverzije u razlicite formate, export/import opcije....tesko da ima nesto bolje od SPSS-a za statisticku analizu, a da je javno dostupno.