Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Tugas SAE Pemodelan Pertemuan 4

Kautsar Hilmi Izzuddin

212011497/4SE5
2024-02-13
#NOMOR SATU
Menggunakan data Milk dengan MSE-FH
##Attach Data
library(sae)

data(milk)
attach(milk)

# Estimated MSEs of EB estimators


resultREML <- mseFH(yi ~ as.factor(MajorArea), SD^2)
resultREML #nilai MSE REML

## $est
## $est$eblup
## [,1]
## 1 1.0219703
## 2 1.0476018
## 3 1.0679513
## 4 0.7608170
## 5 0.8461574
## 6 0.9743727
## 7 1.0584523
## 8 1.0977762
## 9 1.2215449
## 10 1.1951455
## 11 0.7852155
## 12 1.2139456
## 13 1.2096593
## 14 0.9834967
## 15 1.1864247
## 16 1.1556982
## 17 1.2263411
## 18 1.2856486
## 19 1.2363247
## 20 1.2349600
## 21 1.0903019
## 22 1.1923057
## 23 1.1216470
## 24 1.2230296
## 25 1.1938054
## 26 0.7627195
## 27 0.7649550
## 28 0.7338443
## 29 0.7699294
## 30 0.6134418
## 31 0.7695558
## 32 0.7958250
## 33 0.7723187
## 34 0.6102302
## 35 0.7001782
## 36 0.7592787
## 37 0.5298867
## 38 0.7434466
## 39 0.7548996
## 40 0.7701918
## 41 0.7481164
## 42 0.8040773
## 43 0.6810870
##
## $est$fit
## $est$fit$method
## [1] "REML"
##
## $est$fit$convergence
## [1] TRUE
##
## $est$fit$iterations
## [1] 4
##
## $est$fit$estcoef
## beta std.error tvalue pvalue
## X(Intercept) 0.9681890 0.06936208 13.958476 2.793443e-44
## Xas.factor(MajorArea)2 0.1327801 0.10300072 1.289119 1.973569e-01
## Xas.factor(MajorArea)3 0.2269462 0.09232981 2.457995 1.397151e-02
## Xas.factor(MajorArea)4 -0.2413011 0.08161707 -2.956503 3.111496e-03
##
## $est$fit$refvar
## [1] 0.01855022
##
## $est$fit$goodness
## loglike AIC BIC KIC
## 12.677478 -15.354956 -6.548956 -10.354956
##
##
##
## $mse
## [1] 0.013460220 0.005372876 0.005701990 0.008541740 0.009579594
0.011670632
## [7] 0.015926137 0.010586518 0.014184043 0.014901472 0.007694262
0.016336469
## [13] 0.012562726 0.012117378 0.012031229 0.011709147 0.010859780
0.013690860
## [19] 0.011034674 0.013079686 0.009948636 0.017243977 0.011292325
0.013625297
## [25] 0.008065787 0.009205133 0.009205133 0.016476912 0.007800626
0.006098668
## [31] 0.015441564 0.014657866 0.009024699 0.003870786 0.007800626
0.009646139
## [37] 0.006404335 0.010155645 0.007209937 0.008470277 0.005484860
0.009205133
## [43] 0.009903626

#1. Mencari Gamma Manual


var_v = resultREML$est$fit$refvar
var_e = SD^2
g = var_v/(var_v+var_e)
g #hasil gamma

## [1] 0.4111379 0.7434893 0.7291977 0.6095786 0.5670905 0.4826862 0.3125342


## [8] 0.5349088 0.3965907 0.3692746 0.6497400 0.3146707 0.4585485 0.4756562
## [15] 0.4552065 0.4687332 0.5044218 0.3853853 0.4970688 0.4111379 0.5427974
## [22] 0.2331624 0.4862415 0.3881512 0.6227786 0.5588894 0.5588894 0.2166292
## [29] 0.6227786 0.7007694 0.2681628 0.3062345 0.5670905 0.8051584 0.6227786
## [36] 0.5388399 0.6866836 0.5156532 0.6497400 0.5922951 0.7291977 0.5588894
## [43] 0.5271264

##2. Menghitung penduga EBLUP Manual


## Matriks Var Major Area
# Generate jumlah baris
baris <- length(MajorArea)

# Membuat matriks untuk diisi var MajorArea


mat <- matrix(0, nrow = baris, ncol = 4)

# Mengisi matriks sesuai MajorArea


for (i in 1:baris) {
mat[i, 1] <- 1 # Kolom pertama = 1
mat[i, MajorArea[i]] <- 1 # Kolom sesuai dengan kategori = 1
}

# Generate koefisien estimasi


b = resultREML$est$fit$estcoef$beta

# Menghitung EBLUP secara manual


