6. Ders Genelleştirilmiş Lineer Modeller (Generalized Linear Models, GLM) Y = X β + ε Lineer Modeli pek çok özel hallere sahiptir. Bunlar, ε nun dağılımına (bağımlı değişkenin dağılımına), Cov( ε ) kovaryans matrisine ve açıklayıcı değişkenlerin gözlem matrisi olan X in yapısına bağlıdır. * rank( X ) = p olduğunda modele tam sütun ranklı, veya kısaca tam ranklı n p model denir. Deney tasarımı modelleri (genellikle) tam ranklı değildir ve tasarım matrisi denen X in elemanları 0,1 lerden oluşmaktadır. Cov( ε ) * n 1 E( ε ) = 0, Cov( εn 1) = σ I veya V bilinen pozitif tanımlı bir matris olmak üzere = σ V biçiminde olduğunda modele Genel Lineer Model (General Linear Model) denmektedir ve ( Y, Xn p β, σ V ) biçiminde de gösterilmektedir. * εn 1 N(0, σ I) veya εn 1 N(0, σ V ) olduğunda modele Hipotez testi (Normal, Gauss) modeli denmektedir. ( Y, Xn p β, σ V ) β = ( ) 1 Genel Lineer Modelinde rank(x n p ) = p olsun. ˆ 1 1 X' V X X' V Y tahmin edicisi β nın En Küçük Kovaryans Matrisli Lineer Yansız Tahmin Edicisidir (BLUE). ( Y, N ( X, )) n p β σ V Genel Lineer Hipotez Testi Modelinde, Y = X β + ε, ε N ( 0, σ V ) olmak üzere, V bilinen pozitif tanımlı bir matris ve rank(x n p ) = p olsun. ˆ β = ( ) 1 1 1 X V X X V Y ( ) ˆ σ = = n p n p + 1 1 1 1 1 Z I AA Z Y V V X X V X X V Y tahmin edicileri sırasıyla β ve σ için düzgün minimum varyans yansız (UMVU) tahmin edicilerdir. Bunlara Aitken tahmin edicileri denir. Ayrıca, 1 1 β N β σ X V X ve dağılımlıdır. ˆ (, ( ) ) ( n p) ˆ σ σ χ ( n p) 1
Y = X β + ε, ε N (, ) 0 Σ, Σ pozitif tanımlı matris (bilinmiyor), rank(x n p ) = p modelinde β parametre vektörünün en çok olabilirlik tahmin edicisini bulmaya kalkıştığımızda, ɶ β = ( Σ ) Σ 1 1 1 X X X Y biçiminde bir ifade ortaya çıkmaktadır. Σ bilinmediğinden β ɶ bir tahmin edici olarak kullanılamaz. Diğer taraftan β nın en küçük kareler tahmin edicisi, ˆ β = ( X X ) 1 X Y dır. Bu tahmin ediciye β nın alışılmış en küçük kareler (ordinary least squares, OLS) tahmni edicisi denir. Doğal olarak ˆβ ɶ β olduğunda OLS tahmin edicisi UMVU tahmin edicisi olmayacaktır. Acaba hangi şartlarda OLS tahmin edicisi UMVU tahmin edicisi olmaktadır? Teorem Y = X β + ε, ε N ( 0, Σ ) modelinde en küçük kareler tahmni edicisi ( X X ) X Y 1 nin β için UMVU tahmin edicisi olması için gerek ve yeter şart, Σ X = XF olacak şekilde singüler olmayan bir F: p p matrisinin var olmasıdır. Sonuç Y = X β + ε ε N, ( 0, Σ ), X = 1, X,, X p 1 ρ ρ ρ 1 ρ 1 n n σ (1 ρ) I σ ρj σ Σ = + =, < ρ < 1 n 1 ρ ρ 1 modelinde, biçiminde ise en küçük kareler tahmin edicisi UMVU tahmni edicisidir. Hata terimi üzerinde dağılım varsayımı olmadığında EKK tahmin edicilerini kullanmaktayız. Hipotez testi yapamayız (belki parametrik olmayan sonuç çıkarım yapabiliriz). Bağımlı değişken (hata terimi) normal dağılımlı olduğunda istatistiksel sonuç çıkarımın nasıl yapıldığını ist307, ist306 derslerinde gördünüz. Bağımlı değişken normal dağılımlı değilse; örneğin Bernoulli, Poisson, Gamma veya başka bir dağılım olabilir; sonuç çıkarım Genelleştirilmiş Lineer Model (Generalized Linear Model, GLM) teorisi altında yapılmaktadır. Yüzeysel olarak Genelleştirilmiş Lineer Model leri ele alalım.
Genelleştirilmiş Lineer Model 3
4
5
6
Genelleştirilmiş Lineer Modeller (Generalized Linear Models, GLM) kullanarak veri analizi ve sonuç çıkarımlar yapmaya çalışalım. 1.Örnek (Lojistik Regresyon): Kaynak: Allen Webster (013) Introductory Regression Analysis, Routledge,Taylor&Francis. Veri: Y:Araba alımı 1-aldı, 0-almadı x1: ailede birey sayısı x:gelir (yıllık bin dolar) Y x1 x 1 3 76,8 1 3 76,8 1 3 7,8 1 76 1 3 73,6 1 3 74,4 1 3 78,4 1 3 73,6 1 3 77,6 1 3 76 1 3 79, 1 3 71, 1 3 75, 1 3 73,6 1 3 75, 1 3 7 1 7,8 1 3 7 1 3 68,8 1 7 1 7,8 1 3 70,4 1 3 70,4 1 3 69,6 0 74,4 0 3 7 0 3 7,8 0 7,8 0 70,4 0 3 68,8 0 3 63, 0 3 66,4 0 63, 0 70,4 0 3 64,8 0 3 68 0 65,6 0 3 65,6 0 64,8 0 68,8 0 3 64,8 0 68 0 66,4 0 64,8 7
Binary Logistic Regression: C1 versus C; C3 Link Function: Logit Response Information Variable Value Count C1 1 4 (Event) 0 0 Total 44 Logistic Regression Table Odds 95% CI Predictor Coef SE Coef Z P Ratio Lower Upper Constant -53,061 16,4547-3, 0,001 C,58 1,07485,07 0,038 9,6 1,13 76,14 C3 0,667877 0,1941 3,14 0,00 1,95 1,8,96 Log-Likelihood=-13,818 Test that all slopes are zero:g=3,997, DF=, P-Value=0,000 Katsayıların Yorumlanması: 8
R Yazılımı # Y:Araba alımı 1-aldı, 0-almadı # x1: ailede birey sayısı x:gelir (?bin dolar yıllık) Y=c(rep(1,4),rep(0,0)) x1=c( 3, 3, 3,, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,,3, 3,,,3,3,3,,3,3,,,3, 3, 3,,, 3, 3,, 3,,, 3,,, ) x=c(76.8, 76.8, 7.8, 76.0, 73.6, 74.4, 78.4, 73.6, 77.6, 76.0, 79., 71., 75., 73.6, 75., 7.0, 7.8, 7.0, 68.8, 7.0, 7.8, 70.4, 70.4, 69.6, 74.4, 7.0, 7.8, 7.8, 70.4, 68.8, 63., 66.4, 63., 70.4, 64.8, 68.0, 65.6, 65.6, 64.8, 68.8, 64.8, 68.0, 66.4, 64.8) veri=data.frame(x1,x,y) model=glm(y~x1+x,family=binomial) summary(model) Ysapka=fitted.values(model) cikti=data.frame(x1,x,y,ysapka,ysapka>=0.5) cikti # model=glm(y~veri$x1+veri$modelx,family=binomial) 9
> cikti x1 x Y p_sapka p_sapka>=0.5 1 3 76.8 1 0.99675663 TRUE 3 76.8 1 0.99675663 TRUE 3 3 7.8 1 0.90358376 TRUE 4 76.0 1 0.89558999 TRUE 5 3 73.6 1 0.941143608 TRUE 6 3 74.4 1 0.964644198 TRUE 7 3 78.4 1 0.997470 TRUE 8 3 73.6 1 0.941143608 TRUE 9 3 77.6 1 0.995694310 TRUE 10 3 76.0 1 0.98756710 TRUE 11 3 79. 1 0.998516855 TRUE 1 3 71. 1 0.76980619 TRUE 13 3 75. 1 0.978970975 TRUE 14 3 73.6 1 0.941143608 TRUE 15 3 75. 1 0.978970975 TRUE 16 3 7.0 1 0.8459776 TRUE 17 7.8 1 0.50969036 TRUE 18 3 7.0 1 0.8459776 TRUE 19 3 68.8 1 0.39315985 FALSE 0 7.0 1 0.3785306 FALSE 1 7.8 1 0.50969036 TRUE 3 70.4 1 0.65357460 TRUE 3 3 70.4 1 0.65357460 TRUE 4 3 69.6 1 0.55100797 TRUE 5 74.4 0 0.746584683 TRUE 6 3 7.0 0 0.8459776 TRUE 7 3 7.8 0 0.90358376 TRUE 8 7.8 0 0.50969036 TRUE 9 70.4 0 0.169397 FALSE 30 3 68.8 0 0.39315985 FALSE 31 3 63. 0 0.01515841 FALSE 3 3 66.4 0 0.115401303 FALSE 33 63. 0 0.0016598 FALSE 34 70.4 0 0.169397 FALSE 35 3 64.8 0 0.0488881 FALSE 36 3 68.0 0 0.7556304 FALSE 37 65.6 0 0.00818815 FALSE 38 3 65.6 0 0.07106975 FALSE 39 64.8 0 0.00481557 FALSE 40 68.8 0 0.06539786 FALSE 41 3 64.8 0 0.0488881 FALSE 4 68.0 0 0.039394679 FALSE 43 66.4 0 0.013890861 FALSE 44 64.8 0 0.00481557 FALSE 10
Matlab >> playshow glmdemo >> help glmfit >> veri=[ 3.0000 76.8000 1 3.0000 76.8000 1 3.0000 7.8000 1.0000 76.0000 1 3.0000 73.6000 1 3.0000 74.4000 1 3.0000 78.4000 1 3.0000 73.6000 1 3.0000 77.6000 1 3.0000 76.0000 1 3.0000 79.000 1 3.0000 71.000 1 3.0000 75.000 1 3.0000 73.6000 1 3.0000 75.000 1 3.0000 7.0000 1.0000 7.8000 1 3.0000 7.0000 1 3.0000 68.8000 1.0000 7.0000 1.0000 7.8000 1 3.0000 70.4000 1 3.0000 70.4000 1 3.0000 69.6000 1.0000 74.4000 0 3.0000 7.0000 0 3.0000 7.8000 0.0000 7.8000 0.0000 70.4000 0 3.0000 68.8000 0 3.0000 63.000 0 3.0000 66.4000 0.0000 63.000 0.0000 70.4000 0 3.0000 64.8000 0 3.0000 68.0000 0.0000 65.6000 0 3.0000 65.6000 0.0000 64.8000 0.0000 68.8000 0 3.0000 64.8000 0.0000 68.0000 0.0000 66.4000 0.0000 64.8000 0] 11
>> X=[veri(:,1) veri(:,)] >> glmfit(x,y,'binomial') ans = -53.061.58 0.6679 >> [kats Deviance]=glmfit(X,Y,'binomial') kats = -53.061.58 0.6679 Deviance = 7.6359 >> help glmval >> psapka = glmval(kats, X, 'logit') psapka = 0.997 0.997 0.9036 0.8956 0.9411 0.9646 0.9975 0.9411 0.9957 0.9876 0.9985 0.7630 0.9790 0.9411 0.9790 0.8460 0.5030 0.8460 0.393 0.373 0.5030 0.6536 0.6536 0.551 0.7466 0.8460 0.9036 0.5030 0.169 0.393 0.015 0.1154 0.0017 0.169 0.049 0.753 0.008 0.0710 0.0048 0.0654 0.049 0.0394 0.0139 0.0048 x1 x Y pşapka (Yşapka) 1. 3 76.8000 1 0.997. 3 76.8000 1 0.997 3. 3 7.8000 1 0.9036 4. 76.0000 1 0.8956 5. 3 73.6000 1 0.9411 6. 3 74.4000 1 0.9646 7. 3 78.4000 1 0.9975 8. 3 73.6000 1 0.9411 9. 3 77.6000 1 0.9957 10. 3 76.0000 1 0.9876 11. 3 79.000 1 0.9985 1. 3 71.000 1 0.7630 13. 3 75.000 1 0.9790 14. 3 73.6000 1 0.9411 15. 3 75.000 1 0.9790 16. 3 7.0000 1 0.8460 17. 7.8000 1 0.5030 18. 3 7.0000 1 0.8460 19. 3 68.8000 1 0.393 0. 7.0000 1 0.373 1. 7.8000 1 0.5030. 3 70.4000 1 0.6536 3. 3 70.4000 1 0.6536 4. 3 69.6000 1 0.551 5. 74.4000 0 0.7466 6. 3 7.0000 0 0.8460 7. 3 7.8000 0 0.9036 8. 7.8000 0 0.5030 9. 70.4000 0 0.169 30. 3 68.8000 0 0.393 31. 3 63.000 0 0.015 3. 3 66.4000 0 0.1154 33. 63.000 0 0.0017 34. 70.4000 0 0.169 35. 3 64.8000 0 0.049 36. 3 68.0000 0 0.753 37. 65.6000 0 0.008 38. 3 65.6000 0 0.0710 39. 64.8000 0 0.0048 40. 68.8000 0 0.0654 41. 3 64.8000 0 0.049 4. 68.0000 0 0.0394 43. 66.4000 0 0.0139 44. 64.8000 0 0.0048 Eşik değeri olarak 0.5 seçilip; pşapka>0.5 olan birim araba sahibi grubuna atansın, pşapka<0.5 olan birim diğer gruba atansın kuralı bir diskriminasyon (ayrıştırma) kuralı olabilir. Yanlış sınıflandırılmış birimler kırmızı işaretli olanlardır. Yanlış sınıflandırma oranları: p ˆ0/1= 3 / 4, p ˆ1/0= / 0 dır. 1
SPSS 13
14
15
1 3 76,8,993 1 3 7,8,904 1 76,0,896 1 3 73,6,941 1 3 74,4,965 1 3 76,8,993 1 3 78,4,997 1 3 73,6,941 1 3 77,6,996 1 3 76,0,988 1 3 79,,999 1 3 71,,763 1 3 75,,979 1 3 73,6,941 1 3 75,,979 1 3 7,0,846 1 7,8,503 1 3 7,0,846 1 3 68,8,393 1 7,0,37 1 7,8,503 1 3 70,4,654 1 3 70,4,654 1 3 69,6,55 0 74,4,747 0 3 7,0,846 0 3 7,8,904 0 7,8,503 0 70,4,169 0 3 68,8,393 0 3 63,,015 0 3 66,4,115 0 63,,00 0 70,4,169 0 3 64,8,043 0 3 68,0,75 0 65,6,008 0 3 65,6,071 0 64,8,005 0 68,8,065 0 3 64,8,043 0 68,0,039 0 66,4,014 0 64,8,005 16
.Örnek (Poisson Regresyonu): Kaynak: Julian J. Faraway (006) Extending the Linear Model with R, Chapman&Hall/CRC. Amaç: Galapagos adalarında yaşayan kaplumbağa türü sayısını, çeşitli coğrafik değişkenler ile açıklamak. Değişkenler: Species: adada bulunan kaplumbağa türü sayısı Endemics: endemik(o yöreye ait) türlerin sayısı Area: adanın alanı (km ) Elevation: adanın en yüksek noktası (m) Nearest: en yakın ada mesafesi (km) Scruz: Santa Cruz adasına olan mesafe (km) Adjacent: komşu adanın alanı (km ) Veri: 17
Aşağıdaki komutları adım adım işletiniz. library(faraway);data(gala);gala modelekk=lm(species~area+elevation+nearest+scruz+adjacent, data=gala) summary(modelekk) # R belirleyicilik katsayısı? (Açıklayıcı değişkenlerin rolü?) # Hata terimi ile ilgili varsayımlar sağlanıyor mu? # Sabit varyanslılık: plot(residuals(modelekk)~fitted(modelekk)) plot(abs(residuals(modelekk))~fitted(modelekk)) # Heteroskedastiklik (heteroscedasticity) söz konusu. # Ağırlıklı EKK veya transformasyon yapılabilir. # Uygun lamda değeri (sayfa 110) library(mass) boxcox(modelekk, lambda=seq(0,3,0.1)) # bağımlı değişkene karekök dönüşümü uygun görünmektedir. kkspecies=sqrt(gala$species) m=lm(kkspecies~area+elevation+nearest+scruz+adjacent, data=gala) plot(residuals(m)~fitted(m)) ; # sabit varyanslılık varsayımı sağlandı mı? #Normallik varsayımı? hist(residuals(m)) # Çarpıklık söz konusu olabilir. hist(residuals(m),10) qqnorm(residuals(m)); qqline(residuals(m)) shapiro.test(residuals(m)) : # normallik reddedildi mi? summary(m) # R=%78, F-istatistiği (p-değeri=0.00000087) olduğunu görünüz. # Bireysel katsayılar (p-değerleri): # Nearest ve Scruz değişkenlerine dikkat edin! Modelden çıkarın. #Yeni model: myeni=lm(kkspecies~area+elevation+adjacent, data=gala);summary(myeni) # Her şey yolunda mı? # Modelin aşağıdaki gibi olacağını görünüz. # kkspecies=.8611345-0.00191*area+0.0165770*elevation- 0.0035043*Adjacent # Katsayıların yorumlanması nasıl yapılacak? # Örneğin, Area (alan) bir birim artsa kkspecies'da -0.00191 kadar değişiklik olacak. # kkspecies bağımlı değişkenin karekökü olduğuna göre, Area bir birim artsa, Species # üzerine etkisi ne olacak? Yorumlama zorlaştı. 18
# Genelleştirilmiş Lineer Model deneyelim. # Species bağımlı değişkeni Poisson dağılımlı düşünülebilir. glm=glm(species~area+elevation+nearest+scruz+adjacent, data=gala, family=poisson) summary(glm) # Katsayıların yorumlanması? # Link fonksiyonu (ln). # Alan (Area) bir birim artsa, Species sayısı öncekinin exp(-0.0005799) katı olur diyebilir miyiz? # Aşağıdaki çıktıları yorumlayınız. summary(modelekk) summary(glm(species~area+elevation+nearest+scruz+adjacent, data=gala)) 19