Minggu, 11 Agustus 2024

Analisis regresi dengan mediasi atau intervensi

Dalam regresi kita mengnal pengarih X terhadapaY maka kita tahu kalau nilai tersebut X mempengaruhi sebagai predictor.Tetapi dalam ikutannya ada satu variabel yang kita bisa ikutnan karena variable moderasi ini melihat adanya pengaruh. Kata kunci yang diberikan Hayes adalah berpengaruh pada perempuan tetapi kecil pengaruh terhadap laki-laki. Ini biasanya contoh beberapa penyakit yang bisa dialami oleh laki-laki  tetapi  akan mendapatkan pengaruh yang lebih besar di perempuan.

Langkah-langkah dalam regresi dengan mediasi adalah sebagai berikut. pada dsarnya kita akan melakukan regresi seperti halnya dnegan regresi yang ada OLS atau Ordinarry Least Square. Maka kita harus menentukan terlebih dahulu regresi beberapa data yang kita akan lakukan dalam regresi mediasi tersebut.

 

1. Regresi X terhadap Z

2. Regresi Z terhadap Y dengan X

 

kemudian dengan regresi tersebut kita akan meperoleh model summary yang ada. Tiap regresi untuk yang pertama apakah nilai Fnya adalah signifikan mempunyai nilai P yang dibawah 0,05 ? Kalau nilai P diatas dari 0,05 maka bisa dikatakan kalau terdapat masalah regresi tersebut. Kemudian juga melakukan regresi maka apakah nilai F nya juga dibawah 0,05

Prosedur dalam regresi ini memang sederhana dan tidak rumit (rigid).

Cara memilihnya adalah dengan melihatd ari stadarized beta. kalau kita lihat jalur pengarig langusng X terhadap Y maka kita melihat hubungan mana yang lebih besar. di beberapa contoh saya melihat memang g kalau langsung tampaknya besar. sedangkan kalau pengaruh tidak langsung maka kita harus mengalikan hubungan variabel independen terhadap moderator baru varibel mediasi dengan variabel Y.

Setelah kita memilih model maka kita lakukan adaah memeriksa dari asumsi normal dari dua jenis regresi yang kita memilihnya.

 

 # Memuat dataset mtcars

data(mtcars)

# Langkah 1: Pengaruh hp terhadap wt (X -> M)
model_med1
<- lm(wt ~ hp, data = mtcars)
summary(model_med1)

##
## Call:
## lm(formula = wt ~ hp, data = mtcars)
##
## Residuals:
##      Min       1Q   Median       3Q      Max
## -1.41757 -0.53122 -0.02038  0.42536  1.56455
##
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 1.838247   0.316520   5.808 2.39e-06 ***
## hp          0.009401   0.001960   4.796 4.15e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7483 on 30 degrees of freedom
## Multiple R-squared:  0.4339, Adjusted R-squared:  0.4151
## F-statistic:    23 on 1 and 30 DF,  p-value: 4.146e-05

# Langkah 2: Pengaruh wt terhadap mpg dengan kontrol hp (M -> Y dengan X sebagai kontrol)
model_med2
<- lm(mpg ~ hp + wt, data = mtcars)
summary(model_med2)

##
## Call:
## lm(formula = mpg ~ hp + wt, data = mtcars)
##
## Residuals:
##    Min     1Q Median     3Q    Max
## -3.941 -1.600 -0.182  1.050  5.854
##
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
## hp          -0.03177    0.00903  -3.519  0.00145 **
## wt          -3.87783    0.63273  -6.129 1.12e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8148
## F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12

# Koefisien hp dari model_med1
coef_hp_to_wt
<- summary(model_med1)$coefficients["hp", "Estimate"]

# Koefisien wt dari model_med2
coef_wt_to_mpg
<- summary(model_med2)$coefficients["wt", "Estimate"]

# Indirect Effect (IE) adalah produk dari kedua koefisien ini
indirect_effect
<- coef_hp_to_wt * coef_wt_to_mpg
indirect_effect

## [1] -0.03645533

# Koefisien dan standar error dari model_med1 (hp -> wt)
a
<- summary(model_med1)$coefficients["hp", "Estimate"]
sa
<- summary(model_med1)$coefficients["hp", "Std. Error"]

# Koefisien dan standar error dari model_med2 (wt -> mpg dengan kontrol hp)
b
<- summary(model_med2)$coefficients["wt", "Estimate"]
sb
<- summary(model_med2)$coefficients["wt", "Std. Error"]

# Menghitung indirect effect
indirect_effect
<- a * b

