Analisis Regresi Untuk Mengetahui Apakah Terdapat Pengaruh Variabel Produk Terhadap Keputusan Konsumen Membeli Produk

Khalishatinnisaa’

31/5/2023

Notes Theme: - Kelas A: cayman
- Kelas B: tactile
- Kelas C: architect
- Kelas D: hpstr

Library:

> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")

1 PENDAHULUAN

1.1 Latar Belakang

Penggunaan statistika sangat diperlukan dalam penelitian di semua bidang ilmu apapun yang menggunakan perhitungan-perhitungan. Hasil sebuah penelitian dipengaruhi oleh penggunaan satatistika dalam mengolah data penelitian. dalam statistika terdapat metode metode analisis yaitu analisis regresi. tujuan dari analisis data adalah untuk memodelkan hubungan variabel dan model tersebut digunakan untuk memprediksi nilai variabel dependen berdasarkan nilai variabel independen. analisis regresi merupakan sebuah metode statistika yang berguna untuk memahami hubungan antara satu variabel dependen (variabel respon) dan satu atau lebih variabel independen (variabel prediktor).

2 TINJAUAN PUSTAKA

2.1 Analisis Regresi

Analisis regresi adalah metode analisis yang digunakan untuk membuat suatu persamaan untuk memprediksi nilai variabel terikat dan variabel bebas dalam persamaan tersebut.Persamaan regresi linear dapat diekspresikan dalam persamaan berikut:

Y = β0+β1x1+β2x+…+βnxn

Y = variable tak bebas (nilai variabel yang akan diprediksi)

a = konstanta b1,b2,…, bn = nilai koefisien regresi X1,X2,… X = variable bebas

2.2 Asumsi-Asumsi Dalam Analisis Regresi

terdapat beberapa uji asumsi yang digunakan analisi regresi yaitu : 1. Asumsi Normalitas 2. asumsi linearitas 3. asumsi homoskedastisitas 4. asumsi autokorelasi

3 SOURCE CODE

3.1 Library

> # install.packages(readxl)
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
> # install.packages(tseries)
> # install.packages(lmtest)

3.2 Data

> #Bangkitkan X dan Y
> library(readxl)
> data <- read_excel("C:/Users/LENOVO/Downloads/data mini projek.xlsx")
> View(data)
> X <- data$X
> X
 [1] 32 36 31 38 29 35 33 30 32 36 31 31 36 37 38 30 30 30 33 32 43 35 36 32 32
[26] 34 32 34 35 37
> Y <- data$Y
> Y
 [1] 34 38 34 40 30 40 40 34 35 39 33 32 42 40 42 32 34 36 37 36 37 36 40 33 34
[26] 36 37 38 42 41
> 
> #Bentuk Dataframe dari X dan Y
> df <- data.frame(X, Y)
> df
    X  Y
1  32 34
2  36 38
3  31 34
4  38 40
5  29 30
6  35 40
7  33 40
8  30 34
9  32 35
10 36 39
11 31 33
12 31 32
13 36 42
14 37 40
15 38 42
16 30 32
17 30 34
18 30 36
19 33 37
20 32 36
21 43 37
22 35 36
23 36 40
24 32 33
25 32 34
26 34 36
27 32 37
28 34 38
29 35 42
30 37 41
> n <- dim(df)[1]
> n
[1] 30
> k <- dim(df)[2]
> k
[1] 2
> mX <- matrix(c(rep(1,n),X),nrow=n)
> mX
      [,1] [,2]
 [1,]    1   32
 [2,]    1   36
 [3,]    1   31
 [4,]    1   38
 [5,]    1   29
 [6,]    1   35
 [7,]    1   33
 [8,]    1   30
 [9,]    1   32
[10,]    1   36
[11,]    1   31
[12,]    1   31
[13,]    1   36
[14,]    1   37
[15,]    1   38
[16,]    1   30
[17,]    1   30
[18,]    1   30
[19,]    1   33
[20,]    1   32
[21,]    1   43
[22,]    1   35
[23,]    1   36
[24,]    1   32
[25,]    1   32
[26,]    1   34
[27,]    1   32
[28,]    1   34
[29,]    1   35
[30,]    1   37

3.3 melakukan analisis regresi

> #Analisis pendahuluan untuk mengetahui hubungan X dan Y
> scatter.smooth(x = df$X, y = df$Y, 
+                main="Hubungan Variabel X dan Y", 
+                xlab = "X", ylab = "Y")

> cor(x = X, y = Y, method = "pearson")
[1] 0.723878
> cor(x = X, y = Y, method = "kendall")
[1] 0.6741876
> cor(x = X, y = Y, method = "spearman")
[1] 0.8285942
> 
> #Analisis Regresi Manual 
> ybar <- rep(mean(Y),n)
> ybar
 [1] 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333
 [9] 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333
[17] 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333
[25] 36.73333 36.73333 36.73333 36.73333 36.73333 36.73333
> XY <- X*Y
> XY
 [1] 1088 1368 1054 1520  870 1400 1320 1020 1120 1404 1023  992 1512 1480 1596
