www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

東証一部の規模別・業種別PERとPBRデータの分析2 - R言語で一部全体のPERとPBRの推移をみる

 

www.crosshyou.info

 の続きです。

前回は2013年から2019年の2月だけのデータしかCSVファイルにしませんでしたが、その後、地道な作業をして(本当はR言語でプログラムを組んで簡単にファイルを東証のウェブから取り込みたかった。)、2013年1月から2019年2月までの各月のデータをまとめました。

そのstr関数とsummary関数の結果がこちらです。

f:id:cross_hyou:20190327090521j:plain

前回と違うのは、Monthという変数が追加されたことと、当然ですが観測(Observations)の数が大幅に増えたことです。

これだけ観測の数が増えると、どこから手をつけたらいいかわからなくなりますので、まずは、全体(Levelで言うと1、Typeで言うとTotal)だけで分析してみましょう。

まずは、Totalだけのデータフレームを作成しましょう。

f:id:cross_hyou:20190327091127j:plain

上のようになりました。LevelとTypeの変数はもういらないので、削除しましょう。

f:id:cross_hyou:20190327091520j:plain

Levelが3番目、Typeが4番目の変数なので、df1[ , c(-3, -4)] としてその列を削除しています。

まずは、aggregate関数とmean関数でYearごとの平均値をみてみましょう。

f:id:cross_hyou:20190327091950j:plain

Number(会社数), Income, NetAssetは年をおうごとに増加しています。PERは低下しています。PBRはどちらでもないって感じでしょうか?

cor関数で相関係数のマトリックスを作成します。

f:id:cross_hyou:20190327092312j:plain

Yearとの相関を見ると、Number, Income, NetAssetは高い正の相関、PERは負の相関、PBRはあまり相関が無いことがわかります。

plot関数でX軸をYear, Y軸をPERのグラフを描いてみましょう。

f:id:cross_hyou:20190327092834j:plain

f:id:cross_hyou:20190327092853j:plain

やはり年をおうごとにPERは低下しています。Yearをfactor関数でファクタにして箱ひげ図にしてみてみましょう。

f:id:cross_hyou:20190327093145j:plain

f:id:cross_hyou:20190327093201j:plain

こんどはY軸をPBRにして同じように散布図と箱ひげ図を作ってみましょう。

par(mfrow = c(1, 2))というコマンドで一つのグラフ画面に2つのグラフを入れます。

f:id:cross_hyou:20190327095403j:plain

f:id:cross_hyou:20190327095418j:plain

PBRはこのように年々低下しているようには見えませんね。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

以下は今回のコードです。


# str関数でデータ構造の確認
str(df)

# summary関数で基本統計量
summary(df)

# Totalだけのデータフレームを作成
df1 <- df[df$Type == "Total", ]
str(df1)
summary(df1)

# LevelとTypeを削除
df1 <- df1[ , c(-3, -4)]
str(df1)
summary(df1)

# Yearごとの平均値
aggregate(df1[ , c(3:7)], list(Year = df1$Year), mean)

# cor関数で相関係数マトリックス
round(cor(df1), 2)

# X軸がYear, Y軸がPERのグラフ
plot(df1$Year, df1$PER)

# Yearをファクタにしたグラフ
plot(factor(df1$Year), df1$PER)

# Y軸をPBRに変更
par(mfrow = c(1, 2))
plot(df1$Year, df1$PBR)
plot(factor(df1$Year), df1$PBR)

読書記録 - 「人類哲学序説」梅原猛 著 岩波新書

 

人類哲学序説 (岩波新書)

人類哲学序説 (岩波新書)

 

 自然(森)を破壊することに抵抗感を持たない西洋の哲学はこれからの時代にふさわしくない。

「草木国土悉皆成仏」人間中心ではなく、人間も草も木も鳥も動物も虫も海も山も河も空もすべてが大事。

哲学とは「人間はどう生きるべきか」を自分の言葉で語るもの

 

東証一部の規模別・業種別PERとPBRデータの分析1 - R言語にデータを読み込む。aggregate関数の練習

今回は、東証一部の規模別・業種別のPERとPBRのデータを分析したいと思います。

f:id:cross_hyou:20190326085733j:plain

https://www.jpx.co.jp/markets/statistics-equities/misc/04.html

このサイトからデータのエクセルファイルを取得しました。

f:id:cross_hyou:20190326085912j:plain

こういうファイルです。2013年から2019年の2月末のファイルをダウンロードして、このようなCSVファイルにしました。

f:id:cross_hyou:20190326090829j:plain

