Statystyka w R


Idź do treści

Indeksy


Indeksy i przyrosty należą do najprostszych metod analizy dynamiki zjawisk. Warto podkreślić, że formuły indeksów giełdowych opierają się na konstrukcji rozważanych w tej części indeksów agregatowych.


####################################################################
################### Indeksy - wybrane zagadnienia ##################
####################################################################

### indeksy indywidualne i przyrosty
indeksy_ind=function(x,k) { #x - szereg czasowy, k-numer stałej podstawy
n=length(x) # liczba obserwacji
prz_ab_st=c() # przyrosty absolutne (bezwzględne) o stałej podstawie z okresu k
prz_ab_l=c(NA) # przyrosty absolutne (bezwzględne) łańcuchowe
# NA - Not Available czyli brak danych
prz_wz_st=c() # przyrosty względne o stałej podstawie z okresu k
prz_wz_l=c(NA) # przyrosty względne łańcuchowe
i_st=c() # indeksy o stałej podstawie z okresu k
i_l=c(NA) # indeksy łańcuchowe
isr=(x[n]/x[1])^(1/(n-1)) # średni indeks zmian

for (i in 1:length(x)) {
prz_ab_st=c(prz_ab_st,(x[i]-x[k]))
prz_ab_l=c(prz_ab_l,(x[i]-x[i-1]))
prz_wz_st=c(prz_wz_st,100*prz_ab_st[i]/x[k])
prz_wz_l=c(prz_wz_l,100*prz_ab_l[i]/x[i-1])
i_st=c(i_st,(x[i]/x[k]))
i_l=c(i_l,(x[i]/x[i-1]))
}

list(prz_ab_st=prz_ab_st,prz_ab_l=prz_ab_l,prz_wz_st=prz_wz_st,prz_wz_l=prz_wz_l,i_st=i_st,i_l=i_l, isr=isr)
}

#przykład
airmiles # dane dotyczące lotów pasażerskich w latach 1937-1960 w USA
#więcej informacji o danych
?airmiles
#obliczenia:
indeksy_ind(airmiles,1)
# otrzymujemy:
# $prz_ab_st
# [1] 0 68 271 640 973 1006 1222 1766 2950 5536 5697 5569
# [13] 6341 7591 10154 12116 14348 16357 19407 21950 24928 24931 28857 30102
# $prz_ab_l
# [1] NA 68 203 369 333 33 216 544 1184 2586 161 -128 772 1250 2563
# [16] 1962 2232 2009 3050 2543 2978 3 3926 1245
# $prz_wz_st
# [1] 0.00000 16.50485 65.77670 155.33981 236.16505 244.17476
# [7] 296.60194 428.64078 716.01942 1343.68932 1382.76699 1351.69903
# [13] 1539.07767 1842.47573 2464.56311 2940.77670 3482.52427 3970.14563
#[19] 4710.43689 5327.66990 6050.48544 6051.21359 7004.12621 7306.31068
# $prz_wz_l
# [1] NA 16.50485437 42.29166667 54.02635432 31.65399240 2.38267148
# [7] 15.23272214 33.29253366 54.36179982 76.91850089 2.70679220 -2.09526927
# [13] 12.90754055 18.51029172 32.02549044 18.56899489 17.81609195 13.61111111
# [19] 18.18832369 12.83112165 13.31723459 0.01183899 15.49145721 4.25364720
# $i_st
# [1] 1.000000 1.165049 1.657767 2.553398 3.361650 3.441748 3.966019
# [8] 5.286408 8.160194 14.436893 14.827670 14.516990 16.390777 19.424757
# [15] 25.645631 30.407767 35.825243 40.701456 48.104369 54.276699 61.504854
# [22] 61.512136 71.041262 74.063107
# $i_l
# [1] NA 1.1650485 1.4229167 1.5402635 1.3165399 1.0238267 1.1523272
# [8] 1.3329253 1.5436180 1.7691850 1.0270679 0.9790473 1.1290754 1.1851029
# [15] 1.3202549 1.1856899 1.1781609 1.1361111 1.1818832 1.1283112 1.1331723
# [22] 1.0001184 1.1549146 1.0425365
# $isr
# [1] 1.205833

### indeksy agregatowe
indeksy_agr=function(pi0,pit,qi0,qit) {
Iw=sum(pit*qit)/sum(pi0*qi0) # indeks wartości
IpL=sum(pit*qi0)/sum(pi0*qi0) # indeks cenowy Lapseyersa
IqL=sum(pi0*qit)/sum(pi0*qi0) # indeks ilościowy Lapseyersa
IpP=sum(pit*qit)/sum(pi0*qit) # indeks cenowy Paschego
IqP=sum(pit*qit)/sum(pit*qi0) # indeks ilościowy Paschego
IpF=sqrt(IpL*IpP) # indeks cenowy Fishera
IqF=sqrt(IqL*IqP) # indeks ilościowy Fishera
list(Iw=Iw,IpL=IpL,IqL=IqL,IpP=IpP,IqP=IqP,IpF=IpF,IqF=IqF)
}
#przykład
ceny_0=c(2,3,4)
ceny_t=c(2.2,2.9,3.8)
ilosci_0=c(100,500,200)
ilosci_t=c(110,520,250)
indeksy_agr(ceny_0,ceny_t,ilosci_0,ilosci_t)
# otrzymujemy:
# $Iw
# [1] 1.08
# $IpL
# [1] 0.972
# $IqL
# [1] 1.112
# $IpP
# [1] 0.971223
# $IqP
# [1] 1.111111
# $IpF
# [1] 0.9716114
# $IqF
# [1] 1.111555





Powrót do treści | Wróć do menu głównego