1. Impor dataset airquality yang tersedia di R

head(airquality)
##   Ozone Solar.R Wind Temp Month Day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6

a. menghitung statistik deskriptif(mean, median, standar deviasi) untuk variabel Ozone

summary(airquality$Ozone)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    1.00   18.00   31.50   42.13   63.25  168.00      37

mean dari data variable Ozone adalah 42.13.

median dari data variable Ozone adalah 31.50

standar_deviasi <- sd(airquality$Ozone)
standar_deviasi
## [1] NA

Output dari standar deviasi variable Ozone adalah NA karena di dalam r sd tidak dapat dihitung jika ada data NA atau nilai kosong dalam dataset, oleh karena itu kita dapat menambah parameter na.rm = TRUE

standar_deviasi_noNA <- sd(airquality$Ozone, na.rm = TRUE)
standar_deviasi_noNA
## [1] 32.98788

kita dapat melihat untuk standar deviasi yang cukup besar pada variable Ozone adalah sebesar 32.98788

b. membuat diagram pencar(scatter plot) antara variabel Wind dan Temp.

# Membuat scatter plot
plot(airquality$Wind, airquality$Temp,
     main = "Diagram Pencar antara Wind dan Temp",  # Judul
     xlab = "Wind (km/h)",                           # Label sumbu x
     ylab = "Temp (°C)",                            # Label sumbu y
     pch = 19,                                      # Tipe titik
     col = "blue")                                  # Warna titik

Diagram pencar menunjukkan hubungan negatif antara kecepatan angin (Wind) dan suhu (Temp), di mana semakin tinggi kecepatan angin, suhu cenderung lebih rendah. Penyebaran data menunjukkan variasi suhu yang lebih lebar pada kecepatan angin rendah (sekitar 5–10 km/h), sementara pada kecepatan angin tinggi (15–20 km/h), suhu lebih terkonsentrasi di kisaran rendah (60–75°C). Secara keseluruhan, terdapat indikasi bahwa peningkatan kecepatan angin berpengaruh menurunkan suhu, meskipun beberapa titik ekstrem menunjukkan variasi di luar pola umum.

2. Membuat bar chart untuk variabel cyl dari dataset mtcars dan tambahkan label jumlah setiap kategori pada grafik

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
# Menghitung jumlah setiap kategori cyl
jml_cyl <- table(mtcars$cyl)

# Membuat bar chart
barplot(jml_cyl,
        main = "Jumlah Kategori Cylinder (cyl)",
        xlab = "Cylinder",
        ylab = "Jumlah",
        col = "steelblue")

# Menambahkan label jumlah setiap kategori
text(x = 1:length(jml_cyl), 
     y = jml_cyl + 1, 
     labels = as.character(jml_cyl),
     cex = 0.8,
     pos = 3)

Berdasarkan grafik bar yang ditampilkan, dapat diinterpretasikan bahwa dataset mtcars terdiri dari 11 kendaraan dengan 4 silinder, 7 kendaraan dengan 6 silinder, dan 14 kendaraan dengan 8 silinder. Grafik ini memberikan informasi tentang distribusi jumlah silinder kendaraan dalam dataset, yang dapat berguna untuk analisis lebih lanjut terkait karakteristik kendaraan.

3. Dengan dataset iris untuk menyelesaikan beberapa permasalahan berikut

a. Boxplot untuk membandingkan Petal.Width berdasarkan variabel Species

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
# Membuat boxplot
boxplot(Petal.Width ~ Species, 
        data = iris,
        main = "Perbandingan Petal.Width antar Spesies",
        xlab = "Spesies",
        ylab = "Petal.Width")

Grafik boxplot ini menggambarkan perbandingan lebar kelopak bunga (Petal.Width) antara tiga spesies tanaman iris, yaitu setosa, versicolor, dan virginica. Dapat dilihat bahwa spesies setosa memiliki rentang nilai Petal.Width yang paling sempit dan terpusat, sedangkan spesies versicolor dan virginica memiliki rentang nilai yang lebih luas dan bervariasi. Hal ini menunjukkan adanya perbedaan karakteristik lebar kelopak bunga yang signifikan antara ketiga spesies tersebut, yang dapat berguna untuk mengidentifikasi dan membedakan spesies tanaman iris berdasarkan fitur morfologinya.

b. Menghitung korelasi antara Sepal.Length dan Petal.Length dan interpretasinya