会社数、加重平均のPERとPBR、純利益と純資産です。業種や規模は適当にローマ字に直しました。このCSVファイルをread.csv関数でR言語に読みこみます。

f:id:cross_hyou:20190326090934j:plain

280の観測(Obs.)があって、変数(Variables)の数は8です。

変数のうちYearとLevelは整数型です。Tyoeはファクタ、その他は数値型です。

今回は、最近購入した

 

Statistics: An Introduction Using R (English Edition)

Statistics: An Introduction Using R (English Edition)

 

 を参考にして分析しようと思います。

まずは、データの絞り込みをしてみましょう。Total、つまり総合だけを表示しましょう。Levelが1だけにすればいいですね。

f:id:cross_hyou:20190326092410j:plain

これは TypeがTotalだけ、という絞り込みでも同様ですね。

f:id:cross_hyou:20190326092633j:plain

今度は、PBRが1.0以下でPERが10以上という絞り込みをしてみましょう。

f:id:cross_hyou:20190326092924j:plain

あら? NAの行がいっぱい出てきてしましましたね。なんでかな?NAは赤字でPERが計算できないときだけのはずなのに。summary関数でPERの変数以外にNAがあるか確認します。

f:id:cross_hyou:20190326094534j:plain

やっぱりPER以外でNAがある変数は無いですね。とりあえず、先に進みます。

order関数で並びかえできます。PBRの小さい順に並び替えます

f:id:cross_hyou:20190326095016j:plain

2016年のMining(鉱業です)とMarine(海運です)とBank(銀行です)が一番PBRが低いです。

rev関数を加えて大きい順に表示できます。

f:id:cross_hyou:20190326095311j:plain

2019年のSeimitsu(精密機器です)と2015年のServ(サービス業です)が一番PBRが高いです。

with関数とtapply関数とmean関数で年ごとの平均のPERを調べてみます。

f:id:cross_hyou:20190326100034j:plain

あ、PERはNAがいくつかあったからmean関数はNAを返してしまいますね。na.rm = TRUEを加えないとダメですね。

f:id:cross_hyou:20190326100254j:plain

2016年が16.66で一番低く、2013年が30.99で一番高いですね。

with関数とtapply関数は一つの変数だけでした。こんどはaggregate関数を使って、Number, PER, PBR, Income, NetAssetの5つの変数の年ごとの平均値を算出してみましょう。

f:id:cross_hyou:20190326100758j:plain

うまくできました。

aggregate関数のlist(~~)のところには複数の変数を入れることができますので、df$Levelも入れてやってみましょう。

f:id:cross_hyou:20190326101435j:plain

できました。

今回は以上です。
次回は

 

www.crosshyou.info

 

です。

 

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

# 東証一部の規模別・業種別のPERとPBR

# データの読み込み
df <- read.csv("jpx.csv")

# str関数でデータ構造の確認
str(df)

# Total(Level == 1)だけを表示
df[df$Level == 1, ]

# Total(Type == "Total")だけを表示
df[df$Type == "Total", ]

# PBR < 1.0 で PER > 10
df[df$PBR < 1.0 & df$PER > 10, ]

# summary関数
summary(df)

# order関数でPBRの小さい順に並び替え
df[order(df$PBR), ]

# rev関数を追加して大きい順に並び替え
df[rev(order(df$PBR)), ]

# 年ごとの平均PER
with(df, tapply(PER, Year, mean))

# na.rm = TRUE を追加
with(df, tapply(PER, Year, mean, na.rm = TRUE))

# aggregate関数
aggregate(df[ , c(4:8)], list(df$Year), mean, na.rm = TRUE)

# df$Levelも追加
aggregate(df[ , c(4:8)], list(Year = df$Year, Level = df$Level),
mean, na.rm = TRUE)

 

社会生活基本調査データの分析5 - R言語のlm関数で年齢を他の変数で回帰分析する。poly関数も使ってみた。

 

www.crosshyou.info

 の続きです。

今回は、R言語のlm関数を使って、年齢を他の変数で回帰分析してみようと思います。

まず、年齢はどういうデータだったか確認です。

f:id:cross_hyou:20190323150533j:plain

12歳から始まって5歳ずつ増えて77歳までです。男性と女性があるので2回ずつ出現しています。

どのようなデータがあるか、str関数で確認します。

f:id:cross_hyou:20190323150731j:plain

Sexは男性か女性かのファクタ、Ageも年齢のファクタです。3番目の変数のSample_sizeから16番目の変数のOtherまでが数値型の変数です。まずは、この数値型の変数と年齢の相関係数を見てみましょう。cor関数です。

