Tugas Akhir Anreg

Data

Inisialisasi Library

library(readxl)
library(dplyr)
## 
## 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
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.2
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.2
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
library(randtests)
library(nortest)
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
## 
##     select
## The following object is masked from 'package:dplyr':
## 
##     select
library(olsrr)
## Warning: package 'olsrr' was built under R version 4.3.2
## 
## Attaching package: 'olsrr'
## The following object is masked from 'package:MASS':
## 
##     cement
## The following object is masked from 'package:datasets':
## 
##     rivers
library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.3.3
library(GGally)
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2

Import Data

dt <- read_xlsx("D:\\KULIAHH\\SEMESTER 4\\ANREG\\TUGAS AKHIR\\DATA TUGAS AKHIR.xlsx", sheet="Data")
dt
## # A tibble: 22 × 13
##        Y    X1    X2     X3    X4    X5    X6    X7    X8    X9   X10   X11
##    <dbl> <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1  27.2  65.2  6.92 152414 11.9   0.39  58.8  3.52 10199 12696  67.6  3.93
##  2  28.1  67.0  7.57 255498  5.87  0.3   61.8  2.21 16617 36053  65.8  2.02
##  3  21.8  65.8  7.42 376837  6.17  1.18  76.4  3.22 13793 59622  65.6  4.2 
##  4  25.2  63.6  6.97 474521  7.71  1.03  67.9  2.64 10953 57201  66.9  2.09
##  5  21.8  65.2  8.16 271277  3.98  0.45  80.6  1.96 11511 42634  67.6  1.2 
##  6  14.3  63.8  7.39 231008  6.34  0.71  84.0  5.45 13997 45693  65.6  2.23
##  7  20.0  63.0  8.45 221536  1.75  0.63  81.6  2.52  9900 22483  62.4  0.78
##  8  24.8  66.1  8.26 141391  3.95  1.2   87.4  2.55  8767 21220  67.9  2.04
##  9  11.8  65.8  8.04 288310  3.69  0.13  93.0  3.79 12818 35172  66.0  1.66
## 10  12.6  66.9  6.98 335360  5.02  0.5   80.7  2.62 10797 58147  68.3  0.93
## # ℹ 12 more rows
## # ℹ 1 more variable: X12 <dbl>

Model Asli

model1 = lm(formula = Y ~ ., data = dt)
summary(model1)
## 
## Call:
## lm(formula = Y ~ ., data = dt)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.3507 -2.7746  0.2035  2.3372  5.7922 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  9.392e+01  6.070e+01   1.547   0.1562  
## X1          -4.935e-01  1.413e+00  -0.349   0.7349  
## X2          -3.017e+00  4.584e+00  -0.658   0.5269  
## X3          -7.297e-06  2.924e-05  -0.250   0.8085  
## X4          -4.575e-01  8.460e-01  -0.541   0.6018  
## X5           3.548e+00  4.050e+00   0.876   0.4039  
## X6          -1.142e-01  1.856e-01  -0.616   0.5534  
## X7          -3.217e+00  1.558e+00  -2.065   0.0689 .
## X8           9.280e-04  7.264e-04   1.278   0.2334  
## X9          -1.359e-04  2.073e-04  -0.655   0.5285  
## X10         -1.618e-01  1.293e+00  -0.125   0.9032  
## X11          1.978e+00  1.368e+00   1.446   0.1821  
## X12          5.806e-02  3.227e-01   0.180   0.8612  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.99 on 9 degrees of freedom
## Multiple R-squared:  0.7668, Adjusted R-squared:  0.4558 
## F-statistic: 2.466 on 12 and 9 DF,  p-value: 0.09121

Diperoleh model sebagai berikut
\[ \hat Y = 0.9392 - 0.4935X_1 - 3.017X_2 - 0.000007X_3 - 0.4575X_4 + 3.548X_5 - 0.1142X_6 - 3.217X_7 + 0.0009X_8 - 0.0002X_9 - 0.1618X_{10} + 1.978X_{11} + 0.05806X_{12} + e \]