# Menghitung standar error indirect effect
se_indirect
<- sqrt((b^2 * sa^2) + (a^2 * sb^2))

# Menghitung z-value untuk Sobel Test
z_value
<- indirect_effect / se_indirect

# Menghitung p-value
p_value
<- 2 * (1 - pnorm(abs(z_value)))

# Menampilkan hasil
cat("Indirect Effect:", indirect_effect, "\n")

## Indirect Effect: -0.03645533

cat("Sobel Test z-value:", z_value, "\n")

## Sobel Test z-value: -3.776838

cat("p-value:", p_value, "\n")

## p-value: 0.0001588319 


Jumat, 02 Agustus 2024

Uji Indepedent t samples RStudio

 


Ada beberapa t test atau student test untuk melihat perbedaan dalam dua hal. Dalam hal ini maksudnya adlaah dua grup yang tidak ada berkaitan (independent). Uji ini berbeda dnegan paired yang emnunjukkan adanya kerterkaitan anatara dua grup atau kelompok tersebut. Untuk uji independent menggunakan dua grup yang berbeda. Setia grup tidak boleh ada yang sama atau indeividu yang sama.

Dalam uji independent t test ini berguna untuk bergabagi bidang misalnya :

Pendidikan

Mentetapkan metode engarajaran di kelompok A dan kelompok B. misalnya kelompok A mendapatkan pengajar dengan metode mixing dan Kelompok B dengan tatap Muka. Untuk untuk out kita menggunakan uji independent t test.

Bisnis

Si pengusaha dapat membandingkan promosi dengan media social dengan media massa. Apakah ada perbedaan rata-raat antara kedua metode promosi tersebut

Sebelum melakukan uji ini adalah ;

Dua grup tersebut harus indepenendent

Data harus tersebar normal

Homogenitas variance keduanya mempunyai variasi yang sama

Kita akan memetapkan hipotesis sebagai ebrikut

Ho kedua grup tidak berbeda

Ha kedua grup berbeda

 

dalam uji t akan mendapatkan angka. KIta harus memperhatikan kalau nilai t mutlak nilai t mutlak itu maksudnya kalau nilai itu tiak melihat apakah positif atau negatif . Semakin besar menunjukkan adanya perbedaan antara dua grup tersebut.

Prosedur melakukan test dalam uji independent t sample adalah sebagai beirkut

Kita membuat vector misalnya nilai kelas untuk mahasiswa yang melakukan pengajaran mixing dan B merupakan kelompok mahasiswa yang mendapatkan pengajaran tatap muka.

 

> mhsA=c(75,80,87,89,90,95,76,45,90,100,98)

> mhsB=c(45,50,67,89,90,75,66,45,90,80,98)

> t.test(mhsA,mhsB)

 

        Welch Two Sample t-test

 

data:  mhsA and mhsB

t = 1.5937, df = 19.081, p-value = 0.1274

alternative hypothesis: true difference in means is not equal to 0

95 percent confidence interval:

 -3.698456 27.334820

sample estimates:

mean of x mean of y

 84.09091  72.27273

 

 

 

Membuat Box Plot di Rstudio

 Salah satu bentuk penyajian data dalam Rstudio adalah boxplot. Mungkin Boxplot ini menjadi hal yang cukup sulit karena membacanya butuh pengetahuan. Sesuai dengan namanya box plot adalah grafik kotak. Grafik kotak ini cukup penting dalam bagian statistik deskriptif yang dapat melihat persebaran data. Ada bagian whiskers yang seperti garis dari tengah. Garis ini menggambarkan daripada perbandingan dari kelompok dari yang ditunjuk. 


Untuk membuat boxplot maka kita bisa membuat  data atau kata yang lebih tepat adalah menyediakan data dari minimal dua kelompok. Tiga kelompok juga bisa dimungkinkan. Dari garis yang ada di tengah kota menunjukkan nilia media. Garis kotak dibawah adalah menunjukkan kuartil satu sedangkan garis atas adalah kuartil tiga. 


Setelah itu kita gunakan perintah boxplot. saya sudah menyiapkan dari tabel tersebut data yang kita butuhkan. untuk membuat box plot kita memerlukan beberapa set data. Satu set data juga bisa setelah itu kita bisa membuat data 

Contoh saya membuat boxplot dengan satu variabel saja maka hasilnya seperti ini;

> boxplot(iris$Sepal.Length)

Box plot juga digunakan untuk beberapa kategori bukan hanya satu saja. Tabel ini bisa digunakan untuk beberapa hal seperti uji non parametrik mann whitney, krusskall waliis dan lain lain.