f:id:cross_hyou:20190323151248j:plain

う~~ん。見難いですね。これを名前付きのベクトルにして、sort関数で並び替えましょう。colnames関数とsort関数を使います。

f:id:cross_hyou:20190323152309j:plain

Foreign_languagesが-0.8866812で一番逆相関で、Sample_sizeが0.7885006で一番の順相関です。

Foreign_languagesで年齢を回帰したモデルと、Sample_sizeで年齢を回帰したモデル、2つ試してみましょう。

まずは、Foreign_languagesで回帰したモデル、model_Fです。

f:id:cross_hyou:20190323153010j:plain

一番下のF統計量の検定がp-value: 3.376e-10 となっていますので、モデルは有意です。

Foreign_languagesの係数のPr(>|t|)が3.38e-10ですから、Foreign_languagesはモデルに有効な役割をはたしていいます。モデルのあてはまりのよさは、R-squaredが0.78862です。

次は、Sample_sizeを説明変数にしたmodel_Sです。

f:id:cross_hyou:20190323153524j:plain

一番下の行、F統計量のp値は6.25e-07と0.5よりも小さいので、モデルは有意です。

Sample_sizeの係数のp値は6.25e-07なのでSample_sizeはモデルで有効な変数です。モデルの当てはまりは、Multipe R-squaredが0.6217です。

R-squaredはmodel_Fのほうがいいですね。散布図に回帰式を当てはめてみましょう。

まずは、model_Fからです。plot関数とabline関数ですね。

f:id:cross_hyou:20190323154056j:plain

f:id:cross_hyou:20190323154108j:plain

次は、model_Sです。

f:id:cross_hyou:20190323154310j:plain

f:id:cross_hyou:20190323154323j:plain

目で見るかぎり、どちらが当てはまっているか判断できないですね。

2乗項を入れてみましょうか?

まずは、model_Fに2乗項を追加した、model_F2です。lm関数の中で、poly関数を使います。

f:id:cross_hyou:20190323162501j:plain



一番下の行のF統計量のp値は1.045e-14と0.05よりも小さいのでモデルは有意です。

係数もForeign_languagesは3.10e-10, その2乗項は4.79e-07とどちらも有意、Adjusted R-squaredは0.9178とmodel_Sよりもあてはまりがよくなりました。

model_Sに2乗項を追加したモデル、model_S2はどうでしょうか?

f:id:cross_hyou:20190323162628j:plain



こちらもF統計量のp値は有意を示し、Sample_size, Sample_sizeの2乗の係数ともに有意を示しています。Adjusted R-aquaredは0.7145とmodel_Sよりも改善しています。

それぞれの回帰線と散布図を描いてみます。各回帰モデルの中にfitted.valuesという値が格納されていますので、それを使います。

f:id:cross_hyou:20190323162816j:plain

f:id:cross_hyou:20190323162825j:plain


はじめの2行、xrange =, yrange =でX軸とY軸の範囲を指定しています。par(new = TRUE)で作成したグラフに上書きするようにしています。赤い点が回帰モデルの計算結果です。model_Fの直線よりは当てはまっていますね。

model_S2も同じようにやってみます。

f:id:cross_hyou:20190323162954j:plain

 

f:id:cross_hyou:20190323163004j:plain

こちらもmodel_Sよりも当てはまりはいいですね。

今回は以上です。

 

今回のコードは以下のとおりです。


# 年齢データの確認
dfnew$Age_n

# 変数の確認
str(dfnew)

# 相関係数の確認
cor(dfnew$Age_n, dfnew[ , c(-1, -2, -17)])

# 相関係数の名前付きベクトル
name_soukan <- cor(dfnew$Age_n, dfnew[ , c(-1, -2, -17)])
names(name_soukan) <- colnames(name_soukan)
sort(name_soukan)

# Foreign_languagesで年齢を回帰したモデル
model_F <- lm(Age_n ~ Foreign_languages, data = dfnew)
summary(model_F)

# Sample_sizeで年齢を回帰したモデル
model_S <- lm(Age_n ~ Sample_size, data = dfnew)
summary(model_S)

# model_Fの回帰式と散布図
plot(dfnew$Foreign_languages, dfnew$Age_n)
abline(model_F, col = "red")

# model_Sの回帰式と散布図
plot(dfnew$Sample_size, dfnew$Age_n)
abline(model_S, col = "blue")

