Advertisement
Alppen

Harhala_Osaketuottosimulaatio_15092016

Sep 15th, 2016
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.75 KB | None | 0 0
  1. #Simulointi blogipostausta "Keskivertosijoittaja ei saa keskivertotuottoa" Harhala-blogiin 15.9.2016
  2. #Tehnyt Allan Seuri, Alex Tabarrokin pohjalta: http://marginalrevolution.com/marginalrevolution/2014/07/average-stock-market-returns-arent-average.html
  3. #Innoittajana Martin Paaden blogikirjoitus: http://www.nordnetblogi.fi/lapselle-saastaminen-kannattaa/30/08/2016/
  4. #Simuloidaan N kappaletta vastasyntyneitä, joille annetaan tietty alkupääoma. Tarkastellaan loppupääoman jakaumaa.
  5.  
  6. setwd("C:/Users/Allan/Documents/blogi/2016/stockReturns")
  7. #Otetaan siemenluvuksi sana "EINSTEIN" käyttämällä TeachingDemos-paketin char2seed-funktiota.
  8. #Siemenluku on 4503855.
  9. require(TeachingDemos)
  10. char2seed("EINSTEIN",set=T)
  11. #Asetetaan alkupääoma keskituoton ja säästämishorisontin funktiona.
  12. endCapital<-1000000
  13. T<-67
  14. mu<-0.066
  15. #Tämä on se noin 13800, jonka Paasi esittää.
  16. startCapital<-endCapital/(1+mu)^T
  17. #Simuloidaan 100 000 havaintoa.
  18. N<-100000
  19. #Asetetaan keskihajonta 20 %:iin (kuten Tabarrok tekee)
  20. sd=0.2
  21. #Koska matriisi alkaa alkuarvosta, matriisin koko on T+1.
  22. T<-T+1
  23. #Alustetaan matriisi, sarakkeissa yksilöt ja riveillä aika
  24. returnMatrix<-matrix(data=NA,nrow=T,ncol=N)
  25. #Ensimmäiselle riville hetken nolla arvo eli alkupääoma.
  26. returnMatrix[1,]<-startCapital
  27. #Simuloidaan.
  28. for(j in 2:T){
  29.   returnMatrix[j,]<-returnMatrix[j-1,]*(1+rnorm(N,mean=mu,sd=sd))
  30. }
  31. #Tarkastellaan keskiarvoa, mediaani ja niiden suhdetta.
  32. mean(returnMatrix[T,])
  33. median(returnMatrix[T,])
  34. mean(returnMatrix[T,])/median(returnMatrix[T,])
  35. #Kuinka moni saavuttaa keskituoton, entä kuinka moni jää alle alkupääoman?
  36. 1-sum(returnMatrix[T,]<endCapital)/N
  37. sum(returnMatrix[T,]<startCapital)/N
  38. #Näin suuri osuus jää alle 100 000:n
  39. sum(returnMatrix[T,]<100000)/N
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement