ISLR2

データセット
Published

October 1, 2026

パッケージの概要

ISLR2パッケージは、『An Introduction to Statistical Learning』という書籍で学習するためのデータなどが提供されているパッケージです。また、学習用にデータが整備されているため、自身でRを学習する際にも利用できます。

なお、ISLR2パッケージが対応しているのは、上記の書籍の第2版であり、ISLRパッケージは初版と対応しています。

library(ISLR2) 
library(ggplot2)
library(GGally)
library(tibble)
library(knitr)
library(dplyr) # filterなどがマスクされる

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

データ例

data(package = “ISLR2”)と実行すれば、本パッケージで提供されているデータ名の一覧を確認できます。

複数のデータが提供されていますが、自動車の燃費や、シリンダー数などが格納されているAutoを使ってみましょう。まずは、str関数、head関数、summary関数を実行して、データの概要を確認します。

Autoデータセットの各変数説明
変数名 説明
mpg 燃費(1ガロンあたりの走行距離)
cylinders シリンダー数
displacement エンジン排気量(立方インチ)
horsepower エンジン出力(馬力)
weight 車両重量(ポンド)
acceleration 0~60mphまで加速する時間(秒)
year モデル年(西暦の下2桁)
origin 製造地域(1=アメリカ, 2=ヨーロッパ, 3=日本)
name 車名
str(Auto)
'data.frame':   392 obs. of  9 variables:
 $ mpg         : num  18 15 18 16 17 15 14 14 14 15 ...
 $ cylinders   : int  8 8 8 8 8 8 8 8 8 8 ...
 $ displacement: num  307 350 318 304 302 429 454 440 455 390 ...
 $ horsepower  : int  130 165 150 150 140 198 220 215 225 190 ...
 $ weight      : int  3504 3693 3436 3433 3449 4341 4354 4312 4425 3850 ...
 $ acceleration: num  12 11.5 11 12 10.5 10 9 8.5 10 8.5 ...
 $ year        : int  70 70 70 70 70 70 70 70 70 70 ...
 $ origin      : int  1 1 1 1 1 1 1 1 1 1 ...
 $ name        : Factor w/ 304 levels "amc ambassador brougham",..: 49 36 231 14 161 141 54 223 241 2 ...
 - attr(*, "na.action")= 'omit' Named int [1:5] 33 127 331 337 355
  ..- attr(*, "names")= chr [1:5] "33" "127" "331" "337" ...
head(Auto)
  mpg cylinders displacement horsepower weight acceleration year origin
1  18         8          307        130   3504         12.0   70      1
2  15         8          350        165   3693         11.5   70      1
3  18         8          318        150   3436         11.0   70      1
4  16         8          304        150   3433         12.0   70      1
5  17         8          302        140   3449         10.5   70      1
6  15         8          429        198   4341         10.0   70      1
                       name
1 chevrolet chevelle malibu
2         buick skylark 320
3        plymouth satellite
4             amc rebel sst
5               ford torino
6          ford galaxie 500
summary(Auto)
      mpg          cylinders      displacement     horsepower        weight    
 Min.   : 9.00   Min.   :3.000   Min.   : 68.0   Min.   : 46.0   Min.   :1613  
 1st Qu.:17.00   1st Qu.:4.000   1st Qu.:105.0   1st Qu.: 75.0   1st Qu.:2225  
 Median :22.75   Median :4.000   Median :151.0   Median : 93.5   Median :2804  
 Mean   :23.45   Mean   :5.472   Mean   :194.4   Mean   :104.5   Mean   :2978  
 3rd Qu.:29.00   3rd Qu.:8.000   3rd Qu.:275.8   3rd Qu.:126.0   3rd Qu.:3615  
 Max.   :46.60   Max.   :8.000   Max.   :455.0   Max.   :230.0   Max.   :5140  
                                                                               
  acceleration        year           origin                      name    
 Min.   : 8.00   Min.   :70.00   Min.   :1.000   amc matador       :  5  
 1st Qu.:13.78   1st Qu.:73.00   1st Qu.:1.000   ford pinto        :  5  
 Median :15.50   Median :76.00   Median :1.000   toyota corolla    :  5  
 Mean   :15.54   Mean   :75.98   Mean   :1.577   amc gremlin       :  4  
 3rd Qu.:17.02   3rd Qu.:79.00   3rd Qu.:2.000   amc hornet        :  4  
 Max.   :24.80   Max.   :82.00   Max.   :3.000   chevrolet chevette:  4  
                                                 (Other)           :365  

続いて、GGallyパッケージのggduo関数や、ggpairs関数を利用して、mpgと各項目の関係を確認してみます。 ただし、nameはstr関数などで確認した結果、パターン数が多く、分析に利用することが難しいことがわかりますので除外します。

ggduo関数では、mpg(燃費)と各項目の関係を可視化しています。また、ggpairs関数では、mpg(燃費)とdisplacement(排気量)の関係をorigin(製造地域)ごとに確認しています。(箱ひげ図を表示するため、originとcylindersをカテゴリ変数に変換しています)

df <- Auto |>
  mutate(
    origin = factor(
      origin,
      labels = c("USA", "Europe", "Japan")
    ),
    cylinders = factor(cylinders)
  )


ggduo(
  df,
  columnsX = c("origin","cylinders"),
  columnsY = c("mpg"),
  types = list(
    combo = "box_no_facet" 
  ) # comboはカテゴリ変数と数値変数の設定。箱ひげ図を指定
)

ggduo(
  Auto,
  columnsX = c("displacement","horsepower", "weight"),
  columnsY = "mpg",
  types = list(
    continuous = "points" 
  ) # continuousは数値変数同士の設定。散布図を指定
)

ggduo(
  Auto,
  columnsX = c("acceleration", "year"),
  columnsY = "mpg",
  types = list(
    continuous = "points"
  )
)

ggpairs(
  df[, c("origin", "mpg", "displacement")],

  aes(color = origin, alpha=0.5), 

  upper = list(
    continuous = wrap("cor"), # 数値変数同士の場合、相関係数を表示 
    combo = wrap("box_no_facet") # カテゴリ変数と数値変数の場合、箱ひげ図を表示
  ),

  lower = list(
    continuous = wrap( 
      "points",
      size = 1.5,
      alpha = 0.5
    ), # 数値変数同士の場合、散布図を表示
    combo = wrap("blank") 
  ), # カテゴリ変数と数値変数の場合、何も表示しない

  diag = list(
    continuous = wrap( 
      "densityDiag",
      alpha = 0.5
    ), # 数値変数同士の場合、密度曲線を表示
    discrete = wrap("barDiag") # カテゴリ変数同士の場合、度数分布を表示
  )
) +
  theme_bw() # 背景を白に