1(a) Menghitung statistik deskriptif untuk variabel Ozone
data("airquality")
Menghapus nilai NA pada variabel Ozone
ozone_clean <- na.omit(airquality$Ozone)
Menampilkan hasil
cat("Statistik Deskriptif Ozone:\n")
## Statistik Deskriptif Ozone:
cat("Mean:", ozone_mean, "\n")
## Mean: 42.12931
cat("Median:", ozone_median, "\n")
## Median: 31.5
cat("Standar Deviasi:", ozone_sd, "\n")
## Standar Deviasi: 32.98788
1(b) Membuat diagram pencar (scatter plot) antara Wind dan Temp
Menghapus nilai NA jika ada
wind_temp_clean <- airquality[complete.cases(airquality[c("Wind", "Temp")]), ]
Membuat scatter plot
plot(
wind_temp_clean$Wind, wind_temp_clean$Temp,
xlab = "Wind (mph)",
ylab = "Temperature (°F)",
main = "Scatter Plot of Wind vs Temperature",
pch = 16, col = "blue"
)

2. Buatlah barchart untuk variabel cyl dari dataset mtcars dan
tambahkan label jumlah setiap kategori pada grafik.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
ggplot(mtcars, aes(x = factor(cyl))) +
geom_bar(fill = "green", color = "black") +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.5) +
labs(title = "Bar Chart untuk Jumlah Silinder (cyl)",
x = "Jumlah Silinder",
y = "Frekuensi")
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Menggunakan dataset iris
data("iris")
3(a) Membuat boxplot untuk membandingkan Petal.Width berdasarkan
variabel Species
boxplot(
Petal.Width ~ Species,
data = iris,
main = "Boxplot Petal.Width Berdasarkan Species",
xlab = "Species",
ylab = "Petal.Width",
col = c("skyblue", "lightgreen", "pink")
)

3(b) Menghitung korelasi antara Sepal.Length dan Petal.Length
correlation <- cor(iris$Sepal.Length, iris$Petal.Length)
cat("Korelasi antara Sepal.Length dan Petal.Length:", correlation, "\n")
## Korelasi antara Sepal.Length dan Petal.Length: 0.8717538
Interpretasi
if (correlation > 0.7) {
cat("Interpretasi: Korelasi kuat dan positif.\n")
} else if (correlation > 0.4) {
cat("Interpretasi: Korelasi sedang dan positif.\n")
} else if (correlation > 0) {
cat("Interpretasi: Korelasi lemah dan positif.\n")
} else {
cat("Interpretasi: Tidak ada korelasi atau korelasi negatif.\n")
}
## Interpretasi: Korelasi kuat dan positif.
3(c) Membuat scatter plot antara Sepal.Length dan Sepal.Width dengan
warna berbeda berdasarkan spesies
library(ggplot2)
Scatter plot dengan warna berdasarkan spesies
ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point(size = 2) +
geom_smooth(method = "lm", se = FALSE) + # Garis regresi per spesies
labs(
title = "Scatter Plot Sepal.Length vs Sepal.Width",
x = "Sepal.Length",
y = "Sepal.Width"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

4. Lakukan uji Chi-Square untuk mengetahui hubungan antara dua
variabel kategorik, yaitu vs dan am, dalam dataset mtcars.
Menggunakan dataset mtcars
data("mtcars")
Mengonversi variabel vs dan am menjadi faktor
mtcars$vs <- as.factor(mtcars$vs)
mtcars$am <- as.factor(mtcars$am)
Membuat tabel kontingensi antara vs dan am
contingency_table <- table(mtcars$vs, mtcars$am)
Menampilkan tabel kontingensi
cat("Tabel Kontingensi:\n")
## Tabel Kontingensi:
print(contingency_table)
##
## 0 1
## 0 12 6
## 1 7 7
Melakukan uji Chi-Square
chi_square_test <- chisq.test(contingency_table)
Menampilkan hasil uji Chi-Square
cat("\nHasil Uji Chi-Square:\n")
##
## Hasil Uji Chi-Square:
print(chi_square_test)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: contingency_table
## X-squared = 0.34754, df = 1, p-value = 0.5555
Interpretasi
if (chi_square_test$p.value < 0.05) {
cat("\nKesimpulan: Ada hubungan signifikan antara vs dan am (p-value <", chi_square_test$p.value, ").\n")
} else {
cat("\nKesimpulan: Tidak ada hubungan signifikan antara vs dan am (p-value =", chi_square_test$p.value, ").\n")
}
##
## Kesimpulan: Tidak ada hubungan signifikan antara vs dan am (p-value = 0.5555115 ).
5. Bangun model regresi linear sederhana menggunakan dataset
airquality untuk memprediksi Temp berdasarkan Solar.R
Menggunakan dataset airquality
data("airquality")
5(a) Membangun model regresi linear sederhana
Menghapus nilai NA
clean_data <- na.omit(airquality)
Membuat model: Temp ~ Solar.R
model <- lm(Temp ~ Solar.R, data = clean_data)
Menampilkan ringkasan model
cat("Ringkasan Model:\n")
## Ringkasan Model:
summary_model <- summary(model)
print(summary_model)
##
## Call:
## lm(formula = Temp ~ Solar.R, data = clean_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.735 -6.292 1.080 6.231 18.648
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 72.110720 1.970502 36.595 < 2e-16 ***
## Solar.R 0.030747 0.009571 3.212 0.00173 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.15 on 109 degrees of freedom
## Multiple R-squared: 0.08649, Adjusted R-squared: 0.07811
## F-statistic: 10.32 on 1 and 109 DF, p-value: 0.001731
5(b) Membuat scatter plot dengan garis regresi
plotregresi <- ggplot(airquality, aes(x = Solar.R, y = Temp)) +
geom_point() +
geom_smooth(method = "lm")
print(plotregresi)
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

5(c) Interpretasi hasil
cat("\nInterpretasi:\n")
##
## Interpretasi:
cat("1. Koefisien Regresi:\n")
## 1. Koefisien Regresi:
cat(" Intercept (Beta_0):", summary_model$coefficients[1, 1], "\n")
## Intercept (Beta_0): 72.11072
cat(" Slope (Beta_1):", summary_model$coefficients[2, 1], "\n")
## Slope (Beta_1): 0.03074685
cat("\n2. Nilai R-squared:\n")
##
## 2. Nilai R-squared:
cat(" R²:", summary_model$r.squared, "\n")
## R²: 0.08648754
if (summary_model$r.squared >= 0.7) {
cat(" Interpretasi: Model memiliki kekuatan prediksi yang baik.\n")
} else if (summary_model$r.squared >= 0.4) {
cat(" Interpretasi: Model memiliki kekuatan prediksi sedang.\n")
} else {
cat(" Interpretasi: Model memiliki kekuatan prediksi lemah.\n")
}
## Interpretasi: Model memiliki kekuatan prediksi lemah.