EBLUP_manual = (g*yi)+((1-g)*mat%*%b)
EBLUP_manual
## [,1]
## [1,] 1.0219703
## [2,] 1.0476018
## [3,] 1.0679513
## [4,] 0.7608170
## [5,] 0.8461574
## [6,] 0.9743727
## [7,] 1.0584523
## [8,] 1.0977762
## [9,] 1.2215449
## [10,] 1.1951455
## [11,] 0.7852155
## [12,] 1.2139456
## [13,] 1.2096593
## [14,] 0.9834967
## [15,] 1.1864247
## [16,] 1.1556982
## [17,] 1.2263411
## [18,] 1.2856486
## [19,] 1.2363247
## [20,] 1.2349600
## [21,] 1.0903019
## [22,] 1.1923057
## [23,] 1.1216470
## [24,] 1.2230296
## [25,] 1.1938054
## [26,] 0.7627195
## [27,] 0.7649550
## [28,] 0.7338443
## [29,] 0.7699294
## [30,] 0.6134418
## [31,] 0.7695558
## [32,] 0.7958250
## [33,] 0.7723187
## [34,] 0.6102302
## [35,] 0.7001782
## [36,] 0.7592787
## [37,] 0.5298867
## [38,] 0.7434466
## [39,] 0.7548996
## [40,] 0.7701918
## [41,] 0.7481164
## [42,] 0.8040773
## [43,] 0.6810870

##3. Membandingkan penduga manual dengan hasil package


#Data perbandingan package dengan manual
banding = data.frame(resultREML$est$eblup,EBLUP_manual)
colnames(banding) <- c("EBLUP_Package", "EBLUP_Manual")
View(banding)
banding

## EBLUP_Package EBLUP_Manual
## 1 1.0219703 1.0219703
## 2 1.0476018 1.0476018
## 3 1.0679513 1.0679513
## 4 0.7608170 0.7608170
## 5 0.8461574 0.8461574
## 6 0.9743727 0.9743727
## 7 1.0584523 1.0584523
## 8 1.0977762 1.0977762
## 9 1.2215449 1.2215449
## 10 1.1951455 1.1951455
## 11 0.7852155 0.7852155
## 12 1.2139456 1.2139456
## 13 1.2096593 1.2096593
## 14 0.9834967 0.9834967
## 15 1.1864247 1.1864247
## 16 1.1556982 1.1556982
## 17 1.2263411 1.2263411
## 18 1.2856486 1.2856486
## 19 1.2363247 1.2363247
## 20 1.2349600 1.2349600
## 21 1.0903019 1.0903019
## 22 1.1923057 1.1923057
## 23 1.1216470 1.1216470
## 24 1.2230296 1.2230296
## 25 1.1938054 1.1938054
## 26 0.7627195 0.7627195
## 27 0.7649550 0.7649550
## 28 0.7338443 0.7338443
## 29 0.7699294 0.7699294
## 30 0.6134418 0.6134418
## 31 0.7695558 0.7695558
## 32 0.7958250 0.7958250
## 33 0.7723187 0.7723187
## 34 0.6102302 0.6102302
## 35 0.7001782 0.7001782
## 36 0.7592787 0.7592787
## 37 0.5298867 0.5298867
## 38 0.7434466 0.7434466
## 39 0.7548996 0.7548996
## 40 0.7701918 0.7701918
## 41 0.7481164 0.7481164
## 42 0.8040773 0.8040773
## 43 0.6810870 0.6810870
#Pengecekan apakah hasil package dg manual sama/tidak
banding$sama=round(banding$EBLUP_Package,7)==round(banding$EBLUP_Manual,7)
banding$sama

## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
TRUE
## [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
TRUE
## [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

Didapatkan hasil pendugaan perhitungan secara manual sesuai dengan perhitungan


package.
#NOMOR DUA
1. Menduga EBLUP menggunakan data pertemuan 3
# AREA LEVEL MODEL
## Banyaknya area
m = 30

Menentukan parameter
b0 = 1
b1 = 1
b2 = 1
b=c(b0,b1,b2)

Membangkitkan auxiliary variable


x1 = runif(m,2,7)
x2 = rnorm(m,5,2)
X = cbind(1,x1,x2)

Membangkitkan komponen acak


v = rnorm(m,0,1) # asumsi v dan e normal serta mu = 0 dan sigma^2 = 1
e = rnorm(m,0,1)
sigv = var(v)
sige = var(e)

Menghitung direct estimates


y = X%*%b+v+e
vardir = diag(e%*%t(e))
rse = sqrt(vardir)/y*100
data_direct=data.frame(y,vardir,rse,x1,x2)
names(data_direct) = c("Y", "Vardir", "RSE", "X1", "X2")
data_direct

