Page 1 of 1

Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 12:24
by Jónas
Er með runu af tölum, sem eru annaðhvort plús eða mínus... t.d.:

1
2
3
2
2
-2
-2
-1

etc og það sem ég þarf að gera er að ná að sortera niður hversu langt "run" af jákvæðum tölum er, eins og fyrir ofan þá koma 5 jákvæðar(lengd "run" er 5) og svo 3 neikvæðar(lengd neikvæðs "run" er 3...), þannig að ég þarf að setja upp einhversskonar töflu þar sem að fram kemur þar sem að ég næ að telja hversu oft viðkomandi lengd á "runni" kemur fyrir..

Image

Er semsagt með mjög langa tímaseríu af ávöxtunartölum hlutabréfa, og stundum koma 3 vikur í röð þar sem að það er jákvæð ávöxtun, etc etc og þessar þrjár vikur teljast sem einn, og fara í viðeigandi dálk, svo ef það kemur aftur fyrir að það er jákvæð ávöxtun í 3 vikur þá erum við kominn með 2 í viðeigandi dálk?

Vonandi er þetta skiljanlegt.

Þetta er ekki heimaverkefni, engar áhyggjur

Edit: ég veit að þetta á að vera hrikalega einfalt í matlab, er hinsvegar ekki alveg nógu sjóaður þar

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 12:33
by JOGA
Margar leiðir:

Ein væri einfaldlega að búa til if setningu í Excel sem er 0 ef talan er í mínus en 1 ef ekki.
Notar svo 0 og einn til að ákvarða lengd "run-s". Ætti ekki að vera erfitt.

Ef þú importar þessu til dæmis í Eviews þegar þetta er komið þá ætti að vera mjög einfalt að leika sér með þetta.

Er hvorki með Excel né Eviews uppsett hjá mér núna. Var að formatta tölvuna en þetta ætti í það minnsta að gefa þér hugmynd.

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 13:17
by Aron Fridrik
það er ekkert einfalt í matlab :aww:

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 15:32
by bimmer
Jónas wrote:Edit: ég veit að þetta á að vera hrikalega einfalt í matlab, er hinsvegar ekki alveg nógu sjóaður þar


Ertu ekki með á hreinum hvernig þú tæklar verkefnið eða er það syntaxinn í Matlab sem flækist fyrir þér?

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 15:51
by Jónas
Er ekki með það á hreinu, þetta er náttúrulega hægt með brute force í excel, en þar sem að þetta eru 20 ára gögn yfir 5 vísitölur held ég að það sé fljótara að eyða nokkrum klukkutímum að reyna þetta í matlab eða álíka :)

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 16:38
by bimmer
Hér er smá bland af pseudokóða og matlab - er ekki með matlab uppsett
þannig að ég gat ekkert prófað þetta.


///////////////////////////////////////////////////////////////////////////////////////////////////////////
skilgreina vektorinn [gogn]
skilgreina breytuna [formerki] Er -1 eða 1
skilgreina vektorinn [jakvaedar]
skilgreina vektorinn [neikvaedar]
skilgreina breytuna [tala]
skilgreina breytuna [lengdrun]



Lesa inn gögnin í vektor [gogn]


// Skilgreina plús eða mínus út frá fyrstu tölu
if gogn(1) > 0
formerki=1
else
formerki=-1
end

lengdrun = 1


for n = 2:prod(size(gogn))

tala = gogn(n)


// athuga hvort run sé að breytast

if (tala*formerki) > 0
// run ekki að breytast
lengdrun = lengdrun + 1;

else
// run að breytast
if formerki > 0
// Bæti við talninguna af jákvæðri runu með lengd lengdrun
jakvaedar(lengdrun)=jakvaedar(lengdrun)+1
formerki=-1
else
// Bæti við talninguna af neikvæðri runu með lengd lengdrun
neikvaedar(lengdrun)=neikvaedar(lengdrun)+1
formerki=1
end

lengdrun = 1
end

end

///////////////////////////////////////////////////////////////////////////////////////////////////////////

Þetta skilar þér 2 vektorum með fjölda jávæðra og neikvæðra runa.


EDIT: Spacing fer allt í rugl en kemur er þú gerir "quote" á póstinn :?

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 16:40
by birkire
hvaða nám erum við að tala um hérna ?


bara svo ég geti forðast það

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 17:09
by Jónas
Snilld bimmer, ég skoða þetta reyni að koma dótinu inní.

Þakka

birkire.. þetta er hagfræði :)

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 17:19
by Siifin
Er ekki bara langþægilegast að leysa þetta með Subtotal í excel?.
setja þá
Use function : count

Re: Matlab / octave / gretl / EVIews / Excel .... meistarar?

PostPosted: Fri 05. Feb 2010 18:25
by ömmudriver
birkire wrote:hvaða nám erum við að tala um hérna ?


bara svo ég geti forðast það


:lol: