R の対数回帰 (ステップバイステップ)
対数回帰は、成長または衰退が最初に急速に加速し、その後時間の経過とともに減速する状況をモデル化するために使用される回帰の一種です。
たとえば、次のグラフは対数減衰の例を示しています。
このタイプの状況では、予測変数と応答変数の間の関係は、対数回帰を使用して適切にモデル化できます。
対数回帰モデルの方程式は次の形式になります。
y = a + b*ln(x)
金:
- y:応答変数
- x:予測変数
- a、b: xとyの関係を説明する回帰係数
次の段階的な例は、R で対数回帰を実行する方法を示しています。
ステップ 1: データを作成する
まず、2 つの変数xとyの偽のデータを作成しましょう。
x=1:15 y=c(59, 50, 44, 38, 33, 28, 23, 20, 17, 15, 13, 12, 11, 10, 9.5)
ステップ 2: データを視覚化する
次に、簡単な散布図を作成して、 xとyの関係を視覚化しましょう。
plot(x, y)
グラフから、2 つの変数間に明確な対数減衰パターンがあることがわかります。応答変数yの値は、最初は急速に減少し、時間の経過とともに減少します。
したがって、対数回帰式を当てはめて変数間の関係を説明することが賢明であると思われます。
ステップ 3: 対数回帰モデルを当てはめる
次に、 lm()関数を使用して、 xの自然対数を予測変数として、 yを応答変数として使用して、対数回帰モデルを近似します。
#fit the model model <- lm(y ~ log (x)) #view the output of the model summary(model) Call: lm(formula = y ~ log(x)) Residuals: Min 1Q Median 3Q Max -4.069 -1.313 -0.260 1.127 3.122 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 63.0686 1.4090 44.76 1.25e-15 *** log(x) -20.1987 0.7019 -28.78 3.70e-13 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.054 on 13 degrees of freedom Multiple R-squared: 0.9845, Adjusted R-squared: 0.9834 F-statistic: 828.2 on 1 and 13 DF, p-value: 3.702e-13
モデル全体の F 値は 828.2 で、対応する p 値は非常に低く (3.702e-13)、モデル全体が有用であることを示しています。
出力テーブルの係数を使用すると、近似された対数回帰式は次のようになります。
y = 63.0686 – 20.1987 * ln(x)
この方程式を使用して、予測子変数xの値に基づいて応答変数yを予測できます。たとえば、 x = 12 の場合、 y は12.87になると予測します。
y = 63.0686 – 20.1987 * ln(12) = 12.87
ボーナス:このオンライン対数回帰計算ツールを自由に使用して、指定された予測子と応答変数の対数回帰式を自動的に計算できます。
ステップ 4: 対数回帰モデルを視覚化する
最後に、対数回帰モデルがデータにどの程度適合しているかを視覚化する簡単なグラフを作成できます。
#plot x vs. y plot(x, y) #define x-values to use for regression line x=seq(from= 1 , to= 15 , length. out = 1000 ) #use the model to predict the y-values based on the x-values y=predict(model,newdata=list(x=seq(from= 1 ,to= 15 ,length. out = 1000 )), interval=" confidence ") #add the fitted regression line to the plot (lwd specifies the width of the line) matlines(x,y, lwd= 2 )
対数回帰モデルがこの特定のデータセットにうまく適合していることがわかります。
追加リソース
R で単純な線形回帰を実行する方法
R で重回帰を実行する方法
R で二次回帰を実行する方法
R で指数回帰を実行する方法
R で多項式回帰を実行する方法