Hasil tersebut belum bisa dipastikan menjadi model terbaik karena belum melalui serangkaian uji, sehingga diperlukan pengecekan nilai korelasi dan multikolinearitas antarvariabel X dengan pembandingan nilai VIF yang lebih dari 10

Reduksi Variabel X

Eksplorasi Korelasi Data

Hipotesis: H0 : Tidak ada korelasi antarpeubah H1 : Ada korelasi antarpeubah

ggpairs(dt,
        upper = list(continuous = wrap('cor', size = 2)),
        title = "Matriks Scatterplot Data")

Dengan minimal ditandai oleh bintang satu (*) yang berarti variabel X tersebut tolak H0 atau ada korelasi dengan Y, maka hanya X1, X2, X4, X6, X7, X8, X9, dan X12 yang mempunyai korelasi. Sedangkan variabel X3, X5, X10, dan X11 memiliki korelasi yang kecil dan telah terwakili oleh variabel X yang lainnya sehingga dapat dihilangkan untuk kemudian diperiksa model dan multikolinearitasnya.

Model Reduksi Hasil Korelasi

model2 = lm(formula = Y ~ X1+X2+X4+X6+X7+X8+X9+X12, data = dt)
summary(model2)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X4 + X6 + X7 + X8 + X9 + X12, data = dt)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.4006  -1.4476   0.5167   2.3660   6.7547 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  5.806e+01  5.405e+01   1.074   0.3023  
## X1          -7.717e-01  6.726e-01  -1.147   0.2719  
## X2           9.612e-01  3.126e+00   0.308   0.7633  
## X4           4.282e-01  6.137e-01   0.698   0.4976  
## X6          -1.058e-01  1.554e-01  -0.681   0.5078  
## X7          -2.572e+00  1.415e+00  -1.817   0.0923 .
## X8           9.913e-04  5.710e-04   1.736   0.1062  
## X9          -5.652e-05  7.422e-05  -0.762   0.4599  
## X12          1.318e-01  2.054e-01   0.642   0.5321  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.906 on 13 degrees of freedom
## Multiple R-squared:  0.6744, Adjusted R-squared:  0.4741 
## F-statistic: 3.366 on 8 and 13 DF,  p-value: 0.02559

Diperoleh model sebagai berikut
\[ \hat Y = 0.5806 - 0.7717X_1 - 0.9612X_2 + 0.4282X_4 - 0.1058X_6 - 2.572X_7 + 0.0009X_8 - 0.00005X_9 + 0.1318X_{12} + e \]

Pengecekan Multikolinearitas

vif(model2)
##        X1        X2        X4        X6        X7        X8        X9       X12 
##  6.429485  9.363917  4.320674  3.777043  2.107861 11.289087 10.675684 11.701402

Berdasarkan hasil nilai VIF tersebut, variabel X8, X9, dan X12 memiliki nilai VIF>10 sehingga dinyatakan ada multikolinearitas. Kemudian ketiga variabel tersebut direduksi dan diperika model hasil reduksinya.

Model Hasil Reduksi Multikolinearitas

model3 = lm(formula = Y ~ X1+X2+X4+X6+X7, data = dt)
summary(model3)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X4 + X6 + X7, data = dt)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5808  -2.2473  -0.8028   2.5361   8.3073 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  63.6722    25.7074   2.477   0.0248 *
## X1           -0.8045     0.5253  -1.531   0.1452  
## X2            2.9462     2.6568   1.109   0.2838  
## X4            0.7075     0.5500   1.286   0.2167  
## X6           -0.1301     0.1351  -0.963   0.3498  
## X7           -2.2446     1.3801  -1.626   0.1234  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.974 on 16 degrees of freedom
## Multiple R-squared:  0.588,  Adjusted R-squared:  0.4593 
## F-statistic: 4.568 on 5 and 16 DF,  p-value: 0.008863

