Administrator
|
Kilpatehtävä:
Olen tallentanut verkkoon tekstitiedoston DATA_XY.TXT . Se sisältää Survolla luodun kahden muuttujan X,Y 1000 havainnon aineiston. Tehtävänä on selvittää tämän aineiston syntytapa. Parhaan ratkaisun ensimmäisenä esittäneen palkitsen 100 eurolla. Odotan ratkaisuehdotuksia tähän keskusteluun 1.3.2017 mennessä. Terv. Seppo |
Administrator
|
Mikäli arkailette kertoa ratkaisuistanne julkisesti,
voitte myös lähettää niitä minulle viesteinä osoitteeseen seppo.mustonen(at)survo.fi 1.3.2017 mennessä. Kilvan päätyttyä julkaisen näitä viestejä tässä keskustelussa vasta saatuani siihen lupanne. |
Administrator
|
Kilpailuun tuli 3 vastausta, joista ylivoimaisesti paras oli
Aleksis Vuoksenmaan ratkaisu ja hänelle kuuluu tarjoamani
100 euron palkinto.
Toivon, että Aleksis lähettäisi oman ratkaisunsa tähän keskusteluun
haluamassaan muodossa.
Oma malliratkaisuni on nähtävänä uutena Survo-demona
Merits of slow plotting,
jonka olin sommitellut ennen kuin päätin julistaa tämän kilpailun.
Kuten tuosta demosta ilmenee, ratkaisua helpottaa olennaisesti,
jos annetusta aineistosta voi piirtää hajontakuvan hitaalla
nopeudella. Tällöin heti huomaa, että peräkkäiset pisteet pyörivät
spiraalimaisesti vastapäivään keskipisteen ympäri ja etääntyvät
siitä vähitellen. Ei edes voimakas satunnaisvaihtelu häivytä
tätä vaikutelmaa, mutta se estää kierot kierrot näkymästä staattisesta
hajontakuvasta. Kuten sekä Aleksis Vuoksenmaan että oma ratkaisuni osoittaa, kilpatehtävän ratkaisuun pääsee ilmankin tätä uutta SLOW-optiota. Pitää vain huomata, että havainnot riippuvat järjestysnumeroistaan ja todeta spiraalimainen etääntyminen keskipisteestä esim. osa-aineistoja piirtämällä. |
Administrator
|
Kannattaa huomata, että esimerkkiratkaisussani
Merits of slow plotting
on linkki More information about this example josta avautuu hieman lisää tietoa tämän demon "historiallisesta" taustasta. |
In reply to this post by Seppo Mustonen
Hei,
Ohessa alkuperäinen ratkaisuni. Latasin lisäksi R-scriptin, jonka pitäisi avata hieman järkeilyprosessiani. Tuo R-tiedosto olettaa, että työhakemistossa on data tiedostona "survodata.txt". Data on generoitu käyttäen apuna spiraalia, jonka alkupiste on suunnilleen kohdassa (2250, 1900). Olette sitten valinneet spiraalin avulla 1000 pistettä spiraalin keskiöstä poispäin etenevässä järjestyksessä. Näiden pisteiden avulla olette ottaneet spiraalin tämän pisteen normin suuntaisen (normaalijakaumaisen) virheen, jonka summaaminen spiraalin pisteeseen antaa tällä indeksillä olevan datapisteen. Päädyin ratkaisuun seuraavalla tavalla. Havaitsin ensin, että aineiston varianssi kasvoi indeksien kasvaessa, mutta keskiarvo pysyi suunnilleen samana. Tämän jälkeen koitin piirtää muutamia osia aineistosta. Huomasin, että jos otti aineiston häntäpäästä noin 50 havainnon pituisen kokoelman ja piirsi nämä tasolle, muodostivat pisteet likimäärin vajaan ympyrän. Kun tähän kokoelmaan lisäsi muutaman seuraavan pisteen, näytti ympyrä sulkeutuvan indeksien mukana. Sitten laskin havaintojen euklidisen etäisyyden origosta (2250, 1900). Huomasin tämän olevan suoraan verrannollinen indeksiin. Eli havainnot olivat keskimäärin kauempana pisteestä (2250, 1900) mitä isompi havainnon indeksi oli. Tämän jälkeen mietin, oliko tosiaan niin että havainnot piirtäisivät pisteen (2250, 1900) ympärille spiraalin. Selvittääkseni tämän, laskin jokaisen havainnon kohdalla sen kiertokulman suhteessa x-akseliin. Plottasin kiertokulmat suhteessa indeksiin ja niissä ilmeni tiettyä periodisuutta (spiraalin kiertymät). Muutin kiertokulmat kiertymiksi (tämän kierroksen kiertokulma + aikaisemmin kierrettyjen kierrosten lukumäärä * 2*pi). Kun plottasin kiertymän vasten indeksejä, huomasin, että kiertymä määräytyi oikeastaan suoraan indeksin mukaan. Näistä päädyin lopputulokseen: havainnot on saatu spiraalin + virhetermin avulla generoimalla. Tämä selittää sen, minkä takia havaintojen etäisyys pisteestä (2250, 1900) kasvaa indeksin mukana. Indeksihän näet määrittää kiertymän, ja kiertymän ja spiraalin kaaren pisteen välinen etäisyys (säde) tulee kaavalla r = a + b*\theta, missä r on säde, a jokin kiertymätermi, b spiraalin kaarien välinen etäisyys ja \theta kiertymä. Havaintojen etäisyys pisteestä (2250, 1900) on siis suoraan verrannollinen suhteessa kiertymään ja sen takia suoraan verrannollinen suhteessa indeksiin. Tähän vielä virhetermi, niin jotain annetun muotoista dataa pitäisi syntyä. Datakilpa_Vuoksenmaa_final.R |
Free forum by Nabble | Edit this page |