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
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
# 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.
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.
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.
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.
# 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.
# 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.
# 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