# Model_Fに2乗項を追加
model_F2 <- lm(Age_n ~ poly(Foreign_languages, 2, raw = TRUE), data = dfnew)
summary(model_F2)

# model_Sに2乗項を追加
model_S2 <- lm(Age_n ~ poly(Sample_size, 2, raw = TRUE), data = dfnew)
summary(model_S2)

# model_F2の回帰線と散布図
yrange = range(dfnew$Age_n, model_F2$fitted.values)
xrange = range(dfnew$Foreign_languages)
plot(dfnew$Foreign_languages, dfnew$Age_n,
xlim = xrange, ylim = yrange, xlab = "", ylab = "", main = "")
par(new = TRUE)
plot(dfnew$Foreign_languages, model_F2$fitted.values,
xlim = xrange, ylim = yrange, xlab = "Foreign_languages", ylab = "Age_n", main = "model_F2",
col = "red", pch = 19)

# model_S2の回帰プロットと散布図
yrange = range(dfnew$Age_n, model_S2$fitted.values)
xrange = range(dfnew$Sample_size)
plot(dfnew$Sample_size, dfnew$Age_n, xlim = xrange, ylim = yrange,
xlab = "", ylab = "", main = "")
par(new = TRUE)
plot(dfnew$Sample_size, model_S2$fitted.values, xlim = xrange, ylim = yrange,
xlab = "Sample_size", ylab = "Age_n", main = "model_S2",
col = "blue", pch = 19)

社会生活基本調査データの分析4 - R言語のcoplot関数で男女別の年齢と行動者率の散布図を描く。

 

www.crosshyou.info

 の続きです。

今回は年齢による行動の違いを見てみようと思います。

まずは、年齢がどういう区分で分かれているかを確認しましょう。R言語のstr関数とtable関数で確認します。

f:id:cross_hyou:20190323100341j:plain

14のファクタに分かれています。1014yというのは10歳から14歳という意味です。

ファクタのままでもいいのですが、せっかくなので数値データの変数も作りましょう。

substr関数ではじめの2文字、1014yなら10だけを抽出します。

f:id:cross_hyou:20190323100756j:plain

 

次に、as.numeric関数で文字列型を数値型に変換します。

f:id:cross_hyou:20190323100952j:plain

1014yの中心は12歳ですから、それぞれに2歳を加えて完成です。

f:id:cross_hyou:20190323101216j:plain

これで完成です。

この数値型の年齢と各行動の相関を見ていきましょう。

まずは、Sample_size, 調査人数です。

f:id:cross_hyou:20190323101611j:plain

f:id:cross_hyou:20190323101625j:plain

年齢が高いほど、調査人数は多いようです。

次は、Population, 人口です。

f:id:cross_hyou:20190323101922j:plain

f:id:cross_hyou:20190323101943j:plain

10代の人口が少ないですね。同じ年齢に2つずつプロット点があります。男女を表しています。年齢が上がるほど、差が開いています。女性のほうが長生きですからね。

次は、Totalです。行動者率の合計です。

f:id:cross_hyou:20190323102424j:plain

f:id:cross_hyou:20190323102436j:plain

年齢とともに行動者率は低下しています。

次は、Foreign_languagesです。外国語学習です。

f:id:cross_hyou:20190323102729j:plain

f:id:cross_hyou:20190323102807j:plain

外国語学習も年齢とともに行動者率は低下します。

次は、English_language, 英語学習です。

f:id:cross_hyou:20190323103101j:plain

f:id:cross_hyou:20190323103114j:plain

英語学習も年齢とともに行動者率は低下します。

次は、Other_foreign_languagesです。その他の外国語です。

f:id:cross_hyou:20190323103458j:plain

f:id:cross_hyou:20190323103510j:plain

年齢とともに低下するのは英語学習と同じですが、ピークは17歳、22歳のところにあります。また40歳ぐらいのところで低下して50台のところで少し上昇しています。

次は、Commerce_and_business_total, 商業実務・ビジネス関係(総数)です。

f:id:cross_hyou:20190323104305j:plain

f:id:cross_hyou:20190323104318j:plain

年齢とともに低下するのは外国語学習と同じですが、男女の差がかなり開いているように推測されます。coplot関数で確認してみましょう。

f:id:cross_hyou:20190323105338j:plain

f:id:cross_hyou:20190323105359j:plain

思ったとおり、男性のほうが行動者比率が高いですね。

続いて、Computing_etc, パソコンなどの情報処理です。

f:id:cross_hyou:20190323105806j:plain

f:id:cross_hyou:20190323105819j:plain

年齢とともに低下していますが、男女でパターンに大きな違いがありそうです。