Diperoleh model sebagai berikut
\[ \hat Y = 63.6722 - 0.8045X_1 + 2.9462X_2 + 0.7075X_4 - 0.1301X_6 - 2.2446X_7 + e \]

Eksplorasi Kondisi

Plot Sisaan Vs Y duga

plot(model3,1) 

1. Sisaan menyebar di sekitar 0, sehingga nilai harapan galat sama dengan nol
2. Lebar pita sama untuk setiap nilai dugaan, sehingga ragam homogen
3. Plot sisaan vs y duga tidak berpola, model pas

Plot Sisaan Vs Urutan

plot(x = 1:dim(dt)[1],
     y = model3$residuals,
     type = 'b', 
     ylab = "Residuals",
     xlab = "Observation")

Tebaran tidak berpola, sehingga pas

Normalitas Sisaan dengan QQ-Plot

plot(model3,2)

Data cenderung kurang membentuk garis lurus walau ada beberapa pengamatan yang sedikit menjauh dari garis, sehingga sisaan data mungkin menyebar normal

Uji Formal Asumsi

Pada uji formal asumsi ini, diharapkan nilai p-value > 0.05 dengan kesimpulan tak tolak H0

Kondisi Gaus Markov

1. Nilai Harapan Sisaan sama dengan Nol

H0: Nilai harapan sisaan sama dengan nol
H1: Nilai harapan sisaan tidak sama dengan nol