[16]  960 1020 1080 1221 1152 1591 1260 1440 1056 1088 1224 1184 1292 1470 1517
> X2 <- X^2
> X2
 [1] 1024 1296  961 1444  841 1225 1089  900 1024 1296  961  961 1296 1369 1444
[16]  900  900  900 1089 1024 1849 1225 1296 1024 1024 1156 1024 1156 1225 1369
> Y2 <- Y^2
> Y2
 [1] 1156 1444 1156 1600  900 1600 1600 1156 1225 1521 1089 1024 1764 1600 1764
[16] 1024 1156 1296 1369 1296 1369 1296 1600 1089 1156 1296 1369 1444 1764 1681
> 
> #penduga koefisien
> b0 <- ((sum(Y)*sum(X2)-sum(X)*sum(XY))/(n*sum(X2)-sum(X)^2))
> b0
[1] 10.91963
> b1 <- (n*sum(XY)-sum(X)*sum(Y))/(n*sum(X2)-sum(X)^2)
> b1
[1] 0.7667436
> Yduga <- b0 + b1*X
> Yduga
 [1] 35.45543 38.52240 34.68868 40.05589 33.15520 37.75566 36.22217 33.92194
 [9] 35.45543 38.52240 34.68868 34.68868 38.52240 39.28915 40.05589 33.92194
[17] 33.92194 33.92194 36.22217 35.45543 43.88961 37.75566 38.52240 35.45543
[25] 35.45543 36.98891 35.45543 36.98891 37.75566 39.28915
> 
> #menghitung analisis ragam
> (JKreg <- sum((Yduga-ybar)^2))
[1] 169.7059
> (JKgalat <- sum((Y-Yduga)^2))
[1] 154.1607
> (JKtotal <- JKreg +JKgalat)
[1] 323.8667
> (JK <- c(JKreg, JKgalat, JKtotal))
[1] 169.7059 154.1607 323.8667
> SK <- c("Regresi", "Galat", "Total")
> 
> (dbtot <- n-1)
[1] 29
> (dbreg <- k-1)
[1] 1
> (dbgalat <- dbtot - dbreg)
[1] 28
> db <- c(dbreg, dbgalat, dbtot)
> 
> (KTreg <- JKreg/dbreg)
[1] 169.7059
> (KTgalat <- JKgalat/dbgalat)
[1] 5.505741
> (KTtotal <- "-")
[1] "-"
> KT <- c(KTreg, KTgalat,KTtotal)
> 
> #uji F
> (Fhit <- c((KTreg/KTgalat), '-', '-'))
[1] "30.8234509235234" "-"                "-"               
> 
> anreg <- data.frame(SK, JK, db, KT, Fhit)
> 
> #menghitung p-value
> pf<-pf(KTreg/KTgalat, dbgalat, dbreg, lower.tail=FALSE)    
> pf
[1] 0.1416435
> 
> #uji T
> var_cov<-KTgalat*solve(t(mX) %*% mX)   #mencari ragam peragam
> var_cov
           [,1]       [,2]
[1,] 21.8017159 -0.6421245
[2,] -0.6421245  0.0190730
> 
> sd<-rep(0,k)
> for(i in 1:k){
+ sd[i]<-sqrt(var_cov[i,i])}
> sd
[1] 4.669231 0.138105
> 
> t <- c(b0,b1)/sd
> t
[1] 2.338636 5.551887
> 
> R2 <- JKtotal/JKreg
> R2
[1] 1.908399
> 
> alpha<-0.05
> ttabel<-qt(alpha/2,anreg$db[2], lower.tail=FALSE)
> ttabel
[1] 2.048407
> 
> batasbawah_sk<-c(b0,b1)-(ttabel*sd)   #menghitung batas bawah selang
> batasbawah_sk
[1] 1.3551449 0.4838483
> 
> batasatas_sk<-c(b0,b1)+(ttabel*sd)   #menghitung batas atas selang
> batasatas_sk
[1] 20.484116  1.049639
>  
> selangkepercayaan<-cbind(batasbawah_sk, batasatas_sk)   #membuat selang kepercayaan berdasarkan batas atas dan batas bawah
> selangkepercayaan
     batasbawah_sk batasatas_sk
[1,]     1.3551449    20.484116
[2,]     0.4838483     1.049639
> 
> #Analisis Regresi 
> reg1 <-lm(data = df, Y~X)
> model <- summary(reg1)
> model

