cat("\n=== Pembangkitan Data ===\n")
##
## === Pembangkitan Data ===
set.seed(18)
n <- 120
kapasitas_mesin <- runif(n, 1000,3000)
berat <- runif(n, 800, 2000)
konsumsi_bbm <- runif(n, 8, 20)
harga <- 50 + 0.5*kapasitas_mesin+(-0.02)*berat+2*konsumsi_bbm+rnorm(n, 0, 10)
data <- data.frame(kapasitas_mesin, berat, konsumsi_bbm, harga)
data
## kapasitas_mesin berat konsumsi_bbm harga
## 1 2645.793 1038.7690 10.149525 1365.2389
## 2 2420.399 1677.0159 17.483714 1256.7462
## 3 2931.670 1511.4520 13.313697 1518.1993
## 4 1157.222 1008.2287 13.675714 628.6281
## 5 1107.274 886.6192 15.536997 622.5613
## 6 2149.956 819.2150 17.028206 1158.0176
## 7 1775.560 1413.4719 14.560832 935.1553
## 8 2020.777 937.9781 15.231283 1077.4227
## 9 1732.296 1099.9073 15.946521 922.2343
## 10 1435.862 802.2878 18.676549 782.2959
## 11 2285.766 1647.3015 11.201577 1186.0906
## 12 2505.630 1309.5456 19.587636 1296.0553
## 13 1184.495 935.3712 17.142404 668.5949
## 14 1614.616 1601.1505 8.892274 852.8520
## 15 2984.160 1686.6797 16.922136 1549.7349
## 16 1237.962 1974.1262 11.377039 635.0541
## 17 2050.883 1182.6023 9.573209 1064.6692
## 18 1082.535 1421.9483 10.069110 593.0178
## 19 2877.778 1492.5941 15.618654 1488.7473
## 20 1134.337 1671.5559 10.745682 620.6092
## 21 1059.467 1161.1036 11.323586 576.7738
## 22 1262.576 1033.1737 12.032361 686.2597
## 23 2637.930 1305.2809 8.906672 1350.4593
## 24 2793.357 1095.3487 13.590448 1459.4921
## 25 1191.738 1160.6227 9.786599 618.5084
## 26 2391.007 1781.4871 13.497797 1240.5847
## 27 2033.560 922.2782 17.004378 1087.4291
## 28 1886.625 1000.4219 15.798472 999.0829
## 29 1432.260 1218.1343 8.856404 750.9731
## 30 1642.751 854.1976 17.218419 879.0370
## 31 2774.347 1533.1809 16.714087 1440.4798
## 32 1987.137 1879.5710 9.549566 1032.5792
## 33 1355.201 1579.9341 17.663089 731.2146
## 34 1403.572 1856.6300 19.994865 759.0422
## 35 1497.753 1054.2531 12.648311 832.1832
## 36 2458.765 968.7764 12.797220 1279.3105
## 37 2817.192 1429.8524 19.312092 1465.8866
## 38 2000.014 1198.8751 15.431178 1068.6743
## 39 2356.340 1632.8935 8.419075 1220.6110
## 40 1906.487 1270.3020 18.697537 1010.6364
## 41 1192.841 1189.1349 16.138036 649.4360
## 42 1099.911 1081.1475 18.484672 599.0526
## 43 2732.350 962.2988 14.595602 1424.4464
## 44 1053.741 1722.6175 16.540738 570.1896
## 45 1440.033 1059.5340 15.966075 770.7853
## 46 1979.604 1367.9428 10.999221 1026.1553
## 47 1498.298 1952.1090 19.394710 807.6184
## 48 1262.415 1483.8662 8.503212 663.4846
## 49 2357.572 1620.8023 8.621667 1202.9881
## 50 2457.952 1941.0084 8.795707 1250.1245
## 51 1051.138 1185.3772 15.319967 580.7307
## 52 1536.064 1500.7131 8.306032 796.2410
## 53 1291.153 1274.5254 8.026371 688.0464
## 54 2579.872 1998.2482 14.965788 1292.5505
## 55 1906.219 838.7442 16.095642 1022.7353
## 56 1901.891 1160.5684 13.264856 981.0942
## 57 1795.233 1511.5289 8.448967 945.0067
## 58 1105.958 892.2600 11.512517 613.7904
## 59 1080.423 1722.5350 18.012257 606.9104
## 60 1494.901 1699.5904 10.167660 784.2503
## 61 1363.422 1452.8808 18.338588 743.4719
## 62 2333.819 968.2770 9.600767 1220.2944
## 63 2163.928 1032.5082 9.291862 1120.8397
## 64 2993.173 1806.5742 16.502623 1554.2542
## 65 2246.079 951.5002 16.003868 1190.7714
## 66 2532.457 1682.0371 13.667321 1296.6054
## 67 2754.672 1187.7246 18.285067 1432.4822
## 68 1628.764 1489.3368 9.327661 864.9168
## 69 1090.267 1504.3481 10.578284 596.0359
## 70 2967.214 1807.4199 10.770826 1518.7839
## 71 2699.433 1111.0299 9.043534 1396.1843
## 72 1689.548 1615.5153 18.321506 909.1621
## 73 2494.483 1783.5171 16.662807 1309.6949
## 74 1930.304 1280.9241 17.254451 1015.7595
## 75 1203.412 1006.9309 11.986087 649.7298
## 76 1315.514 1903.5770 15.396728 700.6265
## 77 2457.899 1285.1989 19.199229 1269.1494
## 78 2142.967 1697.1213 15.303667 1111.8995
## 79 2588.336 1814.2647 8.150378 1338.9692
## 80 2181.052 1868.8870 19.266884 1132.3904
## 81 2512.863 1636.3872 9.480997 1296.7776
## 82 2498.063 1892.2452 11.509167 1287.4183
## 83 2988.621 1544.7440 13.309716 1548.2634
## 84 2184.903 1947.9392 15.362401 1139.1222
## 85 2348.906 1695.2172 18.348444 1220.4269
## 86 2618.079 1486.5207 8.025142 1353.0260
## 87 2677.212 1984.1449 11.906527 1379.1621
## 88 1783.053 1731.0642 15.991832 929.4490
## 89 1899.328 824.7230 13.797599 1006.8434
## 90 1416.821 1416.5718 11.405284 750.1093
## 91 2393.383 1887.4834 18.553449 1265.2496
## 92 2283.083 1789.0723 10.219198 1190.0947
## 93 2592.290 1291.8924 16.045170 1346.7427
## 94 1582.750 1710.3232 15.794851 824.5315
## 95 1185.612 1719.2568 13.559629 640.1959
## 96 2251.155 1602.4746 19.858883 1183.4323
## 97 1745.520 1443.3724 19.122599 935.7991
## 98 2495.275 905.2723 8.287281 1309.3085
## 99 1576.935 1443.8086 14.637810 836.5921
## 100 2339.864 912.4766 9.314138 1226.3428
## 101 1366.749 1693.2186 9.744580 706.6104
## 102 1622.485 1347.7547 17.575183 845.4721
## 103 1257.787 1169.5638 13.887435 680.3254
## 104 2620.432 1602.7754 15.991322 1360.5783
## 105 2380.868 1107.8967 18.269886 1254.3709
## 106 2998.201 1039.8066 12.403292 1547.4032
## 107 1583.885 1294.0449 9.617369 830.9322
## 108 1412.012 1802.9910 16.820991 750.5590
## 109 1928.763 1886.0875 13.848349 1005.9351
## 110 1515.919 879.6625 19.493236 841.2551
## 111 1033.092 1717.2393 13.797876 572.9220
## 112 1689.236 1280.0026 16.376106 889.1066
## 113 1367.740 1940.3181 10.868432 717.8048
## 114 1885.846 946.1697 16.370458 1017.0135
## 115 2781.355 1130.6941 14.308715 1428.0965
## 116 2742.316 1270.4482 15.679692 1410.0254
## 117 2063.808 1229.6131 8.155322 1066.7064
## 118 2386.667 967.2894 13.404572 1230.5758
## 119 2332.035 1413.9073 18.902190 1214.4745
## 120 2348.381 1441.0799 10.019906 1219.3843
cat("\n=== Model ===\n")
##
## === Model ===
model <- lm(harga ~ kapasitas_mesin + berat + konsumsi_bbm, data = data)
summary(model)
##
## Call:
## lm(formula = harga ~ kapasitas_mesin + berat + konsumsi_bbm,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -37.058 -5.986 0.125 7.498 30.237
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 50.874120 6.301481 8.073 7.12e-13 ***
## kapasitas_mesin 0.499069 0.001649 302.615 < 2e-16 ***
## berat -0.017377 0.002839 -6.120 1.30e-08 ***
## konsumsi_bbm 1.732191 0.269325 6.432 2.93e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.54 on 116 degrees of freedom
## Multiple R-squared: 0.9987, Adjusted R-squared: 0.9987
## F-statistic: 3.069e+04 on 3 and 116 DF, p-value: < 2.2e-16
cat("\n=== Evaluasi ===\n")
##
## === Evaluasi ===
pred <- predict(model, data)
rmse <- sqrt(mean((data$harga - pred)^2))
mae <- mean(abs(data$harga - pred))
r2 <- summary(model)$r.squared
rmse
## [1] 10.36351
mae
## [1] 8.175079
r2
## [1] 0.9987419
cat("\n=== Visualisasi ===\n")
##
## === Visualisasi ===
plot(data$harga, pred,
main = "Actual vs Predicted Harga Mobil",
xlab = "Actual",
ylab = "Predicted")
abline(0,1,col="red")
install.packages(“openxlsx”) library(openxlsx)
write.xlsx(data, “data_mobil.xlsx”)