【Rで多変量解析#2】重回帰分析

記事の目的

重回帰分析をRを使用して実装していきます。データの作成から実装するので、コピペで再現することが可能です。

 

目次

  1. ライブラリ
  2. データの作成
  3. 重回帰分析
  4. 多重共線性

 

1 ライブラリ

library(dplyr)
library(ggplot2)

 

2 データの作成

2.1 コード

set.seed(10)
年齢 <- rnorm(100, 40, 20) 
肩幅 <- rnorm(100, 40, 3)
身長 <- rnorm(100, 170, 10)
e <- rnorm(100, 0, 50) 
年収 <- 5*年齢 + rnorm(100,10*肩幅,70) + 300 + e
data <-data.frame(年齢, 肩幅, 身長, 年収) %>%
filter(18<年齢&年齢<60) %>%
mutate(年齢=round(年齢), 年収=round(年収), 身長=round(身長), 肩幅=round(肩幅))
data %>% head()

 

2.2 結果

 

3 重回帰分析

3.1 コード

model <- lm(data=data, 年収~年齢+肩幅+身長)
summary(model)

 

3.2 結果

 

4 多重共線性

set.seed(1)
年齢 <- rnorm(100, 40, 20) 
肩幅 <- rnorm(100, 年齢, 1)
身長 <- rnorm(100, 170, 10)
e <- rnorm(100, 0, 50) 
年収 <- 5*年齢 + rnorm(100,10*肩幅,70) + 300 + e
data <-data.frame(年齢, 肩幅, 身長, 年収) %>%
  filter(18<年齢&年齢<60) %>%
  mutate(年齢=round(年齢), 年収=round(年収), 身長=round(身長), 肩幅=round(肩幅))
data %>% head()
cor(data[,c(4,1:3)])

model <- lm(data=data, 年収~年齢+肩幅+身長)
summary(model)