Bagian diatas adalah bagian bentuk sederhana. kita bisa menambah judul dari boxplot kita dan jua kita bisa mewarnai grafik agar lebih cantik. 

> boxplot(iris$Sepal.Length,iris$Species,main='box plot data bunga Iris',col=c("red","green"))




Minggu, 21 Juli 2024

Uji Kendal Tau statistik non parametrik

 

Dalam buku Andi Hakim Nasution, Korelasi Kendal Tau dimasukkkan pada bagian statistik non parametrik yang tentu berbeda. Kalau dalam regresi Kendal tau kita mencari hubungan antara korelasi yang positif dengan nilai yang positif positif dan begitu juga yang negatif dengan nilai yang negatif-negatif. Sementara untuk Regresi Spearman kita harus mencari dulu peringkat atau ordinal atau rank yang akan melihat terlebih dahulu adakah hubungan antara kedua variable tersebut.

K juga memeriksa apakah itu yang namanya Kendal Tau. Ini adalah sebuah korelasi yang dibangun atas dasar adanya data yang tidak tersebar dengan normal.

Kendal Tau juga mengukur seberapa besar hubungan antara data ordinal yang telah disiapkan. Maka jika ada data yang ada makakita bisa membuat korelasi seperti ini . Berikut perhitungan dalam Korelasi Kendal Tau adalah seperti ini:

Tau = (Nc-Nd)/1/2n(n-1)

 

Dimana

Nc = Nomor Concordant

Nd = Nomor Discordant

N =  jumlah pasangan

Hasil dari Kendal Tau akan seperti ini : nilai mendekati positif satu adalah korleasi yang sempurna sedngkan negative mendekati satu adalah nilai hubungan yang tidak sempurna.



#Uji Non Paramterik Kendall Tau
# Larger sample data
f
<- c(12, 14, 22, 10, 8, 25, 16, 18, 20, 30)
g
<- c(3, 5, 7, 1, 2, 6, 4, 8, 9, 10)

# Perform Kendall's Tau test
result
<- cor.test(f, g, method = "kendall")

# Print the result
print(result)

##
##  Kendall's rank correlation tau
##
## data:  f and g
## T = 38, p-value = 0.004687
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau
## 0.6888889

# Load the ggplot2 library for visualization
library(ggplot2)

## Warning: package 'ggplot2' was built under R version 4.3.1

# Create a data frame
data
<- data.frame(f, g)

# Scatter plot
ggplot(data, aes(x=f, y=g)) +
 
geom_point() +
 
geom_smooth(method = "lm", se = FALSE, color = "blue") +
 
labs(title = "Scatter Plot with Kendall's Tau",
      
f = "Variable X",
      
g = "Variable Y")

## `geom_smooth()` using formula = 'y ~ x'

Jumat, 19 Juli 2024

Membuat Diagram dahan atau Grafik Daun di Rstudio

 Grafik daun adalah suatu grafik yang digunakan dalam ilmu statistik ia melihat atau mewakilkan sumbu x dengan sumbu y di mana sumbu x itu adalah nilai dari frekuensi suatu kategori yang diwakilkan oleh nilai y. Grafik ini disusun berdasarkan nilai-nilai dari data yang tersusun rapi menurut distribusi dan grafik ini digunakan untuk suatu distribusi yang kompleks. Biasanya penggunaan grafik ini hanya untuk distribusi nilai yang kompleks dan juga untuk analisis regresi dan juga analisis frekuensi.


Adapun grafik daun ini mempunyai keuntungan yaitu memudahkan visualisasi dari data yang telah kita tampilkan tersebut tetapi ia mempunyai beberapa keterangan yaitu seperti sulit untuk melihat jangkauan dari data titik kelebihan itu lainnya adalah dia bisa melihat nilai minimum kemudian juga nilai maksimum dan juga modus dan juga bagus untuk perbandingan dari dua pasangan data. Kekurangan lain dari data ini adalah kartu grafik ini adalah kalau penggunaan pada jumlah data yang banyak.