t.test(model3$residuals,mu = 0,conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  model3$residuals
## t = -7.6223e-17, df = 21, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -1.924963  1.924963
## sample estimates:
##     mean of x 
## -7.055446e-17

Uji t.tes tersebut menunjukkan hasil p-value = 1 > alpha = 0.05, maka tak tolak H0, nilai harapan sisaan sama dengan nol pada taraf nyata 5%. Asumsi terpenuhi.

2. Ragam Sisaan Homogen

\(H0:var[e]=sigma2I\) (ragam sisan homogen)
\(H1:var[e] != sigma2I\) (ragam siaan tidak homogen)

bptest(model3)
## 
##  studentized Breusch-Pagan test
## 
## data:  model3
## BP = 3.7978, df = 5, p-value = 0.5789

Uji ini sering disebut dengan uji homokesdasitas yang dilakukan dengan yang dilakukan dengan uji Breusch-Pagan. Karena p-value = 0.5789 > alpha = 0.05, maka tak tolak H0, ragam sisaan homogen pada taraf nyata 5%. Asumsi terpenuhi.

3. Sisaan Saling Bebas

\(H0:E[ei,ej]=0\) (sisaan saling bebas/tidak ada autokorelasi)
\(H1:E[ei,ej] != 0\) (sisaan tidak saling bebas/ada autokorelasi)

dwtest(model3)
## 
##  Durbin-Watson test
## 
## data:  model3
## DW = 2.2648, p-value = 0.634
## alternative hypothesis: true autocorrelation is greater than 0

Uji ini sering disebut dengan uji autokorelasi yang dilakukan dengan Durbin watson. Karena p-value = 0.634 (pada DW test) > alpha = 0.05, maka tak tolak H0, sisaan saling bebas pada taraf nyata 5%, sehingga asumsi terpenuhi.

Uji Formal Normalitas Sisaan

\(H_0 : N\) (sisaan menyebar Normal) \(H_1 : N\) (sisaan tidak menyebar Normal)

shapiro.test(model3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  model3$residuals
## W = 0.9786, p-value = 0.8927

Uji normalitas digunakan untuk mendeteksi normalitas sisaan dengan uji shapiro.test. Karena p-value = 0.8927 > alpha = 0.05, maka tak tolak H0, sehingga sisaan menyebar normal pada taraf nyata 5%.

Pencilan, Titik Leverage, dan Amatan Berpengaruh

Perhitungan ri, ci, Hi, DFFITSi

index <- c(1:22)
ri <- studres(model3)
ci <- cooks.distance(model3)
DFFITSi <- dffits(model3)
hi <- ols_hadi(model3)
hii <- hatvalues(model3)
hasil <- data.frame(index,ri,ci,DFFITSi,hi,hii); round(hasil,4)
##    index      ri     ci DFFITSi   hadi potential residual    hii
## 1      1  0.6250 0.0246  0.3771 0.5192    0.3641   0.1552 0.2669
## 2      2  1.0718 0.0333  0.4490 0.6299    0.1755   0.4543 0.1493
## 3      3  0.4098 0.0027  0.1247 0.1597    0.0926   0.0671 0.0847
## 4      4  0.2912 0.0013  0.0861 0.1214    0.0875   0.0339 0.0805
## 5      5 -0.3112 0.0058 -0.1805 0.3750    0.3364   0.0387 0.2517
## 6      6 -0.2797 0.0086 -0.2210 0.6552    0.6239   0.0312 0.3842
## 7      7 -0.7071 0.0453 -0.5130 0.7240    0.5263   0.1977 0.3448
## 8      8  0.9788 0.0496  0.5447 0.6872    0.3097   0.3775 0.2365
## 9      9 -1.0286 0.0350 -0.4594 0.6178    0.1995   0.4183 0.1663
## 10    10 -1.3271 0.1783 -1.0587 1.3101    0.6364   0.6737 0.3889
## 11    11  1.5135 0.1163  0.8684 1.2121    0.3292   0.8829 0.2477
## 12    12 -0.4663 0.0059 -0.1835 0.2417    0.1549   0.0868 0.1341
## 13    13 -0.4903 0.0094 -0.2321 0.3199    0.2240   0.0959 0.1830
## 14    14  1.9055 0.0612  0.6541 1.5341    0.1178   1.4162 0.1054
## 15    15  0.4461 0.0140  0.2828 0.4811    0.4018   0.0793 0.2866
## 16    16  0.4146 0.0109  0.2485 0.4278    0.3593   0.0686 0.2643
## 17    17 -0.4917 0.0219 -0.3536 0.6134    0.5172   0.0962 0.3409
## 18    18 -0.9233 0.0206 -0.3496 0.4820    0.1434   0.3386 0.1254
## 19    19 -0.2926 0.0163 -0.3036 1.1111    1.0770   0.0341 0.5185
## 20    20  1.1490 0.1287  0.8874 1.1077    0.5965   0.5113 0.3736
## 21    21 -2.7629 0.1732 -1.2123 3.0142    0.1925   2.8217 0.1614
## 22    22 -0.3590 0.2166 -1.1085 9.5872    9.5360   0.0511 0.9051

Plot ri, ci, Hi, DFFITSi, dan Potential Residual

Internally Studentized Residuals Plot (ri)

ggplot(hasil) +
  geom_point(aes(y = `ri`, x = `index`),
             color="blue",size=2) +
  ylab("ri") +
  xlab("index") +
  ggtitle("Plot ri") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))

Cook Distance Plot (ci)

ggplot(hasil) +
  geom_point(aes(y = `ci`, x = `index`),
             color="blue",size=2) +
  ylab("ci") +
  xlab("index") +
  ggtitle("Plot ci") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))

Difference in Fits Plot (DFFITSi)

ggplot(hasil) +
  geom_point(aes(y = `DFFITSi`, x = `index`),
             color="blue",size=2) +
  ylab("DFFITSi") +
  xlab("index") +
  ggtitle("Plot DFFITSi") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))

Hadi’s Influence Measure (Hi)

ggplot(hasil) +
  geom_point(aes(y = `hadi`, x = `index`),
             color="blue",size=2) +
  ylab("Hi") +
  xlab("index") +
  ggtitle("Plot Hi") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))

Potential Residual Plot (P-R Plot)

ggplot(hasil) +
  geom_point(aes(y = `potential`, x = `residual`),
             color="blue",size=2) +
  ylab("potential") +
  xlab("residual") +
  ggtitle("P-R Plot") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))

Pendeteksian Nilai Tidak Biasa

Pencilan atau Outlier

for (i in 1:dim(hasil)[1]){
  absri <- abs(hasil$ri)
  pencilan <- which(absri > 2)
}
pencilan
## [1] 21