これもcoplot関数で確認してみます。

f:id:cross_hyou:20190323110113j:plain

f:id:cross_hyou:20190323110127j:plain

女性の50歳以降の落ち込みが激しいですね。男性はそれほど落ち込んでいません。

次は、Commerce_and_business, 商業実務・ビジネス関係です。

f:id:cross_hyou:20190323110543j:plain

f:id:cross_hyou:20190323110555j:plain

これも男女でパターンにおおきな違いがありそうですね。coplot関数で確認します。

f:id:cross_hyou:20190323110854j:plain

f:id:cross_hyou:20190323110909j:plain

男性では、20代、30代が高い行動者率ですが、女性は22歳から年齢とともに低下しています。

次は、Caring, 介護です。これも男女で違いがあるでしょう。はじめからcoplot関数を使いましょう。

f:id:cross_hyou:20190323111348j:plain

f:id:cross_hyou:20190323111441j:plain

女性の50代が一番高い行動者率です。

次は、Home_economics_and_housework, 家政・家事(料理・裁縫・家庭経営)です。

f:id:cross_hyou:20190323112026j:plain

f:id:cross_hyou:20190323112042j:plain

女性は40代が落ち込んでいます。男性は22歳のところが一番高いですが、それでも女性の47歳の行動者率よりも低いです。

次は、Humanities_social_and_natural_science, 人文・社会・自然科学(歴史・経済・数学・生物など)です。

f:id:cross_hyou:20190323112816j:plain

f:id:cross_hyou:20190323112828j:plain

女性は17歳のところ、つまり15歳から19歳がピークで、男性は22歳のところ、つまり20歳から24歳のところがピークです。

次は、Arts_and_culture, 芸術文化です。

f:id:cross_hyou:20190323113344j:plain

f:id:cross_hyou:20190323113403j:plain

女性の10代が突出して高いですね。

最後はOther, その他です。

f:id:cross_hyou:20190323113901j:plain

f:id:cross_hyou:20190323113916j:plain

男女ともに若者の行動者率が高いですね。

今回はcoplot関数を使って、男女別の年齢と行動者率の散布図を描きました。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

以下に今回のコードを記載しておきます。

# 年齢の区分の確認
str(dfnew$Age)
table(dfnew$Age)

# 数値型の年齢の作成 始めの2文字を抽出
dfnew$Age_n <- substr(dfnew$Age, 1, 2)
str(dfnew$Age_n)

# 数値型年齢の作成 数値型に変換
dfnew$Age_n <- as.numeric(dfnew$Age_n)
str(dfnew$Age_n)

# 数値型年齢の作成 それぞれの要素に2歳を加える
dfnew$Age_n <- dfnew$Age_n +2
str(dfnew$Age_n)

# 年齢とSanple_size
plot(dfnew$Age_n, dfnew$Sample_size)
cor(dfnew$Age_n, dfnew$Sample_size)

# 年齢とPopulation
plot(dfnew$Age_n, dfnew$Population)
cor(dfnew$Age_n, dfnew$Population)

# 年齢とTotal
plot(dfnew$Age_n, dfnew$Total)
cor(dfnew$Age_n, dfnew$Total)

# 年齢とForeign_languages
plot(dfnew$Age_n, dfnew$Foreign_languages)
cor(dfnew$Age_n, dfnew$Foreign_languages)

# 年齢とEnglish_language
plot(dfnew$Age_n, dfnew$English_language)
cor(dfnew$Age_n, dfnew$English_language)

# 年齢とOther_foreign_languages
plot(dfnew$Age_n, dfnew$Other_foreign_languages)
cor(dfnew$Age_n, dfnew$Other_foreign_languages)

# 年齢とCommerce_and_business_total
plot(dfnew$Age_n, dfnew$Commerce_and_business_total)
cor(dfnew$Age_n, dfnew$Commerce_and_business_total)

# coplot関数で男女の違いを確認
coplot(Commerce_and_business_total ~ Age_n | Sex, data = dfnew)

# 年齢とComputing_etc
plot(dfnew$Age_n, dfnew$Computing_etc)
cor(dfnew$Age_n, dfnew$Computing_etc)

# coplot関数で男女の違いを確認
coplot(Computing_etc ~ Age_n | Sex, data = dfnew)

# 年齢とCommerce_and_business
plot(Commerce_and_business ~ Age_n, data = dfnew)
cor(dfnew$Age_n, dfnew$Commerce_and_business)

# coplot関数で男女の違いを確認
coplot(Commerce_and_business ~ Age_n | Sex, data = dfnew)

