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

Kesimpulan

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.