Pencilan adalah titik amatan yang menjauh pada tren Y walau X nya masih berada pada selang. Dalam data tersebut terdapat dua titik observasi yang terdeteksi sebagai sebuah pencilan, yaitu amatan ke-21 dengan ri bernilai -2.7629 yang absolutnya lebih besar dari 2..

Titik Leverage

titik_leverage <- vector("list", dim(hasil)[1])
for (i in 1:dim(hasil)[1]) {
  cutoff <- 2 * 6 / 22
  titik_leverage[[i]] <- which(hii > cutoff)
}
leverages <- unlist(titik_leverage)
titik_leverage <- sort(unique(leverages))
titik_leverage
## [1] 22

Titik leverage adalah nilai amatan yang X nya jauh lebih besar dari X lainnya dan terletak hampir dalam garis regresi tetapi juga menjauh. Terdapat dua titik observasi yang termasuk sebagai titik leverage pada data tersebut, yaitu amatan ke-22 dengan nilai hii 0.9051. Kedua titik ini memiliki nilai hii yang lebih besar dari 2*p/n = 0.5454, dengan p = 6 adalah banyaknya parameter dan n = 22 adalah banyaknya amatan.

Amatan Berpengaruh

amatan_berpengaruh <- vector("list", dim(hasil)[1])
for (i in 1:dim(hasil)[1]) {
  cutoff <- 2 * sqrt((6 / 22))
  amatan_berpengaruh[[i]] <- which(abs(DFFITSi) > cutoff)
}
berpengaruh <- unlist(amatan_berpengaruh)
amatan_berpengaruh <- sort(unique(berpengaruh))
amatan_berpengaruh
## [1] 10 21 22

Amatan berpengaruh adalah nilai amatan yang memengaruhi hasil dugaan parameter regresi, R-square, dan uji hipotesis jika disisihkan. Hasil pada data tersebut menunjukkan bahwa amatan ke-10, 21, dan 22 termasuk sebagai amatan berpengaruh yang memiliki nilai DFFITSi -1.0587, -1.2123, dan -1.1085. Absolut dari nilai tersebut lebih besar dari 2*sqrt(p/n) = 1.0445.

#gambaran amatan berpengaruh dengan pencilan dan laverage
ols_plot_resid_lev(model3)

data <- dt[-c(21, 22),]

model_berpengaruh <- lm(Y~X1+X2+X4+X6+X7, data=data)

summary(model3)$r.squared
## [1] 0.5880444
summary(model_berpengaruh)$r.squared
## [1] 0.6563153

Berdasarkan hasil tersebut, nilai adj-Rsquare lebih kecil ketika pencilan dan leverage dikeluarkan dari data dibandingkan yang tidak. Oleh karenanya kedua titik tersebut disisihkan.