# 年齢とCaring, coplot関数で
coplot(Caring ~ Age_n | Sex, data = dfnew)
cor(dfnew$Age_n, dfnew$Caring)

# 年齢とHome_economics_and_housework
coplot(Home_economics_and_housework ~ Age_n | Sex, data = dfnew)
cor(dfnew$Age_n, dfnew$Home_economics_and_housework)

# 年齢とHumanities_social_and_natural_science
coplot(Humanities_social_and_natural_science ~ Age_n | Sex, data = dfnew)
cor(dfnew$Age_n, dfnew$Humanities_social_and_natural_science)

# 年齢とArts_and_culture
coplot(Arts_and_culture ~ Age_n | Sex, data = dfnew)
cor(dfnew$Age_n, dfnew$Arts_and_culture)

# 年齢とOther
coplot(Other ~ Age_n | Sex, data = dfnew)
cor(dfnew$Age_n, dfnew$Other)

社会生活基本調査データの分析3 - R言語のboxplot関数で男性と女性の行動の違いを見る。

 

www.crosshyou.info

 の続きです。

今回はR言語のboxplot関数で男性と女性の行動の違いを見てみましょう。

まず、どういうデータフレームだったか、str関数で確認します。

f:id:cross_hyou:20190316133142j:plain

このような観測数が28, 変数が16のデータフレームでした。

R言語のboxplot関数で箱ひげ図が作成できます。今回は男女別に作成します。

まずは、Sample_size, 調査した人数ですね。

f:id:cross_hyou:20190316135517j:plain

f:id:cross_hyou:20190316135528j:plain

女性のほうが平均値が大きいです。

次は、Population, 推定人口です。

f:id:cross_hyou:20190316135744j:plain

f:id:cross_hyou:20190316135758j:plain

女性にひとつ大きな外れ値があります。女性のどこかの年齢層がどこか突出していますね。

次は、Totalです。いずれかの行動をした人の割合ですね。

f:id:cross_hyou:20190316140338j:plain

f:id:cross_hyou:20190316140358j:plain

平均値では女性が高いですが、下のひげは女性のほうがずっと低いですね。

次は、Foreign_languagesです。外国語学習です。

f:id:cross_hyou:20190316140830j:plain

f:id:cross_hyou:20190316140849j:plain

平均値はほとんど変わらないです。女性に一つ大きな外れ値があります。

次は、English_languageです。

f:id:cross_hyou:20190316141243j:plain

f:id:cross_hyou:20190316141300j:plain

平均値は男性のほうが高いですが、女性に二つ大きな外れ値があります。

Other_foreign_languages, その他の外国語はどうでしょうか?

f:id:cross_hyou:20190316141650j:plain

f:id:cross_hyou:20190316141702j:plain

男性にも女性にも外れ値があります。

次は、Commerce_and_business_total, 商業実務・ビジネス関係(総数)です。

f:id:cross_hyou:20190316142316j:plain

f:id:cross_hyou:20190316142346j:plain

これは明らかに男性のほうの行動者率が高いですね。

次は、Computing_etc, パソコンなどの情報処理です。

f:id:cross_hyou:20190316142731j:plain

f:id:cross_hyou:20190316142808j:plain

これも男性のほうが行動者率は高いです。

次は、Commerce_and_business, 商業実務・ビジネス関係です。

f:id:cross_hyou:20190316143202j:plain

f:id:cross_hyou:20190316143240j:plain

これも男性のほうが高いです。

次は、Caring, 介護です。

f:id:cross_hyou:20190316143502j:plain

f:id:cross_hyou:20190316143525j:plain

介護は女性が高いですね。

次は、Home_economics_and_housework, 家政・家事(料理・裁縫・家庭経営など)です。

f:id:cross_hyou:20190316144014j:plain

f:id:cross_hyou:20190316144117j:plain

圧倒的に女性が高いです。

次は、Humanities_social_and_natural_science, 人文・社会・自然科学(歴史・経済・数学・生物など)です。

f:id:cross_hyou:20190316144604j:plain

f:id:cross_hyou:20190316144634j:plain

男性のほうが高いです。

次は、Arts_and_culture, 芸術・文化です。

f:id:cross_hyou:20190316145040j:plain

f:id:cross_hyou:20190316145053j:plain

芸術・文化は女性のほうが高いですね。

最後はOther, その他です。

f:id:cross_hyou:20190316145510j:plain

f:id:cross_hyou:20190316145522j:plain

その他は平均値は同じくらいですね。

