1. Buatlah 100 data acak dari distribusi binomial dengan n = 10 dan
p = 0.3. Hitung rata-ratanya. Berapakah nilai yang paling mendekati
rata-rata tersebut? Gunakan set.seed(123)
set.seed(123)
n_populasi = 100
n_sampel = 10
p = 0.3
print(mean(data <- rbinom(n_populasi, n_sampel, p)))
## [1] 3.02
4. Buatlah sebuah regresi linear sederhana dari data berikut: x
<- 1:10 y <- 2 * x + rnorm(10, 0, 1) Berapa estimasi koefisien
slope dari model lm(y ~ x)? Gunakan set.seed(123)
set.seed(123)
x <- 1:10
y <- 2 * x + rnorm(10,0,1)
print(lm(y~x))
##
## Call:
## lm(formula = y ~ x)
##
## Coefficients:
## (Intercept) x
## 0.5255 1.9180
5. Lakukan bootstrap 1000 kali terhadap sampel x <- c(5, 7, 8,
10, 12). Hitung rata-rata dari setiap bootstrap, lalu ambil rata-rata
dari hasil tersebut. Nilai mendekati berapa? Gunakan set.seed(123)
set.seed(123)
x <- c(5, 7, 8, 10, 12)
sample.size <- 5
n.samples <- 1000
bootstrap.results <- c() # Creating an empty vector to hold the results
for (i in 1:n.samples)
{
obs <- sample(1:sample.size, replace=TRUE)
bootstrap.results[i] <- mean(x[obs]) # Mean of the bootstrap sample
}
mean(bootstrap.results)
## [1] 8.3572
6. Diberikan data:x <-
rnorm(100)y <- 2*x + rnorm(100). Manakah kode berikut yang benar
untuk melihat ringkasan dari model regresi?
x <- rnorm(100)
y <- 2*x + rnorm(100)
summary(lm(y~x))
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.3669 -0.5885 0.0229 0.6142 2.9141
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.13560 0.09861 -1.375 0.172
## x 1.85267 0.10156 18.243 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9851 on 98 degrees of freedom
## Multiple R-squared: 0.7725, Adjusted R-squared: 0.7702
## F-statistic: 332.8 on 1 and 98 DF, p-value: < 2.2e-16
7. Manakah kode berikut yang benar untuk mensimulasikan 100 nilai
dari distribusi normal dengan mean = 70 dan sd = 15?
set.seed(123)
mean = 70
sd = 15
n = 100
rnorm(100,70,15)
## [1] 61.59287 66.54734 93.38062 71.05763 71.93932 95.72597 76.91374
## [8] 51.02408 59.69721 63.31507 88.36123 75.39721 76.01157 71.66024
## [15] 61.66238 96.80370 77.46776 40.50074 80.52034 62.90813 53.98264
## [22] 66.73038 54.60993 59.06663 60.62441 44.69960 82.56681 72.30060
## [29] 52.92795 88.80722 76.39696 65.57393 83.42688 83.17200 82.32372
## [36] 80.32960 78.30876 69.07132 65.41056 64.29293 59.57940 66.88124
## [43] 51.01905 102.53434 88.11943 53.15337 63.95673 63.00017 81.69948
## [50] 68.74946 73.79978 69.57180 69.35694 90.52903 66.61344 92.74706
## [57] 46.76871 78.76921 71.85781 73.23912 75.69459 62.46515 65.00189
## [64] 54.72137 53.92313 74.55293 76.72315 70.79506 83.83401 100.75127
## [71] 62.63453 35.36247 85.08608 59.36199 59.67987 85.38357 65.72840
## [78] 51.68923 72.71955 67.91663 70.08646 75.77921 64.44010 79.66565
## [85] 66.69270 74.97673 86.45259 76.52772 65.11103 87.23211 84.90256
## [92] 78.22595 73.58098 60.58141 90.40979 60.99611 102.80999 92.98916
## [99] 66.46449 54.60369
8. Buat 100 data dari distribusi normal N(0,1), lalu ambil hanya
data yang lebih besar dari 1. Berapa banyak data yang tersisa? Gunakan
set.seed(123)
set.seed(123)
data_select <- c()
i <- 1
for( data in rnorm(100,0,1)){
if(data > 1){
data_select[i] <- data
}
i <- i+1
}
print(data_select)
## [1] NA NA 1.558708 NA NA 1.715065 NA NA
## [9] NA NA 1.224082 NA NA NA NA 1.786913
## [17] NA NA NA NA NA NA NA NA
## [25] NA NA NA NA NA 1.253815 NA NA
## [33] NA NA NA NA NA NA NA NA
## [41] NA NA NA 2.168956 1.207962 NA NA NA
## [49] NA NA NA NA NA 1.368602 NA 1.516471
## [57] NA NA NA NA NA NA NA NA
## [65] NA NA NA NA NA 2.050085 NA NA
## [73] 1.005739 NA NA 1.025571 NA NA NA NA
## [81] NA NA NA NA NA NA 1.096839 NA
## [89] NA 1.148808 NA NA NA NA 1.360652 NA
## [97] 2.187333 1.532611
9. Simulasikan 100 data dari distribusi Poisson dengan λ = 4. Berapa
nilai modus dari data yang dihasilkan? Gunakan set.seed(123)
set.seed(123)
lambda = 4
n = 100
data <- rpois(n,lambda)
print(data)
## [1] 3 6 3 6 7 1 4 7 4 4 8 4 5 4 2 7 3 1 3 8 7 5 5 10 5
## [26] 5 4 4 3 2 8 7 5 6 1 4 5 2 3 2 2 3 3 3 2 2 2 4 3 6
## [51] 1 4 6 2 4 2 2 5 7 3 5 2 3 3 6 4 6 6 6 4 5 5 5 0 4
## [76] 2 3 4 3 2 3 5 3 6 2 4 9 7 6 2 2 5 3 5 3 2 5 2 4 4
10. Dari data rnorm(100), berapa banyak data yang berada di luar ±2
SD? Gunakan set.seed(123)
set.seed(123)
data <- rnorm(100)
mean_data <- mean(data)
sd_data <- sd(data)
lower_bound <- mean_data - 2 * sd_data
upper_bound <- mean_data + 2 * sd_data
outliers <- sum(data < lower_bound | data > upper_bound)
outliers
## [1] 5
11. Simulasikan 50 data dari N(100,15) dan 50 data dari N(80,10),
lalu gabungkan. Berapa rata-rata dari seluruh data gabungan? Gunakan
set.seed(123)
set.seed(123)
data1 <- rnorm(50, mean = 100, sd = 15)
data2 <- rnorm(50, mean = 80, sd = 10)
data_gabungan <- c(data1, data2)
mean_gabungan <- mean(data_gabungan)
mean_gabungan
## [1] 90.99007
12. Manakah kode berikut yang benar untuk membuat model regresi
linear dari y terhadap x?
reg <- lm(y~x)
14. Dengan menggunakan fungsi rbinom, simulasikan 1000 percobaan
dengan n = 10 dan p = 0.3. Berapa rata-rata jumlah sukses? Gunakan
set.seed(123)
set.seed(123)
data_binom <- rbinom(1000, size = 10, prob = 0.3)
mean_sukses <- mean(data_binom)
mean_sukses
## [1] 2.989
15. Buatlah simulasi data dengan 3 variabel prediktorx1 <-
rnorm(100) x2 <- x1 + rnorm(100, 0, 0.01) x3 <- rnorm(100) y <-
3 + 2x1 - 1x3 + rnorm(100) Buat model lm(y ~ x1 + x2 + x3).
Berdasarkan output model, manakah pernyataan berikut yang paling tepat?
Gunakan set.seed(42)
set.seed(42)
x1 <- rnorm(100)
x2 <- x1 + rnorm(100, 0, 0.01)
x3 <- rnorm(100)
y <- 3 + 2*x1 - 1*x3 + rnorm(100)
model <- lm(y ~ x1 + x2 + x3)
summary(model)
##
## Call:
## lm(formula = y ~ x1 + x2 + x3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.7944 -0.5867 -0.1038 0.6188 2.3280
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.03150 0.08914 34.007 <2e-16 ***
## x1 1.17483 9.89434 0.119 0.906
## x2 0.88292 9.89031 0.089 0.929
## x3 -1.03161 0.08882 -11.614 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8867 on 96 degrees of freedom
## Multiple R-squared: 0.8927, Adjusted R-squared: 0.8893
## F-statistic: 266.2 on 3 and 96 DF, p-value: < 2.2e-16
16. Gunakan sample() untuk membuat 100 data kategorik (“A”, “B”,
“C”) dengan probabilitas masing-masing 0.2, 0.3, 0.5. Berapa banyak
kategori “B”? Gunakan set.seed(123)
set.seed(123)
# Buat data kategorik
kategori <- sample(c("A", "B", "C"), size = 100, replace = TRUE, prob = c(0.2, 0.3, 0.5))
# Hitung jumlah kategori "B"
jumlah_B <- sum(kategori == "B")
jumlah_B
## [1] 29
17. Dari data rnorm(100, mean=70, sd=5), berapakah nilai maksimum
dari data tersebut? Gunakan set.seed(123)
set.seed(123)
max(rnorm(100,70,5))
## [1] 80.93666
18. Buat 100 data acak dari distribusi normal dengan mean 50 dan sd
10. Hitung standar deviasi dari data tersebut. Gunakan
set.seed(123)
set.seed(123)
data <- rnorm(100, mean = 50, sd = 10)
sd_data <- sd(data)
sd_data
## [1] 9.128159