2017-12-10 2 views
0

Ich arbeite an einer Zeitreihenanalyse. Ich möchte die vierteljährlichen Produktivitätsdaten von 1971 bis 2015 analysieren. Die Produktivität wird jedoch im Produktivitätsindex ausgedrückt, wobei 2010 = 1.Ersetzen von Werten in einer Spalte, um den Produktivitätsindex zu ändern Anfangswert - R

Dies bedeutet, dass der Durchschnittswert der 4 Quartale des Jahres 2010 gleich 1 ist gilt als Anfangswert. Inkrementierungen oder Verringerungen der Produktivität werden dann in Bezug auf diesen Wert ausgedrückt.

> dput(head(prod_ts,179)) 
structure(c(0.4652, 0.4721, 0.4808, 0.4827, 0.4814, 0.493, 0.4936, 
0.5002, 0.5221, 0.5228, 0.5193, 0.518, 0.5058, 0.5152, 0.5193, 
0.5132, 0.5163, 0.5089, 0.5088, 0.517, 0.5269, 0.5229, 0.5279, 
0.5384, 0.5393, 0.5369, 0.5409, 0.5482, 0.5498, 0.5543, 0.5594, 
0.561, 0.5553, 0.5782, 0.5631, 0.5679, 0.5632, 0.5545, 0.5565, 
0.5545, 0.5552, 0.5599, 0.5707, 0.5742, 0.5787, 0.5884, 0.5916, 
0.5984, 0.6102, 0.6152, 0.6185, 0.6214, 0.6244, 0.6173, 0.6182, 
0.6247, 0.6304, 0.639, 0.6377, 0.6412, 0.6504, 0.6584, 0.6633, 
0.6736, 0.6753, 0.6815, 0.6925, 0.6937, 0.6995, 0.6978, 0.7034, 
0.7037, 0.7013, 0.6999, 0.6977, 0.6982, 0.7059, 0.7105, 0.7021, 
0.6992, 0.7016, 0.7051, 0.7098, 0.7187, 0.7285, 0.7436, 0.7518, 
0.7638, 0.7707, 0.7748, 0.7816, 0.7884, 0.7935, 0.8039, 0.8123, 
0.818, 0.8232, 0.823, 0.8284, 0.8266, 0.8345, 0.8359, 0.8399, 
0.8434, 0.8496, 0.8545, 0.8577, 0.8661, 0.8696, 0.8734, 0.8759, 
0.881, 0.8837, 0.8824, 0.8938, 0.903, 0.9101, 0.9131, 0.9129, 
0.915, 0.9218, 0.9266, 0.9323, 0.9324, 0.9371, 0.9392, 0.9467, 
0.9497, 0.956, 0.9603, 0.9689, 0.9747, 0.9744, 0.9782, 0.9788, 
0.977, 0.9814, 0.9916, 0.9977, 1.0141, 1.0108, 1.0109, 1.009, 
1.0116, 1.0214, 1.0243, 1.0276, 1.0304, 1.0295, 1.0212, 1.0097, 
0.9894, 0.979, 0.9861, 0.9883, 0.9898, 0.9982, 1.001, 0.999, 
1.0018, 1.0037, 1.005, 1.0146, 1.0144, 1.0168, 1.0088, 1.0171, 
1.0106, 1.0193, 1.0214, 1.0244, 1.0235, 1.0239, 1.0269, 1.0305, 
1.0347, 1.0309, 1.0383, 1.0358), .Tsp = c(1971, 2015.5, 4), class = "ts") 

Dies ist nicht sehr nützlich für meine Analyse. Ich möchte, dass die Summe der Quartale im Jahr 1971 so ausgedrückt wird, dass ihre Summe 1 ist. Dann werden alle übrigen Werte der Zeitreihe (jedes Quartal von 1972 bis 2015) als Zeitreihe mit Anfangswert ausgedrückt (1971,1).

+0

Brauchen Sie 'prod_ts [format (zoo :: als.yearmon (time (prod_ts)), '% Y') == 1971] <- 1' – akrun

+0

Vielleicht suchen Sie nach' prod_ts/mean (prod_ts [1: 4 ]) '' das skaliert die Serie, so dass der Mittelwert der ersten 4 Viertel ist 1. –

+0

@akrun, danke! Das ist, was ich brauche. Allerdings habe ich mich etwas falsch ausgedrückt. Ich möchte mit vierteljährlichen Daten bleiben .. Ich will (1971,1) = 1 ... wie muss ich deinen Code ändern? – Dana

Antwort

0

Wenn ich das richtig verstanden, Sie durchschnittlich 1971 Werte (Q1 bis Q4) 1 zu sein, wie es derzeit für das Jahr 2010 ist Wenn ja, sollte dies beheben (Ihre Daten unter der Annahme ist in df:

df/mean(df[1:4]) 
Verwandte Themen