こうしてみると、やっぱり男性と女性では行動がかなり違いますね。介護が家事は女性、商業実務・ビジネス関係は男性などです。

今回は以上です。

次回は

 

www.crosshyou.info

 

です。

今回のR言語のコマンドを記載しておきます。


# データフレームの構造を確認
str(dfnew)

# Sample_sizeの箱ひげ図
boxplot(dfnew$Sample_size ~ dfnew$Sex,
main = "Sample_size")

# Populationの箱ひげ図
boxplot(dfnew$Population ~ dfnew$Sex,
main = "Population")

# Totalの箱ひげ図
boxplot(dfnew$Total ~ dfnew$Sex,
main = "Total")

# Foreign_languagesの箱ひげ図
boxplot(dfnew$Foreign_languages ~ dfnew$Sex,
main = "Foreign_languages")

# English_languageの箱ひげ図
boxplot(dfnew$English_language ~ dfnew$Sex,
main = "English_language")

# Other_foreign_languagesの箱ひげ図
boxplot(dfnew$Other_foreign_languages ~ dfnew$Sex,
main = "Other_foreign_languages")

# Commerce_and_business_totalの箱ひげ図
boxplot(dfnew$Commerce_and_business_total ~ dfnew$Sex,
main = "Commerce_and_business_total")

# Computing_etcの箱ひげ図
boxplot(dfnew$Computing_etc ~ dfnew$Sex,
main = "Computing_etc")

# Commerce_and_businessの箱ひげ図
boxplot(dfnew$Commerce_and_business ~ dfnew$Sex,
main = "Commerce_and_business")

# Caringの箱ひげ図
boxplot(dfnew$Caring ~ dfnew$Sex, main = "Caring")

# Home_economics_and_houseworkの箱ひげ図
boxplot(dfnew$Home_economics_and_housework ~ dfnew$Sex,
main = "Home_economics_and housework")

# Humanities_social_and_natural_scienceの箱ひげ図
boxplot(dfnew$Humanities_social_and_natural_science ~ dfnew$Sex,
main = "Humanities_social_and_natural_science")

# Arts_and_cultureの箱ひげ図
boxplot(dfnew$Arts_and_culture ~ dfnew$Sex,
main = "Arts_and_culture")

# Otherの箱ひげ図
boxplot(dfnew$Other ~ dfnew$Sex, main = "Other")

社会生活基本調査データの分析2 - R言語のhist関数で各変数の分布を確認する。家政・家事の行動者率は二極化している。

 

www.crosshyou.info

 の続きです。

今回は、各変数の分布を確認します。

まずは、str関数で各変数を確認しましょう。

f:id:cross_hyou:20190316100108j:plain

観測は28, 変数は16, のデータフレームです。SexとAgeがファクターで、その他は数値データです。

Sample_size, これは、実際に調査した人数ですね。summary関数で平均値等を出して、hist関数でヒストグラムを描きましょう。

f:id:cross_hyou:20190316101215j:plain

f:id:cross_hyou:20190316101227j:plain

平均値は、6403人です。ヒストグラムでも、6000~8000のところが一番多いですね。

 

次は、Populationです。これは、日本の推定人口で1000人単位です。

f:id:cross_hyou:20190316101641j:plain

f:id:cross_hyou:20190316101655j:plain

Sample_sizeと似た形のヒストグラムです。平均は4046(千人)です。

 

次は、Totalです。これは、Total以下の各行動過去1年間にした人の割合です。行動者率(%)というそうです。

f:id:cross_hyou:20190316103442j:plain

f:id:cross_hyou:20190316103454j:plain

平均は38.86%です。最小が20.30%です。どこかの世代では8割の人がこれから列挙する行動を過去1年間に一回もしていない、ということですね。35%~40%のところが一番多く、次が50%~55%のところです。双峰型のヒストグラムですね。

 

ここからは、各具体的な行動です。まずは、Foreign_languagesです。外国語の学習です。

f:id:cross_hyou:20190316104225j:plain

f:id:cross_hyou:20190316104237j:plain

平均値は、14.80%でした。

 

次は、English_languageです。英語学習ですね。

f:id:cross_hyou:20190316104602j:plain

f:id:cross_hyou:20190316104614j:plain

平均値は、13.689%でした。外国語全部の平均が、14.80%でしたから、ほとんど英語学習だとわかります。

Other_foreign_languagesをみましょう。

f:id:cross_hyou:20190316105137j:plain

f:id:cross_hyou:20190316105150j:plain