Grafik ini juga terdiri dari dua komponen yaitu batang dan daun yang menjadi batang itu adalah yang menunjukkan golongan dari data frekuensi tersebut nah kemudian juga yang menjadi daun adalah nilai dari belakang golongan tersebut titiknya karenanya mungkin sebagian dari kita agak merasa aneh dengan grafik tersebut kemudian kalau kita ingin membuat data tersebut kita akan lakukan dengan menyusun terlebih dahulu batang batang jadi kalau seperti di pohon itu batang itu merupakan hal yang utama terlebih dahulu tetapi dalam grafik ini tidak ada cabang atau ranting tetapi melainkan hanya Batang dari daun kemudian dari batang daun itu akan terdiri dari nilai-nilai akhir dari si grafik tersebut sehingga muncul disusun dari batang yang paling angkanya kecil di atas di pucuk sampai yang di belakang yang berada di bawah titik nah Anda bisa lihat kalau anda bayangkan jumlah data tersebut yang banyak maka akan semakin sulit untuk menggambarkan data tersebut.

Wa kalau dalam penggunaan regresi maka tentu berbeda dengan nilai frekuensi tersebut dalam prinsip ini juga bisa dilakukan pembuatan grafik daun cuma agak unik terlebih dahulu menggunakan sesuatu yang manual apalagi regresinya bisa lebih dari dua variabel tentu ini akan merepotkan Anda nah yang menjadi batang dalam grafik daun regresi adalah nilai prediksi yang dihasilkan oleh regresi tersebut kemudian yang menjadi daun itu adalah nilai dari residu yaitu yang merupakan selisih antara prediksi dengan nilai yang sebenarnya. Tentu setiap daun hanya memiliki satu helai saja kekurangan karena hanya ada satu residu untuk satu nilai prediksi.

> #membuat vector data nilai kelas statistika
> nilaistatistika = c(78,45,67,76,55,68,59,42,74,64)
>#membuat perintah grafik daun 
> stem(nilaistatistika)

  The decimal point is 1 digit(s) to the right of the |

  4 | 25
  5 | 59
  6 | 478
  7 | 468

dapat kita lihat nilai tersebut adalah 4 nilai dari puluhan yang merupakan nilai dari stataistika sendagnkan 2 dan 5 adalah mewakili nilia 42 dan 45 dan seterusnya ke bawag 

Senin, 08 Juli 2024

Uji Tanda atau Sign Test pada RStudio

 salah satu uji parametrik tabgf kita ketahui adalah uji tanda atau sign test . Dalam uji ini kita bisa memberikan penialain dengan tanda karenanya uji ini dinamakan uji tanda. Kita memberikan nilai teresbeut untuk membedakan antara nilai yang ada dan menguji apakah nilai tersebut 

menurut hipotesis tersebut dalam kasus ini kita menentukan terlebih dahulu nilai mediannya . Mungkin ini yang sulit karena harsu mengetahui datanya mengenai median itu sendiri. JIka anda ingin melakukan uji ini maka hal seperti ini bisa dilakukan 

#uji Sign Test R Studio

height <- c(158, 162, 159, 161, 160, 157, 163, 160, 164, 159)

median_hypothesis <- 160

signs <- sign(height - median_hypothesis)

positive_signs <- sum(signs == 1)

negative_signs <- sum(signs == -1)



Hipotesis nol adalah nilai median tinngi badan sebesar 160 

Ha Nilai mmedian tinggi badan bukan 160 


Dari perhtiungan nilai p leboh dari 0,5 maka kita menerima Ho bahwa tinggi badan sebesar 160 cm


Selasa, 14 Mei 2024

Membuat diagram scatter

 Untuk mengetahui hubungan antara dua variabel baik antara variabel dependend dan independen maupun variabel independen adalah menggunakan scatter diagram. ini mudah sekali dengan menyusun data terlebih dahulu ke dalam tabel maka kita bisa untuk membuat scatter diagram. 


Kalau hanya sekitar 10 atau 20 data maka itu tidak membuat suatu yang sulit sekali untuk membuat scatter diagram seperti itu akan tetapi kalau begitu banyak maka itu akan menjadi masalah sendiri. maka pilihannya adalah dengan membuat scatter diagarm dari rstudio. 


Kita bisa membuat data terlebih dahulu dengan mmebuat vektor antara dua hubungan tersebut semisal saya membuat hubungan antara nilai siswa dengan jam belajar. Angka ini adalah angka yang fiktif dan bisa saja ini untuk membuat suatu angkanya





> nilaiuts1=c(30,40,50,30,60,80,90,76,67,75)

> lamabelajar1=c(2,2.5,3,4,5,2,6,6,3,4)

> plot(lamabelajar1,nilaiuts1, main="Scatterplot Nilai UTS dan Lama Belajar",

+      xlab="lama belajar ", ylab="Nilai UTS ", pch=19)

 


How to Construct a Panel Dataset from Scratch in R

  Managing panel data in RStudio to estimate regression equations and determine the effect of independent variables on dependent variables. ...