Call:
lm(formula = Y ~ X, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.8896 -1.4554  0.0781  1.5278  4.2443 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.9196     4.6692   2.339   0.0267 *  
X             0.7667     0.1381   5.552 6.15e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.346 on 28 degrees of freedom
Multiple R-squared:  0.524, Adjusted R-squared:  0.507 
F-statistic: 30.82 on 1 and 28 DF,  p-value: 6.152e-06

3.4 Asumsi

> #membentuk matriks
> data <- read_excel("C:/Users/LENOVO/Downloads/data mini projek.xlsx")
> reg1 <- lm(Y~X,data=data) 
> summary(reg1)

Call:
lm(formula = Y ~ X, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.8896 -1.4554  0.0781  1.5278  4.2443 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.9196     4.6692   2.339   0.0267 *  
X             0.7667     0.1381   5.552 6.15e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.346 on 28 degrees of freedom
Multiple R-squared:  0.524, Adjusted R-squared:  0.507 
F-statistic: 30.82 on 1 and 28 DF,  p-value: 6.152e-06
> 
> 
> # ASUMSI NORMALITAS
> library(tseries)
> sisa <- residuals(reg1)
> jarque.bera.test(sisa)

    Jarque Bera Test

data:  sisa
X-squared = 3.1681, df = 2, p-value = 0.2051
> shapiro.test(sisa)

    Shapiro-Wilk normality test

data:  sisa
W = 0.9658, p-value = 0.4316
> 
> # ASUMSI HOMOSKEDASTISITAS
> library(lmtest)
> bptest(reg1)

    studentized Breusch-Pagan test

data:  reg1
BP = 6.9747, df = 1, p-value = 0.008267
> 
> #ASUMSI NONAUTOKORELASI
> dwtest(reg1)

    Durbin-Watson test

data:  reg1
DW = 1.7331, p-value = 0.2281
alternative hypothesis: true autocorrelation is greater than 0

4 HASIL DAN PEMBAHASAN

4.1 Analisis Regresi

4.1.1 hipotesis

Ho : b = 0, Variabel produk tidak berpengaruh signifikan terhadap keputusan konsumen membeli deterjen merek “SUPERCLEAN”.

H1 : b != 0, Variabel produk berpengaruh signifikan terhadap keputusan konsumen membeli deterjen merek “SUPERCLEAN”.

X = produk

Y = keputusan konsumen

4.1.2 analisis Regresi

> #Analisis Regresi 
> reg1 <-lm(data = df, Y~X)
> model <- summary(reg1)
> model

Call:
lm(formula = Y ~ X, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.8896 -1.4554  0.0781  1.5278  4.2443 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.9196     4.6692   2.339   0.0267 *  
X             0.7667     0.1381   5.552 6.15e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.346 on 28 degrees of freedom
Multiple R-squared:  0.524, Adjusted R-squared:  0.507 
F-statistic: 30.82 on 1 and 28 DF,  p-value: 6.152e-06

Berdasarkan Data yang digunakan, diperoleh model regresi sebagai berikut :

\[ Y = 10.9196 + 0,7667 X \]

dari output diatas didiperoleh nilai R-square = 0.524, Adjusted R-squared: 0.507, F-statistic: 30.82 , p-value: 6.152e-06

4.1.3 Asumsi

  1. asumsi normalitas

H0: Sampel berasal dari populasi berdistribusi normal

H1: Sampel tidak berasal dari populasi berdistribusi normal Jarque Bera Test \[ X-squared = 3.1681, df = 2, p-value = 0.2051 \] Shapiro-Wilk normality test \[ W = 0.9658, p-value = 0.4316 \]

  1. Uji Homoskedastisitas

H0: Variansi galat bersifat homoskedastisitas

H1: Variansi galat bersifat heteroskedastisitas studentized Breusch-Pagan test \[ BP = 6.9747, df = 1, p-value = 0.008267 \]

  1. Uji Nonautokorelasi

H0: Tidak terjadi autokorelasi

H1: Terjadi autokorelasi Durbin-Watson test \[ DW = 1.7331, p-value = 0.2281 \] \[ alternative hypothesis: true autocorrelation is greater than 0 \]

5 KESIMPULAN

Analisis regresi akan memberikan gambaran tentang hubungan antara variabel independen dan dependen, seberapa signifikan variabel independen mempengaruhi variabel dependen, kualitas penjelasan model, dan asumsi-asumsi yang terpenuhi. Analisis regresi dapat dilakukan jika memenuhi asumsi normalitas, asumsi homoskedastisitas, asumsi non autokorelasi. 10.9196 adalah intercept atau nilai Y ketika X = 0. Dalam konteks ini, jika X = 0, maka nilai Y diperkirakan akan sebesar 10.9196. 0.7667 adalah koefisien regresi atau perubahan dalam nilai Y yang terkait dengan perubahan satu unit dalam variabel X. Dalam konteks ini, untuk setiap peningkatan satu unit dalam variabel X, diperkirakan akan ada peningkatan sebesar 0.7667 dalam nilai Y. Nilai R2 yaitu Multiple R-squared = 0,524 = 52,4 %. Artinya kemampuan model untuk menjelaskan masalah sebesar 52,4 %, sedangkan sisanya yaitu 47,6 % dijelaskan oleh faktor-faktor lain atau variabel-variabel lain yang belum di masukan ke dalam model.