R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

ANOVA

library(readxl) 
data <- read_excel("data.xlsx") 
head(data)
## # A tibble: 6 × 8
##   Responden Jumlah_Produksi Luas_Lahan Jumlah_Pohon Pupuk_Kandang Pupuk_Phonska
##       <dbl>           <dbl>      <dbl>        <dbl>         <dbl>         <dbl>
## 1         1             200        900           20            50            10
## 2         2             500        500           50           250            25
## 3         3             500        500           50           250            25
## 4         4             900        900           60           450            45
## 5         5             900        900           60           450            45
## 6         6             300        510           30           150            15
## # … with 2 more variables: Pestisida <dbl>, Tenaga_Kerja <dbl>

DATA

Y <- data$Jumlah_Produksi 
head(Y) 
## [1] 200 500 500 900 900 300
X0 <- rep(1,60) 
X1 <- data$Luas_Lahan 
X2 <- data$Jumlah_Pohon 
X3 <- data$Pupuk_Kandang 
X4 <- data$Pupuk_Phonska 
X5 <- data$Pestisida 
X6 <- data$Tenaga_Kerja 
X <- cbind(X0, X1, X2, X3, X4, X5, X6) 
head(X)
##      X0  X1 X2  X3 X4   X5 X6
## [1,]  1 900 20  50 10  600 27
## [2,]  1 500 50 250 25 1600 21
## [3,]  1 500 50 250 25 1600 33
## [4,]  1 900 60 450 45 3600 40
## [5,]  1 900 60 450 45 3600 50
## [6,]  1 510 30 150 15 1200 30

ANOVA MANUAL

##MEMBENTUK MODEL REGRESI TERLEBIH DAHULU
A <- t(X)%*%X 
IA <- solve(A) 

b <- IA%*%(t(X)%*%Y) 
b
##            [,1]
## X0  8.572028519
## X1 -0.002541471
## X2  1.575789699
## X3  0.610594706
## X4  4.542999170
## X5  0.080771328
## X6  0.328857760
## MENGHITUNG ANOVA
JKReg <- t(b)%*%t(X)%*%Y-(t(Y)%*%rep(1,nrow(data)))^2/60
JKReg
##         [,1]
## [1,] 2714617
JKRes <- t(Y)%*%Y-t(b)%*%t(X)%*%Y
JKRes
##          [,1]
## [1,] 21841.34
JKTot <- t(Y)%*%Y-(t(Y)%*%rep(1,nrow(data)))^2/60
JKTot
##         [,1]
## [1,] 2736458
JK <- c(JKReg[1,1], JKRes[1,1], JKTot[1,1])
JK
## [1] 2714617.00   21841.34 2736458.33
dbreg <- nrow(b)-1
dbreg
## [1] 6
dbres <- nrow(data)-nrow(b)
dbres
## [1] 53
dbtot <- nrow(data)-1
dbtot
## [1] 59
db <- c(dbreg,dbres,dbtot)
db
## [1]  6 53 59
KTReg <- JKReg/dbreg
KTReg
##          [,1]
## [1,] 452436.2
KTRes <- JKRes/dbres
KTRes
##          [,1]
## [1,] 412.1007
KT <- c(KTReg[1,1], KTRes[1,1])
KT
## [1] 452436.1662    412.1007
Fvalue <- KTReg[1,1]/KTRes[1,1]
Fvalue
## [1] 1097.878
Fpvalue <- pf(Fvalue, dbreg, dbres, lower.tail = FALSE)
Fpvalue
## [1] 9.813766e-54

MEMBUAT TABEL ANOVA

rowreg <- c(dbreg, JKReg, KTReg, Fvalue, Fpvalue)
rowres <- c(dbres, JKRes, KTRes, "-", "-")
rowtot <- c(dbtot, JKTot, "-", "-", "-")
TabelAnova <- data.frame(rbind(rowreg,rowres,rowtot))
colnames (TabelAnova) = c("db", "SS", "MS", "F", "p-value")
rownames (TabelAnova) = c("Regresi", "Error", "Total")
TabelAnova
##         db               SS               MS                F
## Regresi  6  2714616.9973172 452436.166219534 1097.87774850059
## Error   53 21841.3360161316 412.100679549652                -
## Total   59 2736458.33333333                -                -
##                      p-value
## Regresi 9.81376571858502e-54
## Error                      -
## Total                      -

TABEL ANOVA LANGSUNG

TabelAnova <- aov(Y~X1+X2+X3+X4+X5+X6, data=data)
summary(TabelAnova)
##             Df  Sum Sq Mean Sq F value   Pr(>F)    
## X1           1  214562  214562  520.65  < 2e-16 ***
## X2           1 2143350 2143350 5201.04  < 2e-16 ***
## X3           1  311227  311227  755.22  < 2e-16 ***
## X4           1   20106   20106   48.79 4.77e-09 ***
## X5           1   25154   25154   61.04 2.23e-10 ***
## X6           1     218     218    0.53     0.47    
## Residuals   53   21841     412                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1