Rで何かをしたり、読書をするブログ

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

賃金構造基本統計調査のデータ分析 3 - 決まって支給額する現金給与額と他の変数の関係を視覚化する。

www.crosshyou.info

の続きです。各変数の分布の様子は確認できたので、今回は一つの変数、具体的には salary: 決まって支給する現金給与額【千円】について詳しくみてみます。

まずは、小さい順、大きい順にデータフレームを並び替えます。

arrange()関数を使い、小さい順に並び替えました。卸売業、小売業が大半です。性別は女性が大半です。

arrange()関数に加えて、desc()関数も使うと大きい順になります。

上位はすべて金融業、保険業の男性です。一番は2020年の大分県の男性の金融業、保険業で、84万1千円です。すごいですね。

一番少ないのは、2023年の秋田県の女性の卸売業、小売業で15万円なので、5倍以上の差です。

この salary: 決まって支給する現金給与額【千円】と他の変数の関係をグラフで視覚化してみます。

まずは、業種からみてみます。

下のグリーンのヒストグラム、金融業、保険業のほうが右にも分布しています。

線形回帰分析で違いが統計的に有意な違いかどうかを確認します。

金融業、保険業の係数の95%信頼区間は、91.4 ~ 128.1 です。これは、金融業、保険業のsalaryが卸売業、小売業より95%の確率で、91.4~128.1多いということです。

統計的に、業種によって違いがあることがわかりました。

次は、性別によって違うかを視覚化してみます。

男性のほうが幅広い分布で、右のほうにも分布が広がっています。

これも線形回帰分析で統計学的に有意な違いがあるかどうかを確認します。

gender男の95%信頼区間は、183 ~ 212です。0を含んでいませんから、統計学的にも性別の違いは立証されました。

次は年齢です。年齢はカテゴリカル変数ではなくて、連続数値変数なので、ヒストグラムではなくて、散布図で視覚化してみます。

年齢階級が50~54歳のグループのほうが、salaryの多い人がいますね。

線形回帰分析で確認します。

ageの係数の95%信頼区間は3.78 ~ 5.68です。つまり、年齢が1歳増えると、salaryが3780円から5680円増えるということですね。

次は、勤続年数との関係です。勤続年数も連続数値変数なので散布図で視覚化します。

勤続年数が長いほど、sararyは多いようですね。

線形回帰分析で確認します。

勤続年数が1年増えると、salaryは11580円から13470円増えるということですね。

次は、労働時間との関係です。

労働時間は所定内と超過時間の2種類ありましたので、mutate()関数で、合計の変数を生成してからグラフにしました。労働時間が長いほうが給与額は多い関係です。

線形回帰分析で確認します。

労働時間が1時間伸びると、給与額は2800円から4400円増えるようです。

最後は労働者数との関係です。労働者がたくさんいる都道府県のほうが給与額が多いか、その反対に少ないかを視覚化してみます。

労働者数の多い都道府県のほうがお給料は多いように見えます。

線形回帰分析で確認します。

労働者が1%増えると、お給料は940円~3万8800円増えるということですね。

今回は以上です。今回取り上げた変数はすべて、salary: 決まって支給する現金給与額と何等かの関係があることがわかりました。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# salaryのランキング
df |> 
  arrange(salary) |> 
  select(salary, ind, pref, gender, age, year)
#
# salary のランキング(降順)
df |> 
  arrange(desc(salary)) |> 
  select(salary, ind, pref, gender, year, age)
#
# salaryは業種によって違うか?
# ヒストグラムで確認
df |> 
  ggplot(aes(x = salary, fill = ind)) +
  geom_histogram() +
  facet_wrap(~ ind, nrow = 2)
#
# Linear Regressionで確認
lm(salary ~ ind, data = df) |> 
  confint()
#
# salaryは性別によって違うか?
# ヒストグラムで確認
df |> 
  ggplot(aes(x = salary, fill = gender)) +
  geom_histogram() +
  facet_wrap(~ gender, nrow = 2)
#
# Linear Regressionで確認
lm(salary ~ gender, data = df) |> 
  confint()
#
# salaryは年齢によって違うか
# 散布図で確認
df |> 
  ggplot(aes(x = age, y = salary)) +
  geom_point() +
  geom_smooth(method = lm, se = FALSE)
#
# Linear Regressionで確認
lm(salary ~ age, data = df) |> 
  confint()
#
# salaryは勤続年数によって違うか
# 散布図で確認
df |> 
  ggplot(aes(x = tenure, y = salary)) +
  geom_point() +
  geom_smooth(method = lm, se = FALSE)
#
# Linear Regression で確認
lm(salary ~ tenure, data = df) |> 
  confint()
#
# salaryは労働時間によって違うか
# 散布図で確認
df |> 
  mutate(total_hour = hour + ext_hour) |> 
  ggplot(aes(x = total_hour, y = salary)) +
  geom_point() +
  geom_smooth(method = lm, se = FALSE)
#
# Linear Regression で確認
lm(salary ~ I(hour + ext_hour), data = df) |> 
  confint()
#
# salaryは労働者数(対数)によって違うか?
df |> 
  ggplot(aes(x = log10_workers, y = salary)) +
  geom_point() +
  geom_smooth(method = lm, se = FALSE)
#
# Linear Regression で確認
lm(salary ~ log10_workers, data = df) |> 
  confint()
#

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは、close up of Tradescantia flowers, flowers all over the ground under the blue sky, photo です。)