#pembentukan data baru tanpa amatan 9 dan 19
dt2 <- subset(dt, select = -c(X3, X5, X8, X9, X10, X11, X12))
dt2 <- dt2[-c(21, 22),]
#pemodelan rlb terbaru
model4 <- lm(Y~.,data= dt2)
summary(model4)
## 
## Call:
## lm(formula = Y ~ ., data = dt2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6156 -2.8722  0.1116  2.3695  7.4795 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 61.30733   39.37661   1.557   0.1418  
## X1          -1.03474    0.50058  -2.067   0.0577 .
## X2           4.72896    3.61451   1.308   0.2118  
## X4           1.14999    0.60974   1.886   0.0802 .
## X6          -0.09898    0.12744  -0.777   0.4503  
## X7          -2.34888    1.29452  -1.814   0.0911 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.322 on 14 degrees of freedom
## Multiple R-squared:  0.6563, Adjusted R-squared:  0.5336 
## F-statistic: 5.347 on 5 and 14 DF,  p-value: 0.005904
anova(model4)
## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value   Pr(>F)   
## X1         1 185.445 185.445  9.9263 0.007083 **
## X2         1  55.202  55.202  2.9548 0.107647   
## X4         1  87.575  87.575  4.6876 0.048143 * 
## X6         1 109.740 109.740  5.8740 0.029501 * 
## X7         1  61.508  61.508  3.2923 0.091085 . 
## Residuals 14 261.552  18.682                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
bs <- ols_step_best_subset(model4)
bs
##    Best Subsets Regression   
## -----------------------------
## Model Index    Predictors
## -----------------------------
##      1         X6             
##      2         X4 X7          
##      3         X1 X4 X7       
##      4         X1 X2 X4 X7    
##      5         X1 X2 X4 X6 X7 
## -----------------------------
## 
##                                                    Subsets Regression Summary                                                    
## ---------------------------------------------------------------------------------------------------------------------------------
##                        Adj.        Pred                                                                                           
## Model    R-Square    R-Square    R-Square     C(p)       AIC        SBIC        SBC         MSEP        FPE       HSP       APC  
## ---------------------------------------------------------------------------------------------------------------------------------
##   1        0.4100      0.3772      0.2939    8.0337    124.9836    67.4983    127.9708    499.1876    27.4392    1.4673    0.7211 
##   2        0.5203      0.4639      0.3734    5.5394    122.8431    66.2259    126.8260    431.2049    24.6940    1.3421    0.6490 
##   3        0.6097      0.5365      0.4462    3.8983    120.7187    65.8920    125.6973    374.2412    22.2763    1.2376    0.5854 
##   4        0.6415      0.5459      0.3664    4.6033    121.0193    67.6842    126.9937    368.3101    22.7352    1.2992    0.5975 
##   5        0.6563      0.5336      0.2921    6.0000    122.1755    70.1935    129.1457    380.2561    24.2870    1.4371    0.6383 
## ---------------------------------------------------------------------------------------------------------------------------------
## AIC: Akaike Information Criteria 
##  SBIC: Sawa's Bayesian Information Criteria 
##  SBC: Schwarz Bayesian Criteria 
##  MSEP: Estimated error of prediction, assuming multivariate normality 
##  FPE: Final Prediction Error 
##  HSP: Hocking's Sp 
##  APC: Amemiya Prediction Criteria
null<-lm(Y~ 1, data=dt2) # 1 here means the intercept 
full<-lm(Y~., data=dt2)
 
step(full, scope=list(lower=null, upper=full),data=datanew, direction='backward', trace=0)
## 
## Call:
## lm(formula = Y ~ X1 + X4 + X7, data = dt2)
## 
## Coefficients:
## (Intercept)           X1           X4           X7  
##     87.2720      -0.9279       0.6748      -2.8960
step(null, scope=list(lower=null, upper=full),data=datanew, direction='forward', trace=0)
## 
## Call:
## lm(formula = Y ~ X6 + X1 + X7 + X4 + X2, data = dt2)
## 
## Coefficients:
## (Intercept)           X6           X1           X7           X4           X2  
##    61.30733     -0.09898     -1.03474     -2.34888      1.14999      4.72896
step(null, scope=list(lower=null, upper=full),data=datanew, direction='both', trace=0)
## 
## Call:
## lm(formula = Y ~ X1 + X7 + X4, data = dt2)
## 
## Coefficients:
## (Intercept)           X1           X7           X4  
##     87.2720      -0.9279      -2.8960       0.6748
modell1 <-  lm(Y~X1+X4+X7, data = dt2)
modell2 <- lm(Y~X1+X2+X4+X6+X7, data = dt2)
summary(modell1)$adj.r.squared
## [1] 0.5365348
summary(modell2)$adj.r.squared
## [1] 0.5335708
ols_aic(modell1)
## [1] 120.7187
ols_aic(modell2)
## [1] 122.1755
model <- modell1
model
## 
## Call:
## lm(formula = Y ~ X1 + X4 + X7, data = dt2)
## 
## Coefficients:
## (Intercept)           X1           X4           X7  
##     87.2720      -0.9279       0.6748      -2.8960