Presentation is loading. Please wait.

Presentation is loading. Please wait.

סטטיסטיקה בסיסית והסקה סטטיסטית ב-R

Similar presentations


Presentation on theme: "סטטיסטיקה בסיסית והסקה סטטיסטית ב-R"— Presentation transcript:

1 סטטיסטיקה בסיסית והסקה סטטיסטית ב-R

2 Everything differs!!! "צפויים להימצא הבדלים בין x ל-y" היא אמירה טריוויאלית הסטטיסטיקאי שבכם שואל "האם ההבדלים שנמצאו גדולים מהצפוי באקראי" הביולוג שבכם שואל "למה ההבדלים הם לכיוון ובדרגה שמצאתי"

3 מדדים לנטייה מרכזית* ממוצע חשבוני, גיאומטרי, הרמוני
Arithmetic mean: Σxi/n Geometric mean: (x1*x2*…*xn)1/n Harmonic mean: * = Moments of central tendency

4 מדדים לנטייה מרכזית ב-R
Arithmetic mean: Σxi/n 1. ממוצע חשבוני דוגמא: הפונקציה “mean” data<-c(2,3,4,5,6,7,8) mean(data) [1] 5 2. ממוצע גיאומטרי Geometric mean: (x1*x2*…*xn)1/n ניתן גם לעבוד מהקובץ: דוגמא: dat<-read.csv("island_type_final2.csv") Attach(dat) mean(lat) [1] data<-c(2,3,4,5,6,7,8) exp(mean(log(data))) [1]

5 מדדים לנטייה מרכזית* א. ממוצע (mean) ב. חציון (median) ג. שכיח (mode)
* = Moments of central tendency דוגמא: דוגמא מהקובץ: data<-c(2,3,4,5,6,7,8) median(data) [1] 5 median(mass) [1] 0.69

6 מדדים לנטייה מרכזית ממוצע שונות*
ממוצע שונות* הממוצע הוא מדד טוב יותר למה שקורה באוכלוסיה\מדגם כשהשונות קטנה או גדולה? data<-c(2,3,4,5,6,7,8) var(data) [1] Var(lat) [1] דוגמא: *Variance = Σ(xi-μ)2 / n

7 המומנט השני של נטייה מרכזית הוא מדד לפיזור הנתונים מסביב למומנט הראשון
מדדים לנטייה מרכזית ממוצע שונות המומנט השני של נטייה מרכזית הוא מדד לפיזור הנתונים מסביב למומנט הראשון דוגמאות למומנט השני הן, למשל, השונות, סטיית התקן, שגיאת התקן, ה-coefficient of variation, ורווח הסמך (של 90, 95, 99% או מה שלא יהיה).

8 מדדים לנטייה מרכזית גודל מדגם: שונות: סטיית תקן: שגיאת תקן:
#for: data<-c(2,3,4,5,6,7,8) גודל מדגם: שונות: סטיית תקן: שגיאת תקן: coefficient of variation: length(data) var(data) sd(data) se<-(sd(data)/length(data)^0.5) se [1] CV<-sd(data)/mean(data) CV [1]

9 מדדים לנטייה מרכזית ממוצע שונות הטייה (Skew)
התפלגות שכיחויות מוטה אינה סימטרית! האם בהתפלגות שכיחויות מוטה הממוצע החשבוני הוא מדד טוב לנטייה מרכזית? מהו השכר הממוצע של כל הסטודנטים פה ושל ביל גייטס?

10 מדדים לנטייה מרכזית הטייה (Skew) שגיאת תקן של הטיה:
skew<-function(data){ m3<-sum((data-mean(data))^3)/length(data) s3<-sqrt(var(data))^3 m3/s3} skew(data) sdskew<-function(x) sqrt(6/length(x)) שגיאת תקן של הטיה:

11 מדדים לנטייה מרכזית ממוצע שונות הטייה (Skew) קורטוזיס (Kurtosis)

12 מדדים לנטייה מרכזית קורטוזיס (Kurtosis) שגיאת תקן של קורטוזיס:
kurtosis<-function(x){ m4<-sum((x-mean(x))^4)/length(x) s4<-var(x)^2 m4/s4-3 } kurtosis(x) sdkurtosis<-function(x) sqrt(24/length(x)) שגיאת תקן של קורטוזיס:

13 התפלגות נורמאלית יכולה לקבל כל ערך של ממוצע ושונות, אבל ה-skewness והקורטוזיס שלה צריכים להיות שווים לאפס לערכי skew וקורטוסיס יש שונות משלהם – ואפס צריך להיות מחוץ לרווח הסמך שלהם כדי שהם יהיו שונים במובהק מאפס

14 Residuals כשאנחנו עושים סטטיסטיקה אנחנו יוצרים מודלים של המציאות
אחד המודלים הפשוטים ביותר הוא הממוצע: הגובה הממוצע של אזרחי ישראל הוא (נגיד) 173 ס"מ השכר הממוצע הוא 9271 ₪ (למ"ס, נתוני אפריל 2014) והשירות הצבאי הממוצע הוא (אולי) 24 חודשים 46,699 ₪ בחודש (הערכת חסר, ללא הטבות) 2.06 מטר דוב ליאור שירת בצה"ל חודש אחד

15 Residuals כשאנחנו עושים סטטיסטיקה אנחנו יוצרים מודלים של המציאות
כך שכאן, המודלים שלנו: 173 ס"מ, 9271 ₪, 24 חודשים, אינם מוצלחים במיוחד ה-Residual הוא הכמות בה ערך מסויים רחוק מהניבוי של המודל. כך שליאור אליהו רחוק 32 ס"מ מהמודל "ישראלי = 173", ורחוק 29 ס"מ מהמודל המורכב יותר "גבר ישראלי = 177, אישה ישראלית = 168". Residual = ₪ 37428 Residual = -23 month IDF service Residual = 33 cm

16 Residuals כשאנחנו עושים סטטיסטיקה אנחנו יוצרים מודלים של המציאות
dat<-read.csv("island_type_final2.csv") model<-lm(mass~iso+area+age+lat, data=dat) out<-model$residuals out write.table(out, file = "residuals.txt",sep="\t",col.names=F,row.names=F) #note that residual values are in the order entered (i.e., not alphabetic, not by residual size – first in, first out) Residual = ₪ 37428 Residual = 33 cm Residual = -23 month service

17 סטטיסטיקה תיאורית והסקה סטטיסטית
כשיש לנו נתונים בשלב הראשון כדאי שנתאר אותם: נצייר גרפים, נחשב ממוצע וכדומה בהסקה סטטיסטית אנו בוחנים את התנהגותם של הנתונים שלנו אל מול השערה (היפותזה) מסויימת את ההשערה שלנו אנו יכולים להציג כמודל סטטיסטי למשל: התפלגות גבהים היא נורמאלית מספר המינים הולך ועולה עם העליה בשטח מספר המינים הולך ועולה עם העליה בשטח על פי power function שלו מעריך חזקה השווה ל-0.25

18 התפלגות שכיחויות* מבטאת את כל מרחב התצפיות
כמה תצפיות יש בכל קטגוריה (bin) dat<-read.csv("island_type_final2.csv") attach(dat) names(dat) Hist(mass) מבטאת את כל מרחב התצפיות * = frequency distribution, in graphic form = “histogram”

