【Rで多変量解析#2】重回帰分析
記事の目的
重回帰分析をRを使用して実装していきます。データの作成から実装するので、コピペで再現することが可能です。
目次
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)