pertemuan-6 general linear least
Post on 20-Dec-2015
217 Views
Preview:
DESCRIPTION
TRANSCRIPT
REGRESI LINIER KUADRAT TERKECIL SECARA UMUM
Regresi Polinomial
Misalkan kita ingin membuat kurva pencocokan dengan polinomial orde dua (kuadratik)
y=a0+a1 x+a2 x2+e
Untuk kasus ini, jumlah kuadrat residual dinyakatan dengan
Sr=∑i=1
n
( yi−a0−a1 xi−a2 xi2 )2
diferensialkan bentuk ini terhadap koefisien polinomial
∂ Sr
∂ a0
=−2∑ ( y i−a0−a1 xi−a2 xi2 )
∂ Sr
∂ a1
=−2∑ x i ( y i−a0−a1 x i−a2 x i2)
∂ Sr
∂ a2
=−2∑ x i2 ( y i−a0−a1 xi−a2 x i
2)
dengan mengambil semua bentuk turunan sama dengan nol, diperoleh
n a0+ (∑ x i )a1+(∑ x i2 )a2=∑ y i
(∑ x i )a0+(∑ x i2 )a1+(∑ xi
3 ) a2=∑ x i y i
(∑ xi2 ) a0+(∑ x i
3 )a1+(∑ x i4 )a2=∑ x i
2 y i
Untuk kasus polinomial derajat m
y=a0+a1 x+a2 x2+…+am xm+e
Jumlah kuadrat residualnya dapat diterapkan dengan cara yang serupa. Standar error estimasi
kemudian dinyatakan dengan
sy / x=√ Sr
n−(m+1)
Dapatkan regresi kuadratik kuadrat terkecil dari data berikut :
xi yi
0 2,11 7,72 13,63 27,24 40,95 61,1
Penyelesaian :
xi yi xi2 xi
3 xi4 xiyi xi
2yi
0 2,1 0 0 0 0 01 7,7 1 1 1 7,7 7,72 13,6 4 8 16 27,2 54,43 27,2 9 27 81 81,6 244,84 40,9 16 64 256 163,6 654,45 61,1 25 125 625 305,5 1527,5
15 152,6 55 225 979 585,6 2488,8
Diperoleh sistem linier simultan
[ 6 15 5515 55 22555 225 979]{a0
a1
a2}={ 152,6
585,62488,8}
selesaikan dengan menggunakan MATLAB
>> A = [6 15 55; 15 55 225; 55 225 979];
>> b = [152.6; 585.6; 2488.8];
>> x = inv(A)*b
x =
2.4786
2.3593
1.8607
Sehingga diperoleh regresi kuadratis kuadrat terkecil
y=2,4786+2,3593 x+1,8607 x2
Standar error estimasi dan koefisien determinasi ditentukan berikut
xi yi
0 2,1 544,44 0,143341 7,7 314,47 1,002802 13,6 140,03 1,081603 27,2 3,12 0,804974 40,9 239,22 0,619375 61,1 1272,11 0,09449
15 152,6 2513,39 3,74657
sy / x=√ Sr
n−(m+1)
sy / x=1,1175
r2=St−Sr
S t
r2=0,999
0 1 2 3 4 5 60
10
20
30
40
50
60
70
f(x) = 1.86071428571429 x² + 2.35928571428572 x + 2.47857142857142R² = 0.998509357298405
Regresi Linier Jamak
Regresi linier dapat diperluas untuk dalam bentuk fungsi y dengan dua variabel x1 dan x2
y=a0+a1 x1+a2 x2+e
Sr=∑i=1
n
( y i−a0−a1 x1 ,i−a2 x2 , i )2
dapatkan nilai Sr minimum
∂ Sr
∂ a0
=−2∑ ( y i−a0−a1 x1 ,i−a2 x2 , i )
∂ Sr
∂ a1
=−2∑ x1 ,i ( y i−a0−a1 x1, i−a2 x2 ,i )
∂ Sr
∂ a2
=−2∑ x2 ,i ( y i−a0−a1 x1, i−a2 x2 ,i )
dengan meminimumkan jumlah kuadrat residu, diperoleh
[ n ∑ x1 ,i ∑ x2 ,i
∑ x1, i ∑ x1 ,i2 ∑ x1 ,i x2 , i
∑ x2, i ∑ x1 ,i x2, i ∑ x2 ,i2 ]{a0
a1
a2}={ ∑ y i
∑ x1 , i y i
∑ x2 , i y i}
Gunakan regresi linier untuk mendapatkan kurva yang sesuai dengan data berikut
x1,i x2,i yi
0 0 52 1 10
2,5 2 91 3 04 6 37 2 27
16,5 14 54Penyelesaian
x1,i x2,i yi x1,i2 x1,ix2,i x2,i
2 x1,iyi x2,iyi
0 0 5 0 0 0 0 02 1 10 4 2 1 20 10
2,5 2 9 6,25 5 4 22,5 181 3 0 1 3 9 0 04 6 3 16 24 36 12 187 2 27 49 14 4 189 54
16,5 14 54 76,25 48 54 243,5 100
Dengan menggunakan MATLAB diperoleh nilai ai
>> A = [6 16.5 14; 16.5 76.25 48; 14 48 54];
>> b = [54; 243.5; 100];
>> a = inv(A)*b
a =
5.0000
4.0000
-3.0000
Persamaan regresi liniernya adalah
y=5+4 x1−3 x2
Regresi linier multiple dapat diaplikasikan menjadi bentuk pangkat, eksponensial, ataupun
bentuk fungsi lainnya.
LINIER KUADRAT TERKECIL SECARA UMUM
Model kuadrat terkecil linier secara umum dapat dinyatakan sebagai
y=a0 z0+a1 z1+a2 z2+…+am zm+e
Jika modelnya multiple regresi linier, z0 = 1, z1 = x1, z2 = x2, …, zm = xm, jika fungsinya satu
variabel, z0 = 1, z1 = x, z2 = x2, …, zm = xm. Fungsi hasil regresi juga dapat nonlinier, misalnya
y=a0+a1cos ( ωx )+a2 sin (ωx )
Bentuk umum, kemudian dapat dinyatakan dalam bentuk
{ y }= [ Z ] {a }+ {e }
dalam hal ini
[ Z ]=[ z01 z11 ⋯ zm1
z02 z12 ⋯ zm2
⋮ ⋮ ⋮z0n z1n ⋯ zmn
]m adalah jumlah variabel di dalam model dan n adalah jumlah titik data. Karena n ≥ m + 1, maka
[Z] bukan matriks persegi. Vektor kolom {y} mengandung nilai-nilai dependen yang teramati
{y}T = [y1 y2 y3 … yn]
Vektor kolom {a}T mengandung koefisien-koefisien yang tidak diketahui
{a}T = [a0 a1 a2 … am]
dan vektor kolom {e} mengandung residu
{e}T = [e1 e2 e3 … en]
Jumlah kuadrat residu didefinisikan sebagai
Sr=∑i=1
n [ y i−∑j=0
m
a j zij ]2
dengan meminimumkan nilai Sr akhirnya didapatkan persamaan normal dalam bentuk umum
[[Z]T [Z]]{a} = {[Z]T {y}]
koefisien determinasi dan standar error estimasi kemudian
r2=St−Sr
S t
substitusi nilai Sr dan St menghasilkan
r2=1−Sr
∑ ( y i− y i )2
Dari data berikut kita ingin dapatkan regresi kuadrat
xi yi
0 2,11 7,72 13,63 27,24 40,95 61,1
Aplikasi pada MATLAB
>> x = [0 1 2 3 4 5]';
>> y = [2.1 7.7 13.6 27.2 40.9 61.1]';
>> %Buat matriks [Z]
>> Z = [ones(size(x)) x x.^2]
Z =
1 0 0
1 1 1
1 2 4
1 3 9
1 4 16
1 5 25
>> Z'*Z
ans =
6 15 55
15 55 225
55 225 979
>> a = (Z'*Z)\(Z'*y)
a =
2.4786
2.3593
1.8607
>> Sr = sum((y - Z*a).^2)
Sr =
3.7466
>> r2 = 1 - Sr/sum((y-mean(y)).^2)
r2 =
0.9985
>> syx = sqrt(Sr/(length(x)- length(a)))
syx =
1.1175
Dengan menggunakan fungsi Polyfit, contoh ini dapat juga diselesaikan
>> x = [0 1 2 3 4 5]';
>> y = [2.1 7.7 13.6 27.2 40.9 61.1]';
>> a = polyfit (x,y,2)
a =
1.8607 2.3593 2.4786
Interpolasi Polinomial
Kita ingin mengestimasi nilai intermediet diantara titik-titik data yang presisi. Metode yang
paling umum digunakan untuk tujuan ini adalah interpolasi polinomial. Untuk n titik data, hanya
ada satu polinomial orde n-1 yang melaui keseluruhan titik tersebut. Jadi hanya ada satu garis
lurus yang menghubungkan dua titik, dan ada satu parabola yang menghubungkan himpunan tiga
titik. Bentuk polinomial orde n – 1 dapat dinyatakan dalam bentuk umum
f ( x )=p1 xn−1+ p2 xn−2+ p3 xn−3+ .. .+pn−1 x+ pn
Menentukan koefisien polinomial
Untuk tiga pasangan titik (300;0,616), (400;0,525), dan (500;0,457) buat persamaan parabolanya
dan tentukan nilai f(x) untuk x = 350
Penyelesaian
Dengan substitusi ketiga titik tersebut akan diperoleh persamaan dalam bentuk matriks
{0 ,6160 ,5250 ,457}=[(300)2 300 1
( 400)2 400 1(500 )2 500 1 ]{p1
p2
p3}
Jika persamaan di atas dinyatakan dalam bentuk umum, diperoleh
{f ( x1 )f ( x2 )f ( x3 )
}=[ x12 x1 1
x22 x2 1
x32 x3 1 ]{p1
p2
p3}
Matriks koefisien pada persamaan ini dinyatakan sebagai Vandermonde matrices.
>> x = [300 400 500]';
>> y = [0.616 0.525 0.457]';
>> z = [x.^2 x ones(size(x))]
z =
90000 300 1
160000 400 1
250000 500 1
>> p = z\y
p =
1.15e-06
-0.001715
1.027
sehingga persamaan parabola menjadi
f ( x )=0 , 00000115 x2−0 , 001715 x+1 , 027
Harga f (x) untuk x = 350 dihitung sebagai berikut
>> xi = [350^2 350 1];
>> fi = xi*p
fi =
0.56763
Dengan menggunakan fungsi polyfit dan polyval dapat juga ditentukan nilai berikut
>> x = [300 400 500]';
>> y = [0.616 0.525 0.457]';
>> p = polyfit(x,y,2)
p =
1.15e-06 -0.001715 1.027
>> polyval(p,350)
ans =
0.56762
Interpolasi Polinomial Newton
Interpolasi Linier
Bentuk interpolasi yang paling sederhana dengan menghubungkan dua titik data dengan garis lurus.
f 1 ( x )−f ( x1)f ( x2 )−f ( x1)
=x−x1
x2−x1
modifikasi persamaan, sehingga diperoleh
f 1( x )=f ( x1 )+f ( x2)−f ( x1 )
x2−x1
( x−x1 )
dalam hal ini
f ( x2 )−f ( x1)x2−x1
adalah slope dari garis yang mengubungkan dua titik, dapat juga dikatakan sebagai pendekatan
finite difference turunan pertama. Umumnya makin kecil interval antara dua titik, makin besar
nilai pendekatan yang diperoleh.
Interpolasi Kuadratik
Jika terdapat tiga titik data, maka polinomial derajat dua dapat digunakan sebagai pendekatan, yang secara umum dapat diformulasikan sebagai
f ( x )=b1+b2( x−x1 )+b3 (x−x1 )( x−x2 )
Untuk x = x1 diperoleh
b1= f ( x1)
Untuk x = x2 diperoleh
b2=f ( x2 )−f ( x1 )
x2−x1
Untuk x = x3 diperoleh
b3=
f ( x3 )−f ( x2 )( x3−x2 )
−f ( x2 )− f ( x1 )
x2−x1
x3−x1
Bentuk Umum Interpolasi Polinomial Newton
Bentuk umum polinomial derajat (n -1) untuk n titik data dapat dinyatakan sebagai
f n−1 (x )=b1+b2 ( x−x1)+. ..+bn ( x−x1 )( x−x2 ). . .( x−xn−1 )
Titik-titik data yang dibutuhkan untuk menmbentuk polinomial ini adalah [x1,f(x1)], [x2,f(x2)], ..., [xn,f(xn)]. Dari keseluruhan titik ini dat digunakan untuk menghitung koefisien bi
b1=f ( x1 )b2=f [ x2 , x1]b3=f [ x3 , x2 , x1]⋮b3=f [ xn , xn−1 ,. . .x3 , x2 , x1 ]
Fungsi-fungsi f disebut finite divided difference, untuk finite divided difference pertama
f [ x2 , x1 ]=f ( x2 )−f ( x1 )
x2−x1
Untuk finite divided difference kedua
f [ x3 , x2 , x1 ]=f [ x3 , x2 ]−f [ x2 , x1 ]
x3−x1
Dan seterusnya, hingga finite divide difference ke-n adalah
f [ xn , xn−1 ,. .. , x2 , x1 ]=f [ xn , xn−1 , .. . , x2 ]−f [ xn−1 , xn−2 ,. . ., x1 ]
xn−x1
Script m-file untuk Interpolasi polynomial Newton diberikan berikut
function Yint = NewtonINT(x,y,Xint)n = length(x);a(1)=y(1);for i = 1:n-1 divDIF(i,1)=(y(i+1)-y(i))/(x(i+1)-x(i));endfor j = 2:n-1 for i = 1:n-j divDIF(i,j)=(divDIF(i+1,j-1)-divDIF(i,j-1))/(x(j+i)-x(i)); endendfor j = 2:n a(j) = divDIF(1,j-1);endYint = a(1);xn = 1;for k = 2:n xn = xn*(Xint - x(k-1)); Yint = Yint + a(k)*xn;end
Lagrange Interpolating Polynomial
Seandainya kita memformulasikan interpolasi polinomial linier sebagai rata-rata dua nilai yang menghubungkan kedua garis lurus
f 1( x )=L1 f ( x1 )+L2 f ( x2 )
Dalam hal ini
L1=x−x2
x1−x2
L2=x−x1
x2−x1
f 1( x )=x−x2
x1− x2
f ( x1 )+x−x1
x2−x1
f ( x2 )
Persamaan di atas adalah polinomial interpolasi linier Lagrange . Strategi yang sama dapat digunakan untuk membentuk Polinomial Lagrange orde 2, yang dapat dituliskan sebagai
f 2( x )=( x−x2 )(x−x3 )(x1−x2 )(x1−x3 )
f (x1 )+( x−x1 )( x−x3 )( x2−x1 )( x2−x3 )
f ( x2)+( x−x1 )(x− x2 )
( x3−x1 )(x3−x2 )f (x3 )
Dengan cara yang sama dapat diformulasikan Polinomial Lagrange orde n – 1 sebagai
f n−1 (x )=∑i=1
n
Li( x ) f ( xi )
Dalam hal ini
¿ j≠i ¿¿¿n¿
Script m-file untuk interpolasi Polinomial Lagrange diberikan berikut
function Yint = LagrangeINT(x,y,Xint)n = length(x);for i = 1:n L(i) = 1 for j = 1:n if j~=i L(i)=L(i)*(Xint -x(j))/(x(i)-x(j)); end endendYint = sum(y.*L);
top related