R - 線形回帰:入門ガイド

こんにちは、データサイエンス志望者の皆さん!今日は、Rを使用した線形回帰の世界に楽しく飛び込んでいきましょう。プログラミングの経験がなくても心配しないでください。私はあなたと一緒に、ステップバイステップで説明します。このチュートリアルの終わりには、わずか数行のコードで何を達成できるか驚くことでしょう!

R - Linear Regression

線形回帰とは?

Rのコードに進む前に、線形回帰とは何かを理解しましょう。例えば、外気温に基づいてアイスクリームの売上を予測する試みを考えてみましょう。気温が上がるにつれて、アイスクリームの売上も上がるという関係を気づかれるかもしれません。線形回帰は、このような関係を数学的に見つけ、説明する手助けをしてくれます。

回帰を設定する手順

では、Rで線形回帰を実行するプロセスを簡単なステップに分解してみましょう:

1. データの準備

まず第一に、扱うためのデータが必要です。Rでは、自分でデータセットを作成することも、インポートすることもできます。簡単なデータセットを作成してみましょう。気温とアイスクリームの売上についてです:

temperature <- c(20, 22, 25, 27, 30, 32, 35)
ice_cream_sales <- c(50, 55, 65, 70, 80, 85, 95)

# データフレームに結合
ice_cream_data <- data.frame(temperature, ice_cream_sales)

# データを表示
print(ice_cream_data)

このコードを実行すると、気温とアイスクリームの売上データの整然としたテーブルが表示されます。すごいですね?

2. データの可視化

分析を始める前に、データを見るのはいつも良い habit です。Rはそのためのプラットフォームを簡単に提供してくれます:

plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "Ice Cream Sales vs Temperature",
xlab = "Temperature (°C)", ylab = "Ice Cream Sales",
pch = 19, col = "blue")

このコードは、データの散布図を作成します。main 引数はタイトルを設定し、xlabylab は軸のラベルを設定します。pch = 19 は点を実円にし、col = "blue" は点を青色にします。これらのオプションを試してみてください!

3. 線形回帰の実行

さて、実際に線形回帰を実行する興味深い部分に進みましょう。Rでは lm() 関数を使用します。これは "linear model" の略です:

ice_cream_model <- lm(ice_cream_sales ~ temperature, data = ice_cream_data)

この行はシンプルに見えますが、裏では多くの計算を行っています。データポイントを通る最適な線を見つけています。

4. 結果の確認

では、モデルが見つけた結果を見てみましょう:

summary(ice_cream_model)

このコマンドは、モデルの詳細な摘要を表示します。一部は複雑に見えるかもしれませんが、重要な部分に焦点を当てましょう:

  • Coefficients セクションは、線の傾きと切片を示します。
  • R-squared 値は、モデルがデータにどれだけ合っているかを示します。

5. 回帰線の可視化

では、回帰線を散布図に追加してみましょう:

plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "Ice Cream Sales vs Temperature",
xlab = "Temperature (°C)", ylab = "Ice Cream Sales",
pch = 19, col = "blue")

abline(ice_cream_model, col = "red")

abline() 関数は、回帰線をプロットに追加します。この線がデータポイントを通っているのを見るのは満足のいくものですよね?

lm() 関数:あなたの新しい親友

すでに lm() 関数を使用しましたが、もう少し深く掘り下げてみましょう。この関数は線形回帰の中心です。基本的な構造を以下に示します:

lm(formula, data)
  • formula:これはあなたの変数間の関係を指定します。私たちのケースでは、ice_cream_sales ~ temperature でした。
  • data:これは使用するデータセットです。

~ シンボルは "is modeled as a function of"(~としてモデル化される)と読みます。したがって、私たちの公式は "アイスクリームの売上は気温の関数としてモデル化される" と読めます。

predict() 関数:予測を行う

モデルができたので、予測を行ってみましょう。ここで便利な predict() 関数を使用します:

new_temperatures <- data.frame(temperature = c(23, 28, 33))
predicted_sales <- predict(ice_cream_model, newdata = new_temperatures)
print(predicted_sales)

このコードは、23°C、28°C、33°Cの気温に対するアイスクリームの売上を予測します。すごいですね?

有用な関数のリファレンス表

以下は、主に使用した関数の簡単なリファレンス表です:

関数 目的
lm() 線形回帰を実行 lm(y ~ x, data)
summary() 詳細なモデル結果を取得 summary(model)
plot() 散布図を作成 plot(x, y)
abline() 回帰線をプロットに追加 abline(model)
predict() 予測を行う predict(model, newdata)

練習は完璧を生みます!これらの関数を試してみて、異なるデータセットで試してみてください。間もなく線形回帰のプロになるでしょう!

結論として、線形回帰は変数間の関係を理解し、予測を行う強力なツールです。Rを使用えば、必要なすべてのツールが手元にあります。探索を続け、学び続け、そして最も重要なのは、楽しむことです!

Credits: Image by storyset