の続きです。
今回は、製造業と非製造業でPERとPBRを比べてみたいと思います。
まずは、製造業と非製造業のLevelを確認しましょう。
Manuf(製造業)と非製造業(NonManuf)はLevelは4ですね。早速、Level4だけのデータフレームを作成しましょう。
Levelは不要なので削除します。
こんどは、Typeにいらないファクタ水準(AirやAutoなど)が残っていいるので、整理します。
いったん、as.character関数で文字列に変換し、factorでファクタに再変換しました。
aggregate関数で製造業と非製造業に分けて平均値を出してみましょう。
PERのグラフを描いてみます。plot関数です。
赤い水平線が非製造業のPERの平均、黒い水平線が製造業の平均です。
黒点が製造業、赤点が非製造業です。なんだかこの前の規模別のときと同じように製造業で30以上のときがいくつかあります。確認しましょう。
規模別のときと同じように、2013年と2014年ですね。
年ごとのPERをグラフで表示してみます。
年を経るとPERが低くなる傾向です。
箱ひげ図でも表示してみましょう。
今回は、非説明変数をPER、説明変数をYear(数値データ)とType(ファクタ)の二つとみなして、ANCOVA(Analysis of Covariance)分析をしてみたいと思います。
参考書は前回と同じく
Statistics: An Introduction Using R (English Edition)
- 作者: Michael J. Crawley
- 出版社/メーカー: Wiley
- 発売日: 2014/09/23
- メディア: Kindle版
- この商品を含むブログを見る
です。
まず、製造業と非製造業別でPERの箱ひげ図を描きます。
製造業のほうがバラツキが大きく、平均値が大きいです。
summary関数とaov関数でManfとNonManfでPERに有意な違いがあるか確認しましょう。
p値は0.00221です。有意です。
まずは、TypeとYearが関係したモデルを考えます。
Year, Type, Year * Typeの三つともPERに有意な影響があります。
係数を確認しましょう。
こうなります。
つまり、製造業のときのモデル式は、
PER = 5024.2018 - 2.4817 * Year (製造業のときの回帰式)
非製造業のときのモデル式は、
PER = 5024.2018 - 2559.9594 - 2.4817 * Year + 1.2688 * Year
整理すると、
PER = 2464.242 - 1.2129 * Year (非製造業のときの回帰式)
です。
plot関数とabline関数で描いてみましょう。
製造業のほうがPERの低下が激しいですね。
今回は以上です。
今回のR言語のコードです。
# head関数ではじめの10行を表示
head(df, 10)
# Level4(ManufとNonManuf)だけのデータフレーム
df4 <- df[df$Level == 4, ]
str(df4)
summary(df4)
# Levelの削除
df4 <- df4[ , -3]
str(df4)
summary(df4)
# Typeの水準を整理
df4$Type <- as.character(df4$Type)
df4$Type <- factor(df4$Type)
str(df4$Type)
# 製造業と非製造業別の平均値
aggregate(df4[ , c(4:8)], # df4を対象に
list(df4$Type), # ManufとNonManufごとに
mean) # 平均値を算出
# PERのグラフ
plot(df4$PER, pch = 21, bg = as.numeric(df4$Type))
abline(h = mean(df4$PER[df4$Type == "Manuf"]), col = 1, lwd = 3)
abline(h = mean(df4$PER[df4$Type == "NonManuf"]), col = 2, lwd = 3)
# PERが30以上を表示
df4[df4$PER > 30, ]
# X軸Year, Y軸PER
plot(df4$Year, df4$PER, pch = 21, bg = as.numeric(df4$Type))
# 箱ひげ図
plot(as.factor(df4$Year), df4$PER)
# ManfとNonManfのPERの箱ひげ図
plot(df4$Type, df4$PER, col = "lightgreen")
# ManfとNonManfで有意な違いがあるかどうか
summary(aov(df4$PER ~ df4$Type))
# YearとTypeの関連したモデル
model1 <- lm(df4$PER ~ df4$Year * df4$Type)
summary.aov(model1)
# モデルの係数の確認
summary(model1)
# plotとabline
plot(df4$Year, df4$PER, pch = 21, bg = as.numeric(df4$Type),
main = "Black:Manuf, Red*NonManuf")
abline(5024.2018, -2.4817, col = "black", lwd = 2)
abline(2464.242, -1.2129, col = "red", lwd = 2)