データのお砂場(40) R言語、airmiles、米国の航空会社の旅客マイルとな、昔の

Joseph Halfmoon

R言語所蔵のサンプルデータセットをABC順(大文字先)で端から眺めております。今回のデータセットairmiles、デジャヴか、いよいよ妄想でたか、と思ったら以前に似たものやってました。以前のは「人数」で「月次データ」、今回のものは「RPM」値で「年次データ」であります。いずれも60年以上前の航空業界のデータです。

※「データのお砂場」投稿順Indexはこちら

以前に実習した「似たデータセット」の回は以下です。

データのお砂場(1) R言語、AirPassengers、せめて前年同月比プロットしたい

この年寄りにはすでに忘却の彼方に過ぎ去った回。とんと覚えておりませぬ。第二次世界大戦後の1949年から1960年の国際線の乗客数の月次データでした。月次なので季節変動ありの時系列。

それに対して、今回のデータセットの解説ページが以下に。

Passenger Miles on Commercial US Airlines, 1937-1960

上記より古く、なんと1939年(昭和14年、昭和と聞くと分かった気がする年寄りデス)から1960年の米国民間航空会社のRPMの年次データです。似たようなデータで、おなじ A からはじまるのですが、一方は大文字Aなので、第1回となり、他方は小文字aなので今回と、泣き別れ。

さてま、RPM (revenue passenger miles) とは何ぞや、といえば米国の運輸業界では定番の指標みたいです。メートル法の日本では 人・キロ ですな。有料で運んだ人数かけることの運んだマイル数です。RPMの解説が以下に。

Revenue Passenger Mile (RPM)

しかし、今回のデータセットの説明ではRPMの桁の「単位」がないです。1939年など単に412とか3桁の数字書いてあります。戦前とは言え、全米の航空会社が1年仕事をして単なる412マイルx人、ということはありますまい。ミリオンRPMとか、ビリオンRPM(さすがにビリオンはないかな?)とか単位があるんだと想像しますが書いてません。まあ、グラフを描くのに支障はありませぬが。

まずは生データ

生データをロードしてみました。予想通りの ts (時系列データ)です。rawdata

小さなデータセットなので、その全貌は以下で眺められます。1937年から1960年の年次データ、最初は三桁、末尾で5桁。100倍近い伸びのデータです。

rawdata2

解説ページには処理例があったのですが、単に plot しているだけでした。

plot(airmiles, main = "airmiles data", xlab = "Passenger-miles flown by U.S. commercial airlines", col = 4)

プロットの結果が以下に。第2次大戦の終結後一気に伸び、ちょっと中だるみしてまた伸びてと。1957年、1958年あたりまた横ばいになっている何故?不況だったの?

plot

対数グラフ化、移動平均グラフ化

ただグラフにしておしまいでは、第1回から何の進歩もないです。かといって、年次データなので、「伸びているトレンド」は現れている筈ですが、季節変動的な周期性が含まれているとも思えません。自己相関などとってもあまりうれしくないでしょう、多分。

急激な伸びということで、対数グラフにしたらどうよ、ということで描いてみました。

logAirmiles <- log(airmiles)
plot(logAirmiles, main = "airmiles data", ylab = "log(miles)", xlab = "Passenger-miles flown by U.S. commercial airlines", col = 2, lwd=3)

上記の処理結果が以下に。直線的になったような、でも結構ガタガタが多いような。logPlot

毎年の突発的な出来事の影響(好不況?)による「ガタガタ」を取り除くのであれば移動平均でしょう、ということでやってみました。こんな感じ。

ma5 <- rep(1,5)/5
airmilesMA5 <- filter(airmiles, filter=ma5, method="convolution")
plot(airmilesMA5, main = "airmiles data(5年移動平均)", xlab = "Passenger-miles flown by U.S. commercial airlines", col = 3, lwd=3)

なんかスムースになって如何にも指数関数的な伸びに見えないこともないです。グラフが以下に。plotMA5

さらに対数とったらどうよ(直線になる?)やってみました。

logAirmilesMA5 <- log(airmilesMA5)
plot(logAirmilesMA5, main = "airmiles data(5年移動平均)",ylab = "log(miles)", xlab = "Passenger-miles flown by U.S. commercial airlines", col = 5, lwd=3)

ま、直線的な感じがしないこともないけれども、微妙。

logPlotMA5

人の世の出来事でもあり、期待通りの直線になったりはしないっと。ま、グラフは描けたのでよしとしたいと思います。テキトーだな。

データのお砂場(39) R言語、ability.cov、能力/知能テストの共分散行列とな へ戻る

データのお砂場(41) R言語、airquality、ニューヨークの空気の品質?とな へ進む