Advertisement
Alppen

Harhala_Osaketuottosimulaatio_16092016

Sep 16th, 2016
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.99 KB | None | 0 0
  1. #Simulointi blogipostausta "Lapsilisillä miljonääriksi?" Harhala-blogiin 16.9.2016
  2. #Tehnyt Allan Seuri, Alex Tabarrokin pohjalta: http://marginalrevolution.com/marginalrevolution/2014/07/average-stock-market-returns-arent-average.html
  3. #Innoittajana Talouselämän juttu: http://www.talouselama.fi/uutiset/ihan-jokaisesta-tulisi-miljonaari-puhdas-matematiikka-lupaa-hyvaa-suomalaisille-lapsille-6583158
  4. #Simuloidaan N kappaletta vastasyntyneitä, joiden 96 euron kuukausittaiset lapsilisät sijoitetaan 7 prosentin tuotolla
  5. #Yksinkertaistetaan laskelmaa olettamalla, että koko vuoden lapsilisät saadaan kerralla (lasketaan vuositasolla)
  6. #Pörssin tuotot ovat normaalijakautuneet N(0.06,0.2)
  7. #Luvut perustuvat S&P500-historialliseen toteumaan
  8.  
  9. setwd("C:/Users/Allan/Documents/blogi/2016/stockReturns")
  10. #Otetaan siemenluvuksi sana "EINSTEIN" käyttämällä TeachingDemos-paketin char2seed-funktiota.
  11. #Siemenluku on 4503855.
  12. require(TeachingDemos)
  13. char2seed("EINSTEIN",set=T)
  14. #Asetetaan kuukausittainen lapsilisä
  15. llisaPerKK<-96
  16. lapsilisaVuosia<-16
  17. T<-67
  18. mu<-0.07
  19. #Simuloidaan 100 000 havaintoa.
  20. N<-100000
  21. #Asetetaan keskihajonta 20 %:iin (kuten Tabarrok tekee)
  22. sd=0.2
  23. #Koska matriisi alkaa alkuarvosta, matriisin koko on T+1.
  24. T<-T+1
  25. #Ensimmäiselle riville hetken nolla arvo eli alkupääoma, nolla.
  26. returnMatrix<-matrix(NA,nrow=T,ncol=N)
  27. returnMatrix[1,]<-0
  28. #Simuloidaan.
  29. for(j in 2:T){
  30.   if(j<=(lapsilisaVuosia+1)){
  31.     returnMatrix[j,]<-(returnMatrix[j-1,]+llisaPerKK*12)*(1+rnorm(N,mean=mu,sd=sd))
  32.   }
  33.   if(j>(lapsilisaVuosia+1)){
  34.     returnMatrix[j,]<-returnMatrix[j-1,]*(1+rnorm(N,mean=mu,sd=sd))
  35.   }
  36. }
  37.  
  38. #Tarkastellaan keskiarvoa, mediaania ja niiden suhdetta.
  39. mean(returnMatrix[T,])
  40. median(returnMatrix[T,])
  41. mean(returnMatrix[T,])/median(returnMatrix[T,])
  42. #Kuinka moni saavuttaa miljoonan, kuinka moni jää alle alkupääoman?
  43. sum(returnMatrix[T,]>=1000000)/N
  44. sum(returnMatrix[T,]<startCapital)/N
  45. #Näin suuri osuus jää alle 150 000:n
  46. sum(returnMatrix[T,]<150000)/N
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement