crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

東証一部の規模別・業種別PERとPBRデータの分析6 - R言語で33業種別のデータ分析

 

www.crosshyou.info

 の続きです。

今回は33業種別のデータを分析しようと思います。33業種はLevelは5ですので、Levelが5だけのデータフレームを作成します。

f:id:cross_hyou:20190328164033j:plain

Levelの列は3番目なので、これを削除します。

f:id:cross_hyou:20190328164305j:plain

TypeにTotalやLargeのようないらないファクタ水準が残っているので削除します。具体的には文字列に変換してまたファクタに変換します。

f:id:cross_hyou:20190328164649j:plain

まずは33業種ごとの平均値を出してみましょうか。aggreagte関数とmean関数を使います。

f:id:cross_hyou:20190328165410j:plain

数が多いんで、どの業種のPERやPBRが高いか低いかわかりにくいですね。

このaggregate関数の結果を一つのデータフレームに登録してsort関数で並び替えましょう。

f:id:cross_hyou:20190328165807j:plain

order関数で並び替えができます。まずは、Numberで並び替えましょう。

f:id:cross_hyou:20190328170043j:plain

Numberは会社数です。会社数の少ない業種は、Air(空運), Suisan(水産・農林), Mining(鉱業)です。多い業種は、Kouri(小売業), Oroshi(卸売業), Denki(電気機器)です。

PERで並び替えます。

f:id:cross_hyou:20190328170623j:plain

PERの低い業種は、Bank(銀行), Air(空運), Marine(海運)です。高い業種は、Kinzoku(金属製品), Mining(鉱業), SonotaP(その他製造)です。

PBRで並び替えます。

f:id:cross_hyou:20190328171019j:plain

PBRの低い業種は、Mining(鉱業), Bank(銀行), Marine(空運)です。高い業種は、Seimitsu(精密機器), Pharm(医薬品), Food(食品)です。

IncomeとNetAssetですが、これは会社数が多ければ大きな値になるので、Numberで割り算して1社当たりの数値にしましょう。

f:id:cross_hyou:20190328171534j:plain

それでは、Incomeで並び替えます

f:id:cross_hyou:20190328171746j:plain

Incomeの小さい業種は、Mrine(海運), Souko(倉庫), Seni(繊維)です。海運は赤字ですね。大きい業種は、Hoken(保険), Air(空運), Auto(輸送用機器)です。

NetAssetで並び替えます。

f:id:cross_hyou:20190328172838j:plain

NetAssetの小さい業種は、Suisan(水産・農林), Souko(倉庫), Seni(繊維)です。大きい業種は、Hoken(保険), Bank(銀行), Auto(輸送用機器)です。

今回は以上です。
次回は

 

www.crosshyou.info

 

です。

 

今回のR言語のコードです。


# Levelが5だけのデータフレーム
df5 <- df[df$Level == 5, ]
str(df5)

# Levelの列を削除
df5 <- df5[ , -3]
str(df5)

# Typeのファクタ水準を整理
df5$Type <- as.character(df5$Type)
df5$Type <- as.factor(df5$Type)
table(df5$Type)

# 33業種ごとの平均値
aggregate(df5[ , 4:8], list(業種 = df5$Type), mean, na.rm = TRUE)

# 33業種ごとの平均値をデータフレームに
df6 <- aggregate(df5[ , 4:8], list(type = df5$Type), mean, na.rm = TRUE)
str(df6)

# Numberで並び替え
df6[order(df6$Number), ]

# PERで並び替え
df6[order(df6$PER), ]

# PBRで並び替え
df6[order(df6$PBR), ]

# IncomeとNetAssetを1社当たりに変換
df6$Income <- df6$Income / df6$Number
df6$NetAsset <- df6$NetAsset / df6$Number

# Incomeで並び替え
df6[order(df6$Income), ]

# NetAssetで並び替え
df6[order(df6$NetAsset), ]