19 התפלגות שכיחויות מה למדנו?
dat<-read.csv("island_type_final2.csv") attach(dat) Hist(mass) אין מסות קטנות מעשירית הגרם או גדולות מ-100 ק"ג. לטאות במסות של 1-10 גרם נפוצות – גדולות יותר או קטנות יותר נדירות ההתפלגות היא חד שיאית, ומוטה לימין

20 התפלגות שכיחויות לא חייבת להיות כל כך מכוערת
dat<-read.csv("island_type_final2.csv") attach(dat) hist(mass, col="purple",breaks=25,xlab="log mass (g)",main="masses of island lizards - great data by Maria",cex.axis=1.2,cex.lab=1.5)

21 הצגת משתנה קטגורי לעומת משתנה רציף אחר
dat<-read.csv("island_type_final2.csv") attach(dat) plot(type,brood) תמיד העדיפו Box & Whiskers plot על bar plot!

22 הצגת משתנה רציף לעומת משתנה רציף אחר
dat<-read.csv("island_type_final2.csv") attach(dat) plot(mass,clutch) plot(mass,clutch,pch=16,col="blue“)

23 איזה מבחן נבחר? זה משתנה בהתאם לטבע ה-response variable (=המשתנה התלוי, זה שעל ציר ה-y), ובעיקר לפי טבע ה-predictor variables אם ה-response variable הוא "הצלחה או כשלון", והשערת האפס היא של שיוויון ביניהם, נשתמש במבחן בינומי (binomial). אם ה-response variable שלנו הוא ספירות נשתמש לרוב במחני 2χאו G (=log-likelihood). לרוב ה-response variable שלנו יהיה רציף (14 מינים, 78 פרטים, 87.5מ"מ, 54 פעימות לדקה, 7.3 ביצים, 23 מעלות).

24 איזה מבחן נבחר? מהו ה-response variable ? רציף
(14 מינים, 78 פרטים, 87.5מ"מ, 54 חודשים, 7.3 ביצים, 23 מעלות) ספירות (שכיחויות: 6 זכרים, 9 נקבות) "הצלחה" או "כישלון" (מצא את הגבינה\אידיוט) חי-בריבוע או G (=log-likelihood) מבחן בינומי (binomial) עוד מעט...

25 Binomial test in R יש להגדיר את מספר ההצלחות מתוך גודל המדגם הכולל.
דוגמה 1: 19 מתוך 34 (לא מובהק). דוגמה 2: 19 מתוך 20 (מובהק) binom.test(19,34) Exact binomial test data: 19 and 34 number of successes = 19, number of trials = 34 p-value = alternative hypothesis: true probability of success is not equal to percent confidence interval: sample estimates: probability of success binom.test(19,20) Exact binomial test data: 19 and 20 number of successes = 19, number of trials = 20, p-value = 4.005e-05 alternative hypothesis: true probability of success is not equal to percent confidence interval: sample estimates: probability of success 0.95

26 Chi-square test in R chisq.test
Data: lizard insularity & diet: chisq.test habitat diet species# island carnivore 488 herbivore 43 omnivore 177 mainland 1901 101 269 M<-as.table(rbind(c(1901,101,269),c(488,43,177))) chisq.test(M) data: M χ2 = 80.04, df = 2, p-value < 2.2e-16

27 Chi-square test in R chisq.test χ2 = 17.568, df = 4, p-value = 0.0015
והפעם עם בסיס הנתונים שלנו: chisq.test dat<-read.csv("island_type_final2.csv") install.packages("reshape") Library(reshape) cast(dat, type ~ what, length) type anoles else gecko Continental 7 45 Land_bridge 1 30 14 Oceanic 23 110 44 M<-as.table(rbind(c(7,45,45),c(1,30,14),c(23,110,44))) chisq.test(M) data: M χ2 = , df = 4, p-value =

28 איזה מבחן נבחר? אם ה response variable שלנו הוא רציף נבחר מבחן לפי טבע ה-predictor variables אם ה-predictor variable בדיד (אתר א', אתר ב', אתר ג'; זכר\נקבה; מין א', מין ב, מין ג'; שטח עירוני\שטח טבעי; טיפול א', טיפול ב', ביקורת) המבחן יהיה ANOVA (analysis of variance) אם ה predictor variable רציף (מעלות צלסיוס, כמות מזון, קו רוחב, כמות משקעים, מספר מתחרים, אחוז כיסוי) המבחן יהיה רגרסיה

29 t-test in R t.test(x,y) dimorphism<-read.csv("ssd.csv",header=T)
Sex size female 79.7 male 85 120 133.0 118 126.0 105.8 112 106 121.0 95 111.0 86 93.0 65 75.0 230 240.0 t.test(x,y) dimorphism<-read.csv("ssd.csv",header=T) attach(dimorphism) names(dimorphism) males<-size[Sex=="male"] females<-size[Sex=="female"] t.test(females,males) Welch Two Sample t-test data: females and males t = , df = , p-value = alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: sample estimates: mean of x mean of y

30 t-test in R (2) lm(x~y) Estimate standard error t p value (Intercept)
Sex size female 79.7 male 85 120 133.0 118 126.0 105.8 112 106 121.0 95 111.0 86 93.0 65 75.0 230 240.0 lm(x~y) dimorphism<-read.csv("ssd.csv",header=T) attach(dimorphism) names(dimorphism) model<-lm(size~Sex,data=dimorphism) summary(model) Estimate standard error t p value (Intercept) 88.17 1.291 68.32 <2e-16 *** Sexmale 3.932 1.825 2.154 0.031 *

31 Paired t-test in R t.test(x,y,paired=TRUE) female male 88.17 92.10
Species size Sex Xenagama_zonura 79.7 female 85 male Xenosaurus_grandis 120 133.0 Xenosaurus_newmanorum 118 126.0 Xenosaurus_penai 105.8 112 Xenosaurus_platyceps 106 121.0 Xenosaurus_rectocollaris 95 111.0 Zonosaurus_anelanelany 86 93.0 Zootoca_vivipara 65 75.0 Zygaspis_nigra 230 240.0 Zygaspis_quadrifrons 195 227.0 t.test(x,y,paired=TRUE) dimorphism<-read.csv("ssd.csv",header=T) attach(dimorphism) names(dimorphism) males<-size[Sex=="male"] females<-size[Sex=="female"] t.test(females,males, paired=TRUE) Paired t-test data: females and males t = , df = 3503, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: sample estimates: mean of the differences female male 88.17 92.10 tapply(size,Sex,mean)

32 ANOVA in R aov model<-aov(x~y) Df Sum sq Mean sq F value Pr(>F)
species type clutch Trachylepis_sechellensis Continental 0.6 Trachylepis_wrightii 0.65 Tropidoscincus_boreus 0.4 Tropidoscincus_variabilis 0.45 Urocotyledon_inexpectata 0.3 Varanus_beccarii 0.58 Algyroides_fitzingeri Land_bridge Anolis_wattsi Archaeolacerta_bedriagae Cnemaspis_affinis Cnemaspis_limi 0.18 Cnemaspis_monachorum Amblyrhynchus_cristatus Oceanic 0.35 Ameiva_erythrocephala Ameiva_fuscata Ameiva_plei 0.41 Anolis_acutus Anolis_aeneus Anolis_agassizi Anolis_bimaculatus Anolis_bonairensis ANOVA in R aov model<-aov(x~y) island<-read.csv("island_type_final2.csv",header=T) names(island) [1] "species" "what" "family" "insular" "Archipelago" "largest_island" [7] "area" "type" "age" "iso" "lat" "mass" [13] "clutch" "brood" "hatchling" "productivity“ model<-aov(clutch~type,data=island) summary(model) Df Sum sq Mean sq F value Pr(>F) type 2 0.466 2.784 0.0635 . Residuals 289 24.184

33 מבחן post-hoc ל-ANOVA ב-R
TukeyHSD(model) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = clutch ~ type, data = island) $type diff lwr upr p adj Land_bridge-Continental 0.124 0.2505 0.0561 Oceanic-Continental 0.0218 0.1108 0.8318 Oceanic-Land_bridge -0.102 0.0163 0.1066 ההבדלים אינם מובהקים (שימו לב שאפס תמיד ברווח הסמך. ההבדל בין איי מדף יבשת לאיי פלטות טקטוניות קרוב למובהקות, p = 0.056)

34 correlation in R cor.test(x,y) המשתנה “cor” הוא מקדם הקורלציה r
mass 5 1.21 0.83 4 1.84 18 1.39 0.42 0.29 20 0.45 1.54 0.36 0.27 0.04 0.01 21 0.95 0.51 22 0.74 0.92 island<-read.csv("island_type_final2.csv",header=T) names(island) [1] "species" "what" "family" "insular" "Archipelago" "largest_island" [7] "area" "type" "age" "iso" "lat" "mass" [13] "clutch" "brood" "hatchling" "productivity“ attach(island) cor.test(mass,lat) Pearson's product-moment correlation data: mass and lat t = , df = 317, p-value = 0.256 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: sample estimates: cor המשתנה “cor” הוא מקדם הקורלציה r

35 אותם נתונים כמו בדוגמה הקודמת
regression in R אותם נתונים כמו בדוגמה הקודמת lm (=“linear model”): lm (y~x) model<-lm(mass~lat,data=island) summary(model) Call: lm(formula = mass ~ lat, data = island) Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 9.934 <2e-16 *** lat -1.138 0.256 Residual standard error: on 317 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 1 and 317 DF, p-value: 0.256

36 aov לעומת lm אולי במפתיע אפשר לבחון נתונים המתאימים ל-ANOVA גם במבחן lm. במקרה כזה נקבל את כל המידע שנותן ה-summary של lm במבחן רגרסיה, כולל (חשוב!) parameter estimates, שגיאות תקן, הבדלים בין פקטורים וערכי-p לכל קונטרסט (בין 2 קטגוריות של המשתנה המסביר הקטגוריאלי)

37 aov לעומת lm טבלת aov טבלת lm עוד בהמשך
אולי במפתיע אפשר לבחון נתונים המתאימים ל-ANOVA גם במבחן lm. במקרה כזה נקבל את כל המידע שנותן ה-summary של lm במבחן רגרסיה, כולל (חשוב!) parameter estimates, שגיאות תקן, הבדלים בין פקטורים וערכי-p לכל קונטרסט (בין 2 קטגוריות של המשתנה המסביר הקטגוריאלי) island<-read.csv("island_type_final2.csv",header=T) model<-aov(clutch~type,data=island) model2<-lm(clutch~type,data=island) summary(model) summary(model2) Df Sum sq Mean sq F value Pr(>F) type 2 0.466 2.784 0.0635 . Residuals 289 24.184 טבלת aov Estimate Std. Error t value Pr(>|t|) (Intercept) 11.11 <2e-16 *** typeLand_bridge 2.309 0.0216 * typeOceanic 0.578 0.5635 טבלת lm Residual standard error: on 289 degrees of freedom (27 observations deleted due to missingness) Multiple R-squared: , Adjusted R-squared: F-statistic: on 2 and 289 DF, p-value: עוד בהמשך

38 הנחותיהם של מבחנים סטטיסטיים (כל המבחנים הסטטיסטיים)
A non-random, non-independent sample of Israeli people מדגם אקראי (הנחה של כל מבחן – לא רק פרמטרי) אי תלות (מרחבית, בזמן, פילוגנטית וכו')

39 Richard Smith & 3 friends
הנחותיהם של מבחנים פרמטריים א. ANOVA בנוסף להנחות של כל מבחן שיוויון שוניות (Homoscedasticity) התפלגות נורמלית של ה-residuals "Comments on earlier drafts of this manuscript made it clear that for many readers who analyze data but who are not particularly interested in statistical questions, any discussion of statistical methods becomes uncomfortable when the term ‘‘error variance’’ is introduced.“ Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140: Richard Smith & 3 friends קריאה: Sokal & Rohlf Biometry. 3rd edition. Pages (especially for normality)

40 Always look at your data
Don’t just rely on the statistics! Anscombe's quartet Summary statistics are the same for all four data sets: mean (7.5), standard deviation (4.12) correlation (0.816) regression line (y = 3 + 0.5x) Anscombe Graphs in statistical analysis. The American Statistician 27: 17–21. Briggs Henan University 2010

41 הנחותיהם של מבחנים פרמטריים ב: רגרסיה
שוויון שונויות (Homoscedasticity) Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140:

42 הנחותיהם של מבחנים פרמטריים ב: רגרסיה
שוויון שונויות (Homoscedasticity) המשתנה המסביר (explanatory variable) נמדד ללא שגיאה Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140:

43 הנחותיהם של מבחנים פרמטריים ב: רגרסיה
שוויון שונויות (Homoscedasticity) התפלגות נורמלית של ה residuals עבור כל ערך של המשתנה המסביר התפלגות נורמלית של ה-residuals עבור כל ערך של המשתנה המסביר Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140:

44 הנחותיהם של מבחנים פרמטריים ב: רגרסיה
שוויון שונויות (Homoscedasticity) המשתנה המסביר (explanatory variable) נמדד ללא שגיאה התפלגות נורמלית של ה residuals עבור כל ערך של המשתנה המסביר שוויון שונויות עבור כל ערך של המשתנה המסביר Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140:

45 הנחותיהם של מבחנים פרמטריים ב: רגרסיה
שוויון שונויות (Homoscedasticity) המשתנה המסביר (explanatory variable) נמדד ללא שגיאה התפלגות נורמלית של ה residuals עבור כל ערך של המשתנה המסביר שוויון שונויות עבור כל ערך של המשתנה המסביר יחס לינארי בין המשתנה המסביר למשתנה המגיב Smith, R. J Use and misuse of the reduced major axis for line-fitting. American Journal of Physical Anthropology 140:

46 איך נבדוק אם המודל מתנהג לפי ההנחות?
ל-R יש model diagnostic functions שימושיות למדי שמאפשרות לנו להעריך (באופן גרפי, איכותי) עד כמה הנחות מודלים (בדגש על רגרסיה) מתקיימות ראו גם:

47 מה עושים אם הנתונים לא מתנהגים לפי ההנחות?
מתעלמים ומקווים שהמבחן רובוסטי להפרה של הנחותיו: זה לא תמיד בלתי סביר כמו שזה נשמע משתמשים במבחנים א-פרמטריים משתמשים ב-generalized linear models (או בקיצור glm) בגדול זה אומר: טרנספורמציות (ב-glm זה אומר שינוי link functions) שינוי ב-error distribution (ב-glm) להתפלגויות לא נורמאליות משתמשים במבחן לא לינארי משתמשים ברנדומיזציות (ראו בהרצאות של רועי הולצמן)

48 מבחנים א-פרמטריים מבחנים א-פרמטריים לא מניחים שוויון שונויות או התפלגות נורמלית. הם מבוססים על rank. חסרונות: לא קיימים מבחנים למודלים מרובי predictors לעיתים קרובות ה-statistical power שלהם נמוך משל מבחן פרמטרי מקביל לא מאפשרים הערכת פרמטרים (שיפועים ונקודות חיתוך)

49 נראה לי ממש לא בסדר שבמצגת שלמה אין לי תמונות של חיות
מבחנים א-פרמטריים מבחנים א-פרמטריים לא מניחים שוויון שונויות או התפלגות נורמלית. הם מבוססים על rank. חסרונות: לא קיימים מבחנים למודלים מרובי predictors לעיתים קרובות ה-statistical power שלהם נמוך משל מבחן פרמטרי מקביל לא מאפשרים הערכת פרמטרים (שיפועים ונקודות חיתוך)

50 כמה מבחנים א-פרמטריים שימושיים
Orycteropus afer למצולם אין קשר להרצאה מבחן χ2 הוא מבחן א-פרמטרי קולמוגורוב-סמירנוב הוא מבחן א-פרטרי להשוואת שתי התפלגויות שכיחויות (או השוואת התפלגות "שלנו" להתפלגות ידועה – דוגמת הנורמלית) Mann-Whitney U = Wilcoxon rank sum הוא מבחן א-פרטרי המחליף מבחן t Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t Kruskal-Wallis מחליף מבחן one-way ANOVA מבחן Spearman ומבחן Kendall’s-tau מחליפים מבחן קורלציה

51 מבחנים א-פרמטריים ב-R קולמוגורוב-סמירנוב הוא מבחן א-פרטרי להשוואת שתי התפלגויות שכיחויות (או השוואת התפלגות "שלנו" להתפלגות ידועה – דוגמת הנורמלית) Orycteropus afer למצולם אין קשר להרצאה צריך להגדיר ל-R את ה-grouping variable ואת ה-response: נאמר שאנו רוצים להשוות בין התפלגויות השכיחויות של מסת הגוף של לטאות באיי מדף יבשת ואיים אוקייניים: island<-read.csv("island_type_final2.csv",header=T) attach(island) levels(type) [1] "Continental" "Land_bridge" "Oceanic“ Land_bridge<-mass[type=="Land_bridge"] Oceanic <-mass[type==" Oceanic"] ks.test(Land_bridge, Oceanic) Two-sample Kolmogorov-Smirnov test  data: Land_bridge and Oceanic D = , p-value = alternative hypothesis: two-sided

52 מבחנים א-פרמטריים ב-R Mann-Whitney U = Wilcoxon rank sum הוא מבחן א-פרטרי המחליף מבחן t האם יש הבדל בגודל הגוף (SVL) בין זכרים ונקבות של לטאות (Lacertidae)? ssd<-read.table("dimorphism.txt",header=T) attach(ssd) names(ssd) [1] "binomial" "sex" "svl" male<-svl[sex=="male"] female<-svl[sex=="female"] wilcox.test(male,female,paired=FALSE) Wilcoxon rank sum test with continuity correction data: male and female W = 15396, p-value = alternative hypothesis: true location shift is not equal to 0

53 מבחנים א-פרמטריים ב-R Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t האם יש הבדל בגודל הגוף (SVL) בין זכרים ונקבות של לטאות (Lacertidae) כאשר משווים בין הזוויגים של אותו מין? ssd<-read.table("dimorphism.txt",header=T) attach(ssd) names(ssd) [1] "binomial" "sex" "svl" male<-svl[sex=="male"] female<-svl[sex=="female"] wilcox.test(male,female,paired=TRUE) Wilcoxon rank sum test with continuity correction data: male and female V = , p-value = 1.773e-06 alternative hypothesis: true location shift is not equal to 0

54 מבחנים א-פרמטריים ב-R Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t האם יש הבדל בגודל הגוף (SVL) בין זכרים ונקבות של לטאות (Lacertidae) כאשר משווים בין הזוויגים של אותו מין? names(ssd) [1] "binomial" "sex" "svl" wilcox.test(male,female,paired=TRUE) אבל יש כאן בעיה: אנחנו רוצים שהמבחן יהיה מזווג לפי המין (binomial) – אבל בשום מקום לא הגדרנו זאת! Wilcoxon rank sum test with continuity correction data: male and female V = , p-value = 1.773e-06 alternative hypothesis: true location shift is not equal to 0

55 [1] "binomial" "female" "male"
מבחנים א-פרמטריים ב-R Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t האם יש הבדל בגודל הגוף של זכרים ונקבות של לטאות כאשר משווים בין הזוויגים של אותו מין? נשתמש ב-recast: בעצם נהפוך את הנתונים למטריצה (מה שבדרך כלל מנסים להמנע ממנו בעבודה עם תוכנות סטטיסטיות) sex<-recast(ssd,binomial~sex,measure.var = "svl") names(sex) [1] "binomial" "female" "male" שימו לב לשינוי מהשמות הקודמים!

56 [1] "binomial" "female" "male"
מבחנים א-פרמטריים ב-R Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t האם יש הבדל בגודל הגוף של זכרים ונקבות של לטאות כאשר משווים בין הזוויגים של אותו מין? נשתמש ב-recast: בעצם נהפוך את הנתונים למטריצה (מה שבדרך כלל מנסים להמנע ממנו בעבודה עם תוכנות סטטיסטיות) sex<-recast(ssd,binomial~sex,measure.var = "svl") names(sex) sex wilcox.test(sex$female,sex$male,paired=TRUE) [1] "binomial" "female" "male" Wilcoxon signed rank test with continuity correction data: sex$female and sex$male V = , p-value = 1.773e-06

57 [1] "binomial" "female" "male"
מבחנים א-פרמטריים ב-R Wilcoxon two-sample (=Wilcoxon signed-rank) test מחליף מבחן paired-t האם יש הבדל בגודל הגוף של זכרים ונקבות של לטאות כאשר משווים בין הזוויגים של אותו מין? נשתמש ב-recast: בעצם נהפוך את הנתונים למטריצה (מה שבדרך כלל מנסים להמנע ממנו בעבודה עם תוכנות סטטיסטיות) sex<-recast(ssd,binomial~sex,measure.var = "svl") names(sex) sex wilcox.test(sex$female,sex$male,paired=TRUE) [1] "binomial" "female" "male" t.test(sex$female,sex$male,paired = T) נ.ב. זו גם הדרך לערוך מבחןt מזווג:

58 מבחנים א-פרמטריים ב-R Kruskal-Wallis מחליף מבחן one-way ANOVA
הקוד למבחן זה דומה מאוד לקוד של מבחן ANOVA אותו הוא מחליף, רק שבמקום aov נכתוב kruskal.test island<-read.csv("island_type_final2.csv",header=T) Attach(island) kruskal.test(clutch~type) Kruskal-Wallis rank sum test data: clutch by type Kruskal-Wallis chi-squared = , df = 2, p-value =

59 מבחנים א-פרמטריים ב-R cor.test(clutch, mass, method="spearman") #or
מבחן Spearman ומבחן Kendall’s-tau מחליפים מבחן קורלציה למעשה הקוד פה הוא וריאציה על הקוד הרגיל למבחן קורלציה, על ידי הוספת ההגדרה למבחן הא-פרמטרי הרלוונטי בפרמטר “method” נכתוב במקום לכתוב: cor.test(clutch, mass) cor.test(clutch, mass, method="spearman") #or cor.test(clutch, mass, method="kendall") ונקבל בהתאמה: Spearman's rank correlation rho data: clutch and mass S = , p-value < 2.2e-16; rho Kendall's rank correlation tau data: clutch and mass z = 9.747, p-value < 2.2e-16; tau

60 Generalized linear models (GLM)
משמשים ב-GLM כשה response variable אינו רציף (ספירות, פרופורציות, בינארי וכו') - או כשהנחות המבחנים הפרמטרים (התפלגות נורמלית, שיוויון שונויות) אינן מתקיימות GLM מורכב שלושה חלקים: 1. linear predictor; 2. link function; 3. error distribution הראשון הוא ערך הפרמטר, השני מדבר על טרנספורמציה (למשל הוא “identity” כשאין טרנספורמציה ו-“log” עבור טרנספורמציה לוגריתמית) והשלישי אומר מה התפלגות ה residuals – למשל גאמא, פואסון או נורמלית. במקרה הפרטי בו link=identity ו-error=normal ה GLM זהה למודל לינארי "רגיל"

61 Generalized linear models (GLM)
מורכב שלושה חלקים: 1. linear predictor; 2. link function; 3. error distribution הראשון הוא ערך הפרמטר, השני מדבר על טרנספורמציה (למשל הוא “identity” כשאין טרנספורמציה ו “log” עבור טרנספורמציה לוגריתמית) והשלישי אומר מה התפלגות ה-residuals – למשל גאמא, פואסון או נורמלית. במקרה הפרטי בו link=identity ו-error=normal ה-GLM זהה למודל לינארי "רגיל" modelX<-glm(clutch~log10(age)+asin(lat),family=Gamma) Log link arcsin link Gamma errors

62 Non-linear models לעיתים ברור שהיחס בין ה predictor ל response אינו לינארי. model2<-lm(y~x+I(x^2)) ניתן לבחון מודלים שיודעים להתמודד עם מבנה כזה – למשל לעיתים קרובות משלבים משוואה ריבועית (quadratic) במודל: Response = a(predictor)2+b(predictor)+c וכרגיל אפשר לבדוק אם המודל הקוואדרטי טוב מהמודל הלינארי על ידי AIC או על ידי anova (ראו "בחירת מודלים" בהמשך)

63 Non-linear models לעיתים ברור שהיחס בין ה predictor ל response אינו לינארי. ניתן לבחון מודלים (breakpoint regression) בהם יש משוואות לינאריות שונות לערכים שונים של ה predictor Y = A1.x + K1     for x < breakpoint Y = A2.x + K2     for x > breakpoint Losos & Schluter Analysis of an evolutionary species-area relationship. Nature 408:

64 Multiple predictors מה לעשות, החיים מסובכים. לפעמים מה שמעניין אותנו מושפע מיותר מגורם אחד! קצב ליבם של זוחלים, למשל, מושפע גם מגודל גופם וגם מטמפרטורת הסביבה, וגם מהזמן והמהירות בהם נעו לאחרונה Smith, R. J Statistics of sexual size dimorphism. Journal of Human Evolution 36:

65 Multiple predictors מה לעשות, החיים מסובכים. לפעמים מה שמעניין אותנו מושפע מיותר מגורם אחד! קצב ליבם של זוחלים, למשל, מושפע גם מגודל גופם וגם מטמפרטורת הסביבה, וגם מהזמן והמהירות בהם נעו לאחרונה ניתן להסביר אם כן את המשתנה המעניין (קצב לב) אם יש לנו מידע על כל המשתנים המסבירים. ההנחה היא שכאשר אנו מכניסים את שלושתם למשוואה אנו רואים את השפעתו של כל אחד כאשר שני האחרים "מוחזקים קבועים" (held constant) Smith, R. J Statistics of sexual size dimorphism. Journal of Human Evolution 36:

66 הנחה זו נכונה כאשר אין מתאם (גבוה) בין המשתנים המסבירים לבין עצמם
Multiple predictors ניתן להסביר אם כן את המשתנה המעניין (קצב לב) אם יש לנו מידע על כל המשתנים המסבירים. ההנחה היא שכאשר אנו מכניסים את שלושתם למשוואה אנו רואים את השפעתו של כל אחד כאשר שני האחרים "מוחזקים קבועים" (held constant) הנחה זו נכונה כאשר אין מתאם (גבוה) בין המשתנים המסבירים לבין עצמם Smith, R. J Statistics of sexual size dimorphism. Journal of Human Evolution 36:

67 איזה מבחן נבחר? אם יש כמה predictor variables (נאמר ארבעה) וכולם קטגוריאלים המבחן יהיה ANOVA (נאמר 4-way ANOVA) אם יש כמה predictor variables (נאמר שבעה) וכולם רציפים המבחן יהיה Multiple Regression

68 איך כותבים מבחן עם כמה משתנים מסבירים?
lm(y~a+b+c) משתמשים בפלוס (+) בין המשתנים המסבירים. למשל במודל שמנסה לחזות ציוני קורסים לפי כמה למדנו, גיל המרצה, כמה התפללנו והאם יש שחזורים: model<-lm(Grade~days_studied+professor_age+prayer_number+reconstruction, data=marks) summary(model)

69 (analysis of co-variance)
איזה מבחן נבחר? אם יש כמה predictor variables (לפחות 2) – חלקם (לפחות 1) בדידים וחלקם (לפחות 1) רציפים המבחן יהיה ANCOVA (analysis of co-variance)

70 שני הגורמים מובהקים: יש הבדל בין השיניים ובין הזוויגים
איך זה נראה גרפית? דוגמא: מדדתי אורך שלוש שיניים בשועלים מצויים, זכרים ונקבות, מכל תחום תפוצתם Vulpes vulpes ANOVA p F MS DF SS 0.00 1 Intercept 142.3 103.8 sex 2 tooth 0.7 2276 1659.8 Error שני הגורמים מובהקים: יש הבדל בין השיניים ובין הזוויגים Regression ANCOVA ניב ניב עליון שן שסע תחתונה שן שסע תחתונה שן שסע עליונה שן שסע עליונה

71 איך זה נראה גרפית? דוגמא: אורך שלוש שיניים בשועלים מצויים, כפונקציה של קו הרוחב P t Std. Error Estimate > 25.25 0.378 9.554 Intercept 5.73 0.008 0.044 Latitude R-squared: 0.015, F = 32.83, 1 & 2161 DF; p < ANOVA Regression ANCOVA יש כלל ברגמן אבל קל לראות שהמודל* זוועתי: ניבים קטנים יותר משיני שסע *קו הרגרסיה הוא מודל ליחס בין ה-predictor ל-response

72 ANCOVA גרפית קל להבין את זה גרפית: בדוגמה משתנה בדיד אחד עם 2 רמות (מקווקו ומלא), ומשתנה רציף אחד (לאורך ציר ה X) response b. Continuous predictor בדיד מובהק רציף לא Null hypothesis a. response Continuous predictor Continuous predictor c. response רציף מובהק, בדיד לא d. response Continuous predictor שניהם מובהקים ותודה לדניאל על הגרפים

73 איך זה נראה גרפית? ANOVA Regression ANCOVA
דוגמא: אורך שיניים בשועלים מצויים, כפונקציה של קו הרוחב (ציר ה-X) הזוויג (צבע) ובאיזו שן מדובר (צורה) p F MS SS Df factor > 191.7 99 1 sex 2 tooth 844.69 436.1 Latitude 0.5 1114.2 2158 Residuals ANOVA Regression ANCOVA כל הגורמים מובהקים המודל הזה מסביר 96.3% מהשונות העברנו פה שישה קווי רגרסיה מקבילים

74 כך שהאורך של שן P בזכרים בתל אביב (קו רוחב 32) על פי המודל הוא:
קריאת תוצאות מודל ANCOVA ב-R Response = intercept + a for level 1 of the 1st categorical predictor variable or + b for level 2 of the 1st + c for level 1 of the 2nd categorical predictor or d for level 2… +k*(value of the continuous predictor variable) + error דוגמא ללא אינטראקציות למשל, אם נחזור לשועלים p t Std. Error Estimate factor >0.0001 55.92 0.078 4.342 Intercept (tooth c) 224.21 0.038 8.485 tooth_m 174.84 6.617 tooth_p 12.56 0.031 0.391 sex_male 29.06 0.001 0.043 Latitude Tooth / sex Latitude כך שהאורך של שן P בזכרים בתל אביב (קו רוחב 32) על פי המודל הוא: = *0.043

75 איך קוראים תוצאות של lm ב-R
כשהמשתנה המסביר קטגוריאלי, R משווה את כל הפקטורים ל-intercept של הפקטור הראשון בסדר אלפביתי island<-read.csv("island_type_final2.csv",header=T) levels(type) [1] "Continental" "Land_bridge" "Oceanic" model<-lm(clutch~type, data=island) summary(model) Estimate Std. Error t value Pr(>|t|) (Intercept) 11.11 <2e-16 *** typeLand_bridge 2.309 0.0216 * typeOceanic 0.578 0.5635 *לאחר המרה לוגריתמית, אף אחד לא מטיל שליש ביצה כאן המשתנה המסביר הוא סוג האי ואלפביתית הקטגוריה הראשונה היא "Continental" ההבדל בין continental ל-Land Bridge (t = 2.309) מובהק (p = 0.021). כך שגודל התטולה* הממוצע באיי פלטות טקטוניות הוא 0.33, ובאיי מדף יבשת הוא =

76 איך קוראים תוצאות של lm ב-R
כשהמשתנה המסביר רציף, R מדווח עבורו את השיפוע עם שגיאת התקן שלו וערכי ה-p וה-t שלו island<-read.csv("island_type_final2.csv",header=T) model3<-lm(clutch~area+lat,data=island) summary(model3) Estimate Std. Error t value Pr(>|t|) (Intercept) 4.267 2.68E-05 *** area -0.098 lat 3.259 ** כאן המשתנים המסבירים (את גודל התטולה) הם שטח האי וקו הרוחב שלו ההשפעה של קו הרוחב מובהקת (t = 3.259, p= ) כך שגודל התטולה עולה ב (היחידות הן לוג ביצים) בכל עליה של מעלה, ויורד ב יחידות עם העליה בשטח (אך הירידה הזו אינה מובהקת: t = 0.098, p = 0.92)

77 איך קוראים תוצאות של lm ב-R
כשהמשתנה המסביר רציף, R מדווח עבורו את השיפוע עם שגיאת התקן שלו וערכי ה-p וה-t שלו Estimate Std. Error t value Pr(>|t|) (Intercept) 4.267 2.68E-05 *** area -0.098 lat 3.259 ** כך שלוג גודל התטולה הממוצע של לטאה ב-New Caledonia (קו רוחב 21, לוג שטח 4.27 קמ"ר, לרגע נתעלם מזה שהיחס לשטח לא מובהק) יהיה: Intercept+slope*area+slope*latitude (slope)*4.27(area) (slope)*21latitude = 0.377 או 2.38 ביצים (10 בחזקת 0.377)

78 איך קוראים תוצאות של lm ב-R
ב-ANCOVA כשיש גם המשתנים מסבירים רציפים וגם קטגוריאלים, R מדווח intercept לאחרונים ושיפוע לראשונים, עם שגיאות התקן שלהם וערכי ה-p וה-t המתאימים model4<-lm(brood~mass+lat+type,data=island) summary(model4) Estimate Std. Error t value Pr(>|t|) (Intercept) 8.769 5.62E-13 *** mass -6.793 2.66E-09 lat -5.068 3.00E-06 typeLand_bridge -2.013 0.0479 * typeOceanic -0.689 0.4933 כאן אנו חוזים מספר תטולות שנתי (broods) באמצעות מסה, קו רוחב ו-3 קטגוריות של סוגי איים: איי פלטה טקטונית (continental), איי מדף יבשת (Land_bridge) ואיים אוקייניים (Oceanic).

79 איך קוראים תוצאות של lm ב-R
ANCOVA: גם משתנים מסבירים רציפים וגם קטגוריאלים model4<-lm(brood~mass+lat+type,data=island) summary(model4) Estimate Std. Error t value Pr(>|t|) (Intercept) 8.769 5.62E-13 *** mass -6.793 2.66E-09 lat -5.068 3.00E-06 typeLand_bridge -2.013 0.0479 * typeOceanic -0.689 0.4933 Residual standard error: on 72 degrees of freedom (242 observations deleted due to missingness) Multiple R-squared: 0.478, Adjusted R-squared: 0.449 F-statistic: on 4 and 72 DF, p-value: 1.25e-09 אלה ערכי R2, דרגות חופש, F וכו' של המודל בכללותו. שימו לב ש-R התעלם מתאים ריקים

80 איך קוראים תוצאות של lm ב-R
model4<-lm(brood~mass+lat+type,data=island) summary(model4) Estimate Std. Error t value Pr(>|t|) (Intercept) 8.769 5.62E-13 *** mass -6.793 2.66E-09 lat -5.068 3.00E-06 typeLand_bridge -2.013 0.0479 * typeOceanic -0.689 0.4933 כיוון שאלפביתית continental<Land_bridge<Oceanic החיתוך (intercept) שלנו הוא עבור הקטגוריה הראשונה: מיני continental. כך שמספר התטולות השנתי של מיני continental גדול משל מיני מדף יבשת וגדול בצורה לא מובהקת משל מיני איים אוקיניים (שימו לב: הבדל שלילי!). בנוסף מספר התטולות יורד עם המסה ועם העליה בקו הרוחב (שיפוע שלילי: יותר תטולות ללטאות קטנות, באיזורים טרופיים).

81 relevel model4<-lm(brood~mass+lat+type,data=island) summary(model4) Estimate Std. Error t value Pr(>|t|) (Intercept) 8.769 5.62E-13 *** mass -6.793 2.66E-09 lat -5.068 3.00E-06 typeLand_bridge -2.013 0.0479 * typeOceanic -0.689 0.4933 אבל בגורמים הקטגוריאלים יש לנו בעיה: R מחשב רק את ההבדל בין כל גורם לגורם הראשון באלפבית. כאן בין מיני איי פלטות טקטוניות יבשת למיני איי מדף יבשת ואיים אוקייניים. אבל הוא לא מחשב ולא מדווח על ההבדלים בין איים אוקייניים לאיי מדף יבשת. וחוץ מזה, הוא לא נותן לנו עבור שתי קטגוריות אלה שגיאות תקן והבדלים מאפס, אלא רק הבדלים מאיי פלטות טקטוניות ושגיאת תקן של המבחן הזה (לא את שגיאת התקן של המשתנה עצמו במודל).

82 relevel (2) model4<-lm(brood~mass+lat+type,data=island) summary(model4) אפשר להתחכם: להגדיר ל-R מי יהיה הגורם הראשון, אליו הוא ישווה את האחרים, על ידי הפקודה relevel: model4a<-lm(brood~mass+lat+relevel(type, "Land_bridge"),data=island) summary(model4a) או model4b<-lm(brood~mass+lat+relevel(type, "Oceanic"),data=island) summary(model4b)

83 relevel (3) אפשר להתחכם: להגדיר ל-R מי יהיה הגורם הראשון, אליו הוא ישווה את האחרים, על ידי הפקודה relevel: model4a<-lm(brood~mass+lat+relevel(type, "Land_bridge"),data=island) summary(model4a) Estimate Std. Error T value t Pr(>|t|) (Intercept) 6.442 1.16E-08 *** mass -6.793 2.66E-09 lat -5.068 3.00E-06 relevel(type,Land_bridge)Continental 2.013 0.0479 * relevel(type,Land_bridge)Oceanic 1.898 0.0617 . שימו לב שהפרמטרים של המודל הכללי נשארו זהים: Residual standard error: on 72 degrees of freedom (242 observations deleted due to missingness) Multiple R-squared: 0.478, Adjusted R-squared: F-statistic: on 4 and 72 DF, p-value: 1.25e-09

84 בחירת המבחן המתאים Predictor Response test In R Categorical
אם הנחותיהם של מבחנים פרמטריים (שונות דומה, התפלגות נורמלית של ה-residuals) מתקיימות: Predictor Response test In R Categorical Success/failure Binomial** binom.test Counts Chi-square/G chisq.test continuous ANOVA* aov Regression/correlation lm Categorical/counts Chi-square/ANOVA Categorical, multiple predictors Multi-way ANOVA continuous, multiple predictors Multiple regression Both categorical & continuous predictors ANCOVA *t-test if there are only 2 categories ** or logistic regression:

85 אינטראקציות קל להבין את זה גרפית: בדוגמה משתנה בדיד אחד עם 2 רמות (מקווקו ומלא), ומשתנה רציף אחד (לאורך ציר ה X) Null hypothesis a. response Continuous predictor Continuous predictor response c. בדיד מובהק רציף לא e. response Continuous predictor רציף מובהק בדיד לא, יש אינטראקציה d. response Continuous predictor שניהם מובהקים, יש אינטראקציה b. response Continuous predictor שניהם מובהקים, אין אינטראקציה f. response Continuous predictor רציף מובהק בדיד לא, אין אינטראקציה

86 אינטראקציות ב-R lm(y~a*b) lm(y~a+b+c+a:b)
משתמשים בפלוס (+) בין המשתנים המסבירים. עבור אינטראקציה משתמשים בנקודותיים. אם רוצים לבחון גם main effect וגם אינטראקציה משתמשים בכוכבית למשל למשל במודל שמנסה לחזות ציוני קורסים לפי כמה למדנו, גיל המרצה, כמה התפללנו והאם יש שחזורים: model<-lm(Grade~days_studied+professor_age+prayer_number*reconstruction_exist+professor_age:prayer_number, data=grades) כאן ביקשנו גם שתי אינטראקציות: בין תפילות לשחזורים וגיל לתפילה

87 אל תכניסו משתנים מנבאים המצויים במתאם גבוה בינם לבין עצמם!
חשוב: הנחת היסוד של מבחנים מרובי predictors היא שאין מתאם בין predictors שונים מתאם גבוה בין זוג predictor variables קרוי גם multi-co-linearity, ולעיתים מבוטא על ידי tolerance (1-R2) או על ידי הרציפרוקלי שלו Variance Inflation Factors (VIF = 1/tolerance) אם multicollinearity חזק קיים אזי המודל לא יהיה יציב, והערכת הפרמטרים עשויה להיות לא נכונה אל תכניסו משתנים מנבאים המצויים במתאם גבוה בינם לבין עצמם!

88 ה-R2 שלנו יעלה מ 0.45 ל 0.45007 – זה שווה לנו?
Model selection תמיד, תמיד, תמיד, ככל שנוסיף יותר predictor variables נסביר יותר מהשונות היחס יהיה מונוטוני – וטריוויאלי: במקרה הרע ביותר ה-Parameter estimate של משתנים נוספים יהיו אפס (למשל מספר מינים = *קו הרוחב + 0*מספר המנדטים של המפלגות הדתיות באותו אזור) אבל ה-parameter estimate לא יהיה אף פעם בדיוק אפס – הוא פשוט יהיה נמוך מאוד – נאמר נוסף מין על כל 5120 מנדטים שנוספים לש"ס, או נגרע מין על כל 974 מנדטים הנוספים לבית היהודי ה-R2 שלנו יעלה מ 0.45 ל – זה שווה לנו?

89 אבל, מהי יכולת הניבוי של המודל הזה לנתון הבא???
Model selection למעשה בכל שאלה סטטיסטית אפשר להסביר 100% מהשונות באמצעות מספר משתנים השווה למספר התצפיות רוצים דוגמא? מה הגובה שלכם? אבל, מהי יכולת הניבוי של המודל הזה לנתון הבא???

90 Model selection על תער אוקאם שמעתם?
ככל שנוסיף יותר predictor variables נסביר יותר מהשונות המטרה שלנו כמדענים היא להסביר את מקסימום התופעות בעזרת מינימום משתנים על תער אוקאם שמעתם? כך שאם יש לנו משתנים מסבירים רבים מאוד נרצה לדעת אילו מהם מוסיפים כל כך מעט שונות מוסברת, שלא שווה לסבך בגללם את החיים

91 Backwards (stepwise) elimination
Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים Backwards (stepwise) elimination 1. על פי ערכי p נתחיל במודל המורכב ביותר, ולמחוק כל פעם את המשתנה (או האינטראקציה) שלו מיוחס ה-p הגבוה ביותר – עד שכל ערכי ה p קטנים מ 0.05 (או ערך סף אחר). המודל איתו נשארנו ייקרא MAM = minimum adequate model דוגמא: מנסים להסביר גודל תטולה בודדת של מינים שונים של לטאות (response variable: clutch) באמצעות נתונים על גודל גופן (mass), טמפרטורת הסביבה שלהן (temp), הגובה החציוני מעל פני הים בו הן חיות (elevation), ומספר התטולות שהן מטילות בשנה (broods).

92 Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים
נתחיל במודל המורכב ביותר: clu<-read.table(“eggs.txt”,header=T) model1<-lm(clutch~mass+temp+elevation+broods, data=clu) Estimate se t p (Intercept) 1.585 0.628 2.523 0.012 * mass 4.012 1.507 2.662 0.008 ** temp 0.002 0.033 0.056 0.956 elevation 0.000 0.001 0.240 0.810 broods -0.234 0.098 -2.378 0.018 דוגמא: מנסים להסביר גודל תטולה בודדת של מיני לטאות באמצעות נתונים על גודל גופן (mass), טמפרטורת הסביבה שלהן (temp), הגובה החציוני מעל פני הים בו הן חיות (elevation), ומספר התטולות שהן מטילות בשנה (broods)

93 Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים
נמחק את הטמפרטורה ונחשב מחדש: model2<-lm(clutch~mass+elevation+broods) Estimate se t p (Intercept) 1.6098 0.4332 3.7160 0.0002 *** mass 4.0104 1.5058 2.6630 0.0079 ** elevation 0.0004 0.0014 0.2450 0.8068 broods 0.0917 0.0117 * דוגמא: מנסים להסביר גודל תטולה בודדת של מיני לטאות באמצעות נתונים על גודל גופן (mass), טמפרטורת הסביבה שלהן (temp), הגובה החציוני מעל פני הים בו הן חיות (elevation), ומספר התטולות שהן מטילות בשנה (broods)

94 כל המשתנים מובהקים, עצור!
Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים נמחק את מספר הגובה ונחשב מחדש: model3<-lm(clutch~mass+broods) כל המשתנים מובהקים, עצור! Estimate se t p (Intercept) 1.5688 0.3993 3.9290 0.0001 *** mass 4.3735 0.2566 0.0000 broods 0.0914 0.0110 * model3 = MAM גודל תטולה הוא פונקציה של גודל גוף ושל מספר התטולות השנתי, וזהו

95 ניתן פשוט לבחון אילו משתנים במודל מובהקים
Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים forward addition אפשר להתחיל במודל הפשוט ביותר, ולהוסיף כל פעם משתנה נוסף, ולהשאיר אותו אם ה-p עבורו קטן מ-0.05 (או ערך סף אחר). model1a<-lm(clutch~mass) model2a<- lm(clutch~mass+broods) model3a<- lm(clutch~mass+broods+elevation) ברגע שנגיע למודל שמכיל גורמים לא מובהקים (model3a בדוגמה שלנו) נעצור ונבחר את המודל הקודם (model2a בדוגמה שלנו) כ-MAM

96 ניתן פשוט לבחון אילו משתנים במודל מובהקים
Model selection ניתן פשוט לבחון אילו משתנים במודל מובהקים forward addition מתחילים במודל הפשוט ביותר, ומוסיפים כל פעם משתנה נוסף, ולהשאיר אותו אם ה-p עבורו קטן מ-0.05 (או ערך סף אחר). שימו לב: לא כל הצירופים האפשריים בין פרמטרים (והאינטראקציות ביניהם) משמשים לא ב-forward addition ולא ב-backwards elimination כאן, ויכול להיות שהצירוף "הכי נכון" לא נבדק. מצד שני מספר המודלים האפשרי עולה בחזקה של מספר הפרמטרים בהם משתמשים, כך שבחינת כל המודלים האפשריים לא מעשית אם יש לנו הרבה מאוד פרמטרים – אלא אם כן אנו יודעים יש לנו מחשב חזק והרבה זמן...

97 Akaike Information Criterion
Model selection Akaike Information Criterion Hirotsugu Akaike דרך חלופית לבחירת מודלים השוואה בין מודלים על פי 2 פרמטרים: כמה המודל "טוב" (רמת הדיוק בה מתוארת המציאות) לעומת כמה הוא מורכב (כמה פרמטרים הערכנו) AIC = 2k-2ln(L) כאשר K הוא מספר הפרמטרים ו-L הוא ה maximum likelihood של המודל (שבלי להכנס לפירוט מיותר מבטא במקרה הזה את ה residual sum of squares – ככל שהוא קטן יותר המודל טוב יותר, וניתן לכתוב [AIC = 2k+n[ln(RSS)) ככל שערך ה AIC נמוך יותר המודל טוב יותר

98 Akaike Information Criterion
Model selection Akaike Information Criterion Hirotsugu Akaike AIC = 2k-2ln(L) שימו לב שהתמיכה במודל חזקה יותר ככל שערך ה AIC נמוך יותר: AIC rewards descriptive accuracy via the maximum likelihood (High L), and penalizes lack of parsimony according to the number of free parameters (high K) ב-R השוואת מודלים לפי AIC פשוטה מאוד: AIC(model1,model2,model3)

99 Model selection נחזור ללטאות df AIC model1 6 4430.458 model2 5
model1<-lm(clutch~mass+temp+elevation+Broods) model2<-lm(clutch~mass+elevation+broods) model3<-lm(clutch~mass+broods) AIC(model1,model2,model3) df AIC model1 6 model2 5 model3 4 שוב מודל 3 הוא הטוב ביותר (יש לו ה-AIC score הנמוך ביותר) דוגמא: מנסים להסביר גודל תטולה בודדת של מיני לטאות באמצעות נתונים על גודל גופן (mass), טמפרטורת הסביבה שלהן (temp), הגובה החציוני מעל פני הים בו הן חיות (elevation), ומספר התטולות שהן מטילות בשנה (broods)

100 Akaike Information Criterion
AIC(model1,model2,model3) לא מאפשר לבחון כמה טוב הוא מבחן בודד, אלא רק להשוות בין מספר מבחנים הנשענים על אותם נתונים התוצאה (score) של AIC חסרת משמעות בפני עצמה: לא ניתן להשוות AIC בין מבחנים של שאלות שונות או שמתבססים על נתונים שונים כמו שניתן להגיד ש 0.05=0.05=0.05 בנוסף, כלל האצבע אומר שלא ניתן לומר שהבדלים בערכי AIC של פחות מ-2 אינם מאפשרים לומר איזה מודל טוב יותר

101 Akaike Information Criterion
כלל האצבע אומר שלא ניתן לומר שהבדלים בערכי AIC של פחות מ-2 אינם מאפשרים לומר איזה מודל טוב יותר AIC(model1,model2,model3) df AIC ∆AIC model3 4 model2 5 1.94 model1 6 3.937 נסדר את המודלים על פי ערכי AIC מהנמוך (הכי טוב) לגבוה, ונחשב עבור כל אחד את הפרש ה AIC score מהמודל עם ה score הנמוך ביותר – לקבלת ערך ה AIC∆ של כל מודל. בדוגמה הזו לא ניתן לומר שמודל 3 עדיף על מודל 2 כיוון שההפרש ב AIC ביניהם קטן מ-2.

102 Model selection: AIC and other animals
המודל עם ה-AIC הנמוך ביותר בהחלט עשוי להכיל גורמים שערך ה-p שלהם גדול מ-0.05 (AIC מתירני למדי לגבי הפרמטרים שהוא "מרשה" לכלול). AIC וערכי p באים מפילוסופיות שונות מאוד של סטטיסטיקה, ולא כדאי לערבב ביניהם* *but see Johnson Revised standards for statistical evidence. PNAS 110: , who suggest the philosophies can be reconciled – and that p values <<0.05 should be used See also a lively debate about p values and AIC in Ecology (95 #3, 2014:

103 Model selection: variation on the AIC theme
AICc = AIC+(2k*[k+1]/[n-k-1]) AICc תיקון ל AIC עבור מדגמים קטנים (חבילת R 2. AIC weights “Akaike weights are used in model averaging. They represent the relative likelihood of a model. To calculate them, for each model first calculate the relative likelihood of the model, which is just exp(-0.5 * ∆AIC score for that model). The Akaike weight for a model is this value divided by the sum of these values across all models.”† 3. Baysian Information Criterion, BIC סובלני פחות1 מ AIC למספרים גדולים של פרמטרים†† BIC: -2*ln L + k*ln(n) Aho et al Model selection for ecologists: the worldviews of AIC and BIC. Ecology, 95: †† Wagenmakers & Farrell 2004 1. שימו לב: k מוכפל בגודל המדגם!, ב-AIC גודל המדגם לא משחק

104 זיכרו, בכל עבודה: "No statistical procedure can substitute for serious thinking about alternative evolutionary scenarios and their credibility" Westoby, Leishman & Lord On misinterpreting 'phylogenetic correction. J. of Ecology 83:


Download ppt "סטטיסטיקה בסיסית והסקה סטטיסטית ב-R"

Similar presentations


Ads by Google