a <- 2
b <- 10
x <- rnorm(1000,50,1.5)
error <- rnorm(1000,5,5)
Persamaan regresi : $y = ax^b$
y <- a*x^b
plot(x,y)
Tranformasinya : kedua ruas di-ln-kan \([Y* = \ln(Y)]\) \([X* = \ln(X)]\)
y_tr <- log(y)
x_tr <- log(x)
Melihat data yang telah di transformasi
{data_tr <- data.frame(cbind(y_tr,x_tr))}
head(data_tr)
Menampilkan plot dari data yang telah di transformasi
plot(x_tr,y_tr)
Model dari data yang di transformasi
model_tr <- lm(y_tr~x_tr, data_tr)
summary(model_tr)
##
## Call:
## lm(formula = y_tr ~ x_tr, data = data_tr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.052e-12 1.140e-15 3.030e-15 4.870e-15 9.630e-15
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.931e-01 4.025e-13 1.722e+12 <2e-16 ***
## x_tr 1.000e+01 1.029e-13 9.720e+13 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.668e-14 on 998 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 9.448e+27 on 1 and 998 DF, p-value: < 2.2e-16
Implikasi dari transformasi kedua ruas, maka \(\beta_0 = \ln(a)\) dan \(\beta_1 = b\)
b0 <- model_tr$coefficients[[1]]
b1 <- model_tr$coefficients[[2]]
b0; b1
## [1] 0.6931472
## [1] 10
cek transformasi balik untuk melihat apakah nilai a hasil tranformasi sudah sesuai dengan nilai a yang asli : \(\beta_0 = \ln(a)\), maka \(a = e^{\beta_0}\)
(a_duga <- exp(b0))
## [1] 2
Transformasi data yang dilakukan berhasil sehingga data yang telah ditransformasi dapat digunakan untuk analisis regresi. Data yang awalnya berpola pangkat bertransformasi menjadi data yang pola nya lurus, data transformasi dengan pola lurus inilah yang dapat dilakukan analisis regresi. Hal ini dibuktikan dengan kembalinya nilai a asli disaat dilakukan transformasi balik.