平均値は、3.839%です。外国語学習の平均値は、14.80%, 英語学習の平均値は、13.689%です。英語学習の平均値の13.689%とその他外国語学習の平均値の3.839%と合わせると、17.528%と外国語学習の14.80%よりも大きいですから、14.80%と17.528%の差、2.7%ぐらいの人は英語とその他の外国語も学習している、ということになりますね。

 

次は、Commerce_and_business_totalです。これは、商業実務・ビジネス関係とパソコンなどの情報処理を合わせた行動者率です。

f:id:cross_hyou:20190316110249j:plain

f:id:cross_hyou:20190316110324j:plain

平均値は、17.12%でした。外国語学習よりも高いですね。

 

次は、Computing_etcです。パソコンなどの情報処理です。

f:id:cross_hyou:20190316110630j:plain

f:id:cross_hyou:20190316110642j:plain

平均値は、13.40%でした。

 

次は、Commerce_and_businessです。商業実務・ビジネス関係です。

f:id:cross_hyou:20190316110957j:plain

f:id:cross_hyou:20190316111016j:plain

平均値は、7.529%です。パソコンなどの情報処理のほうが高いですね。ヒストグラムのかたちは、左右と真ん中に峰があるかたちです。

次は、Caringです。これは介護です。

f:id:cross_hyou:20190316111432j:plain

f:id:cross_hyou:20190316111452j:plain

平均値は、3.557% でした。

次は、Home_economics_and_houseworkです。これは、家政・家事(料理、裁縫、家庭経営など)です。

f:id:cross_hyou:20190316112045j:plain

f:id:cross_hyou:20190316112057j:plain

平均値は、11.625%ですが、ヒストグラムで見ると、その平均値近辺が一番度数が少なく、左右に分かれています。二極化ですね。

次は、Humanities_social_and_natural_scienceです。人文・社会・自然科学(歴史・経済・数学・生物など)です。

f:id:cross_hyou:20190316112858j:plain

f:id:cross_hyou:20190316112911j:plain

平均値は、9.475%でした。

次は、Arts_and_cultureです。芸術・文化です。

f:id:cross_hyou:20190316113441j:plain

f:id:cross_hyou:20190316113452j:plain

平均値は、12.221%でした。

最後は、Other, その他です。

f:id:cross_hyou:20190316113800j:plain

f:id:cross_hyou:20190316113835j:plain

平均値は、8.929%でした。

これで行動者率の平均値とヒストグラムを全部調べました。Home_economics_and_houseworkが二極化しているのがわかりました。

今回は以上です。

次回は

 

www.crosshyou.info

 

です。

参考までに、今回のR言語のコマンドを記載しておきます。


# str関数で各変数を確認
str(dfnew)

# Sample_sizeのsummaryとヒストグラム
summary(dfnew$Sample_size)
hist(dfnew$Sample_size)

# Populationの基本統計量とヒストグラム
summary(dfnew$Population)
hist(dfnew$Population)

# Totalの基本統計量とヒストグラム
summary(dfnew$Total)
hist(dfnew$Total)

# Foreign_languagesの基本統計量とヒストグラム
summary(dfnew$Foreign_languages)
hist(dfnew$Foreign_languages)

# English_languageの基本統計量とヒストグラム
summary(dfnew$English_language)
hist(dfnew$English_language)

# Other_foreign_languagesの基本統計量とヒストグラム
summary(dfnew$Other_foreign_languages)
hist(dfnew$Other_foreign_languages)

# Commerce_and_business_totalの基本統計量とヒストグラム
summary(Commerce_and_business_total)
hist(Commerce_and_business_total)

# Computing_etcの基本統計量とヒストグラム
summary(Computing_etc)
hist(Computing_etc)

# Commerce_and_businessの基本統計量とヒストグラム
summary(Commerce_and_business)
hist(Commerce_and_business)

# Caringの基本統計量とヒストグラム
summary(dfnew$Caring)
hist(dfnew$Caring)

# Home_economics_and_houseworkの基本統計量とヒストグラム
summary(dfnew$Home_economics_and_housework)
hist(dfnew$Home_economics_and_housework)

# Humanities_social_and_natural_scienceの基本統計量とヒストグラム
summary(dfnew$Humanities_social_and_natural_science)
hist(dfnew$Humanities_social_and_natural_science)

# Arts_and_cultureの基本統計量とヒストグラム
summary(dfnew$Arts_and_culture)
hist(dfnew$Arts_and_culture)

# Otherの基本統計量とヒストグラム
summary(dfnew$Other)
hist(dfnew$Other)