cor.test(iris$Sepal.Length, iris$Petal.Length, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  iris$Sepal.Length and iris$Petal.Length
## t = 21.646, df = 148, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8270363 0.9055080
## sample estimates:
##       cor 
## 0.8717538

Interpretasi

Hipotesis yang diuji

H0 : Korelasi antar sepal.length dan petal.length sama dengan nol (tidak ada hubungan linear).

H1 : Korelasi antara Sepal.Length dan Petal.Length tidak sama dengan nol (ada hubungan linear).

Nilai Korelasi

Nilai korelasi yang diestimasi adalah 0.8717538.

Nilai ini menunjukkan hubungan linear positif yang kuat antara Sepal.Length dan Petal.Length, karena nilai korelasi mendekati +1.

Uji Statistik (t-test)

Nilai statistik uji t = 21.646 dengan derajat bebas (df) 148.

Nilai ini menunjukkan bahwa hubungan linear yang diamati sangat signifikan.

p-value (< 2.2e-16)

p-value yang sangat kecil (lebih kecil dari tingkat signifikansi umum 0.05) menunjukkan bahwa hasil ini sangat signifikan secara statistik.

Dengan kata lain, kita menolak hipotesis nol (H₀) dan menyimpulkan bahwa ada korelasi linear positif yang signifikan antara Sepal.Length dan Petal.Length.

Confidence Interval (CI)

Interval kepercayaan 95% untuk nilai korelasi berkisar antara 0.8270363 hingga 0.9055080

Ini menunjukkan bahwa nilai korelasi yang sebenarnya dalam populasi diperkirakan berada dalam rentang tersebut dan tidak mencakup nol, memperkuat kesimpulan adanya hubungan yang signifikan.

Kesimpulan: Dari hasil ini, terdapat korelasi linear positif yang kuat dan signifikan antara Sepal.Length dan Petal.Length pada dataset iris (r = 0.8718, p < 2.2e-16). Hubungan ini sangat signifikan secara statistik dengan confidence interval yang sempit, menunjukkan bahwa hasil ini cukup stabil dan dapat dipercaya.

c. Menghitung korelasi antara sepal.length dan sepal.width dengan warna berbeda berdasarkan spesies. dan tambahkan garis regresi untuk masing masing spesies

# Menghitung korelasi dan membuat plot
plot(iris$Sepal.Length, iris$Sepal.Width, 
     col = as.numeric(iris$Species), 
     main = "Korelasi Sepal.Length dan Sepal.Width",
     xlab = "Sepal.Length", 
     ylab = "Sepal.Width")

# Menambahkan garis regresi untuk masing-masing spesies
abline(lm(Sepal.Width ~ Sepal.Length, data = iris[iris$Species == "setosa",]), col = 1)
abline(lm(Sepal.Width ~ Sepal.Length, data = iris[iris$Species == "versicolor",]), col = 2)
abline(lm(Sepal.Width ~ Sepal.Length, data = iris[iris$Species == "virginica",]), col = 3)

# Menghitung korelasi untuk masing-masing spesies
cat("Korelasi Sepal.Length dan Sepal.Width:\n")
## Korelasi Sepal.Length dan Sepal.Width:
cat("Setosa:", cor(iris$Sepal.Length[iris$Species == "setosa"], iris$Sepal.Width[iris$Species == "setosa"]), "\n")
## Setosa: 0.7425467
cat("Versicolor:", cor(iris$Sepal.Length[iris$Species == "versicolor"], iris$Sepal.Width[iris$Species == "versicolor"]), "\n")
## Versicolor: 0.5259107
cat("Virginica:", cor(iris$Sepal.Length[iris$Species == "virginica"], iris$Sepal.Width[iris$Species == "virginica"]), "\n")
## Virginica: 0.4572278

Dari plot scater tersebut, dapat dilihat adanya korelasi positif antara panjang kelopak bunga (Sepal.Length) dan lebar kelopak bunga (Sepal.Width) pada dataset iris. Semakin panjang sepal, semakin lebar pula sepalnya. Hal ini ditunjukkan dengan pola sebaran data yang cenderung membentuk garis lurus naik.

Selain itu, terlihat pula bahwa pola korelasi ini berbeda-beda untuk masing-masing spesies bunga iris. Garis regresi untuk setiap spesies memiliki kemiringan yang berbeda, menunjukkan tingkat korelasi yang berbeda pula antara panjang dan lebar sepal pada setiap spesies.

Secara umum, plot tersebut memberikan gambaran visual tentang hubungan antara panjang dan lebar kelopak bunga pada dataset iris, serta perbedaan pola korelasi tersebut di antara ketiga spesies.

untuk nilai korelasi antara Sepal.Length dan Sepal.Width untuk masing-masing spesies iris adalah: Setosa (0.7425467), Versicolor (0.5259107), dan Virginica (0.4572278). Nilai korelasi tertinggi terdapat pada spesies Setosa, menunjukkan adanya korelasi positif yang kuat antara panjang dan lebar sepal pada spesies tersebut. Sementara itu, spesies Versicolor dan Virginica memiliki tingkat korelasi yang lebih rendah, sesuai dengan pola yang terlihat pada grafik sebelumnya. Hal ini mengindikasikan adanya perbedaan tingkat korelasi antara panjang dan lebar sepal pada masing-masing spesies iris.

4. Lakukan uji Chi-Square untuk menguji hubungan antara dua variabel kategorik yaitu vs dan am dalam dataset mtcars

# Load the mtcars dataset
data(mtcars)

# Create a contingency table
contingency_table <- table(mtcars$vs, mtcars$am)
print("Contingency Table:")
## [1] "Contingency Table:"
print(contingency_table)
##    
##      0  1
##   0 12  6
##   1  7  7
# Perform Chi-Square test
chi2_result <- chisq.test(contingency_table)

print("\nChi-Square Test Results:")
## [1] "\nChi-Square Test Results:"
print(paste("Chi-Square Statistic:", format(chi2_result$statistic, digits = 2)))
## [1] "Chi-Square Statistic: 0.35"
print(paste("P-value:", format(chi2_result$p.value, digits = 4)))
## [1] "P-value: 0.5555"
print(paste("Degrees of Freedom:", chi2_result$parameter))
## [1] "Degrees of Freedom: 1"

Berdasarkan output yang ditampilkan, dapat dilakukan interpretasi statistik sebagai berikut:

Contingency Table:

Tabel kontingensi menunjukkan frekuensi pengamatan pada dua variabel kategorik, yaitu variabel “0” dan “1”.

Chi-Square Test Results:

Chi-Square Statistic: 0.35 P-value: 0.5555 Degrees of Freedom: 1 Interpretasi:

Hipotesis Nol (H0): Tidak ada hubungan antara dua variabel kategorik. Hipotesis Alternatif (H1): Ada hubungan antara dua variabel kategorik. Tingkat Signifikansi: 0,05 (asumsi) Berdasarkan hasil uji Chi-Square:

Nilai Chi-Square Statistic adalah 0.35. Nilai p-value adalah 0.5555, yang lebih besar dari tingkat signifikansi 0,05. Derajat Kebebasan (Degrees of Freedom) adalah 1. Kesimpulan: Karena nilai p-value (0.5555) lebih besar dari tingkat signifikansi 0,05, maka kita gagal menolak hipotesis nol (H0). Dengan kata lain, tidak ada bukti yang cukup untuk menyimpulkan bahwa ada hubungan antara dua variabel kategorik yang diuji.

5. Bangun model regresi linear sederhana dengan dataset airquality untuk memprediksi variabel temp berdasarkan solar r

# Load dataset airquality
data("airquality")

# Melihat sekilas data
head(airquality)
##   Ozone Solar.R Wind Temp Month Day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6
# Menghapus baris dengan nilai NA pada Solar.R dan Temp
airquality_clean <- na.omit(airquality[, c("Solar.R", "Temp")])

# Membangun model regresi linear sederhana
model <- lm(Temp ~ Solar.R, data = airquality_clean)

# Menampilkan ringkasan model
summary(model)
## 
## Call:
## lm(formula = Temp ~ Solar.R, data = airquality_clean)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -22.3787  -4.9572   0.8932   5.9111  18.4013 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 72.863012   1.693951  43.014  < 2e-16 ***
## Solar.R      0.028255   0.008205   3.444 0.000752 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.898 on 144 degrees of freedom
## Multiple R-squared:  0.07609,    Adjusted R-squared:  0.06967 
## F-statistic: 11.86 on 1 and 144 DF,  p-value: 0.0007518
# Plot scatterplot antara Solar.R dan Temp dengan garis regresi
plot(airquality_clean$Solar.R, airquality_clean$Temp,
     main = "Scatterplot Solar.R vs Temp",
     xlab = "Solar Radiation (Solar.R)",
     ylab = "Temperature (Temp)",
     pch = 19, col = "blue")
abline(model, col = "red", lwd = 2)

# Menampilkan koefisien regresi
coefficients(model)
## (Intercept)     Solar.R 
## 72.86301176  0.02825463

Berdasarkan hasil analisis regresi linear sederhana yang ditampilkan, dapat disimpulkan:

Persamaan regresi linear sederhana: temp = 72.86301176 + 0.02825463 * solar.r

Koefisien regresi untuk variabel solar.r adalah 0.02825463, yang berarti setiap kenaikan 1 unit solar.r akan meningkatkan temp sebesar 0.02825463 unit, dengan asumsi variabel lain tetap.

Nilai p-value untuk koefisien solar.r adalah 0.000752, yang lebih kecil dari tingkat signifikansi 0,05. Ini menunjukkan bahwa variabel solar.r secara signifikan mempengaruhi variabel temp.

Nilai R-squared (Multiple R-squared) adalah 0.07609, yang berarti 7,609% variasi dalam temp dapat dijelaskan oleh variasi dalam solar.r. Nilai Adjusted R-squared adalah 0.06967, yang mengoreksi nilai R-squared untuk jumlah prediktor dalam model.

Nilai F-statistic adalah 11.86 dengan p-value 0.0007518, yang menunjukkan bahwa model regresi secara keseluruhan adalah signifikan.

Kesimpulan: Berdasarkan hasil analisis, dapat disimpulkan bahwa variabel solar.r secara signifikan mempengaruhi variabel temp pada dataset airquality. Meskipun nilai R-squared relatif rendah, model regresi linear sederhana yang dihasilkan dapat digunakan untuk memprediksi temp berdasarkan solar.r