## Y Vardir RSE X1 X2
## 1 13.876285 1.041959817 7.3561788 5.422282 7.4442028
## 2 10.836616 0.865485012 8.5849167 4.042743 6.1473155
## 3 14.248377 0.477937578 4.8519933 5.714617 5.7342609
## 4 8.597886 0.080957597 3.3093075 4.666676 3.2780606
## 5 13.897954 0.023341845 1.0993012 5.934210 6.8136980
## 6 12.979202 0.622274140 6.0777507 6.023444 4.1512103
## 7 10.861446 1.429792694 11.0090261 4.108523 3.2412057
## 8 9.303756 0.217854132 5.0167746 5.167835 2.6005800
## 9 6.667906 0.243088238 7.3942228 5.130324 0.2545533
## 10 11.469564 0.012431668 0.9721153 6.635289 2.0388513
## 11 14.156182 0.809498140 6.3556768 5.166092 7.5143317
## 12 5.754036 0.078929142 4.8825438 3.428852 1.9843552
## 13 8.927366 0.457485951 7.5764462 6.818143 3.9133003
## 14 10.303619 0.301641337 5.3303487 3.932456 4.1468473
## 15 7.754098 0.019003756 1.7778226 4.083421 2.1292132
## 16 9.768971 0.165234454 4.1610362 2.442746 7.7132914
## 17 10.937584 1.395346800 10.7998988 5.051492 4.4437022
## 18 3.032852 3.807361696 64.3369974 4.137711 1.0842776
## 19 6.852693 0.694828379 12.1640307 2.086399 4.8390999
## 20 11.935301 0.009551652 0.8188529 4.788931 5.7980468
## 21 9.875818 4.207340195 20.7697249 4.670124 2.5380611
## 22 11.354447 0.687227181 7.3010308 4.380050 5.8069428
## 23 10.954743 0.103549657 2.9374613 4.803954 5.3032914
## 24 12.068113 0.014813466 1.0085304 6.611011 4.4513667
## 25 16.288568 1.994681206 8.6706938 6.354709 6.6942975
## 26 11.929454 1.580175565 10.5373670 5.326463 6.8744129
## 27 14.632543 2.059991112 9.8087317 6.376427 5.9305728
## 28 7.680469 1.179491130 14.1403309 3.869256 5.0116246
## 29 8.153779 0.723508505 10.4318869 5.352991 3.1786811
## 30 10.756327 2.223259959 13.8621668 4.301570 5.3479367

library(sae)
REML2 <- mseFH(Y~X1+X2, Vardir, data = data_direct)
REML2

## $est
## $est$eblup
## [,1]
## 1 13.926254
## 2 10.892627
## 3 13.702151
## 4 8.635038
## 5 13.901479
## 6 12.406444
## 7 9.243124
## 8 9.249206
## 9 6.687296
## 10 11.454311
## 11 13.935936
## 12 5.791275
## 13 10.141070
## 14 9.939766
## 15 7.741707
## 16 9.865076
## 17 10.750491
## 18 5.665235
## 19 6.995146
## 20 11.931421
## 21 8.592186
## 22 11.224226
## 23 10.973795
## 24 12.078190
## 25 15.011838
## 26 12.818603
## 27 14.019847
## 28 8.816811
## 29 8.917291
## 30 10.588448
##
## $est$fit
## $est$fit$method
## [1] "REML"
##
## $est$fit$convergence
## [1] TRUE
##
## $est$fit$iterations
## [1] 6
##
## $est$fit$estcoef
## beta std.error tvalue pvalue
## X(Intercept) -0.1302374 1.0590587 -0.1229747 9.021271e-01
## XX1 1.2950610 0.1806659 7.1682652 7.595407e-13
## XX2 0.9504693 0.1089857 8.7210434 2.756498e-18
##
## $est$fit$refvar
## [1] 0.858683
##
## $est$fit$goodness
## loglike AIC BIC KIC
## -48.57634 105.15268 110.75747 109.15268
##
##
##
## $mse
## [1] 0.55541121 0.48878508 0.33948601 0.07619005 0.02300563 0.40218026
## [7] 0.60757193 0.18564537 0.21140554 0.01234623 0.48604508 0.07534197
## [13] 0.33853367 0.24132012 0.01877298 0.15333077 0.58673002 0.86851891
## [19] 0.47345668 0.00948536 0.80624591 0.42475504 0.09568099 0.01467466
## [25] 0.72733188 0.64668119 0.71738120 0.56110319 0.43615374 0.69130386
2. Menghitung RSE direct dan model SAE
RSE_direct = data_direct$RSE
RSE_EBLUP = sqrt(REML2$mse)/REML2$est$eblup*100

3. Membandingkan RSE & penduga direct dan SAE


Visualisasi
boxplot(RSE_direct,RSE_EBLUP)

plot(data_direct$Y, type="l")
lines(REML2$est$eblup, col="red")

plot(data_direct$Vardir, type="l")
lines(REML2$mse, col="red")
Berdasarkan grafik didapatkan nilai estimasi yang mendekati sama antara penduga
langsung dan model FH, serta nilai MSE yang lebih rendah untuk pemodelan SAE FH.

You might also like