You are on page 1of 6

:‫ניתוחי שונות ומשתני דמה‬

###variance analysis (ANOVA) steps:

library(dplyr)

group_by(data,x1,x2,...) %>%

summarise(

count = n(),

mean = mean(y, na.rm = TRUE),

sd = sd(y, na.rm = TRUE)

:‫מזה מקבלים את הפלט הבא‬

:‫גורמי‬-‫ניתוח שונות חד‬

#one-way ANOVA:

)‫ אם זה רב גורמי שמים בהתאם‬,‫ אחד‬x ‫(בניתוח חד גורמי שמים רק‬

res.aov <- aov(mood.gain~drug, data = data)

summary(res.aov)

:‫ שהשתמשנו מובהק בונים קונטרסטים‬x-‫אם יוצא לנו שה‬

#if significant- building contrasts:

#c1- level 2 vs. level 1+3

#c2- level 1 vs. level 3

data$c1[data$x=="level1"]<- -0.5

data$c1[data$x=="level2"]<- 1

data$c1[data$x=="level3"]<- -0.5
data$c2[data$x=="level1"]<- -1

data$c2[data$x=="level2"]<- 0

data$c2[data$x=="level3"]<- 1

#example

data$c1[data$drug=="placebo"]<- -0.5

data$c1[data$drug=="anxifree"]<- -0.5

data$c1[data$drug=="joyzepam"]<- 1 )

#‫ בתור נומריים‬2‫סי‬-‫ ו‬1‫אומר לתוכנה להתייחס למשתנים סי‬

data$c1<-as.numeric(data$c1)

data$c2<-as.numeric(data$c2)

#build a model and check which contrast is statistically significant:

model1 <- aov(Y ~ c1+c2, data = data)

summary(model1)

:‫נקבל את הפלט הבא‬

.‫ נובע מההבדל שבדקנו בקונטרסט הראשון‬F ‫ ההבדל במבחן‬,‫ כלומר‬.‫ מובהק‬c1 ‫ניתן לראות שרק‬

.‫ נצטרך לדעת את הממוצעים של כל קבוצה‬,‫כדי לוודא ממה באמת נובע ההבדל‬

View(group_by(data, drug) %>%

summarise(

mean = mean(mood.gain)))

:‫נקבל מזה את הפלט הבא‬


‫ לכן נסיק שההבדל‬,‫ וגם הקונטרסט שכלל אותה היה מובהק‬,‫ הכי גדול‬2 ‫נראה הממוצע של תרופה‬
.2 ‫ נובע מתרופה‬F ‫במבחן‬

:‫גורמי‬-‫ניתוח שונות דו‬

#two-way ANOVA (‫גורמי‬-‫)ניתוח שונות דו‬:

library(dplyr)

res.aov <- aov(Y ~ x1+x2, data = data)

summary(res.aov)

:‫נקבל את הפלט הבא‬

:‫ יש שתי דרכים לעשות זאת‬.‫ לכן נבנה קונטרסטים‬,‫ מובהקים‬x-‫ניתן לראות ששני ה‬

#long way to do these contrasts:

#c1- x1 main effect (level 1 vs. level 2)

#c2- x2 main effect (level 1 vs. level 2)

#c3- interaction

data2$c1[data2$x1=="level1" & data2$x2=="level1"]<- 1

data2$c1[data2$x1=="level1" & data2$x2=="level2"]<- 1

data2$c1[data2$x1=="level2" & data2$x2=="level1"]<- -1

data2$c1[data2$x1=="level2" & data2$x2=="level2"]<- -1

data2$c2[data2$x1=="level1" & data2$x2=="level1"]<- 1

data2$c2[data2$x1=="level1" & data2$x2=="level2"]<- -1

data2$c2[data2$x1=="level2" & data2$x2=="level1"]<- 1

data2$c2[data2$x1=="level2" & data2$x2=="level2"]<- -1

data2$c3[data2$x1=="level1" & data2$x2=="level1"]<- 1

data2$c3[data2$x1=="level1" & data2$x2=="level2"]<- -1


data2$c3[data2$x1=="level2" & data2$x2=="level1"]<- -1

data2$c3[data2$x1=="level2" & data2$x2=="level2"]<- 1

( #example:

data2$c1[data2$gender=="male" & data2$lunch=="free/reduced"]<- 1

data2$c1[data2$gender=="male" & data2$lunch=="standard"]<- 1

data2$c1[data2$gender=="female" & data2$lunch=="free/reduced"]<- -1

data2$c1[data2$gender=="female" & data2$lunch=="standard"]<- -1 )

#Checking which contrast is significant

model2 <- aov(y ~ c1+c2+c3, data = data)

summary(model2)

:‫מזה נקבל את הפלט הבא‬

‫ שני האפקטים העיקריים‬-‫ כלומר‬,‫שבו אנחנו רואים שרק שני הקונטרסטים הראשונים מובהקים‬
‫ פה לזה שקיבלנו במודל הרגיל‬res‫ אם נשווה את ה‬,‫ בנוסף‬.‫ והאינטראקציה לא מובהקת‬,‫מובהקים‬
.‫ כלומר האינטראקציה לא ממש השפיעה‬,‫(בלי הקונטרסטים) נראה שאין הרבה שינוי‬

#short way to do these contrasts:

modelsame <- aov(y ~ x1*x2, data = data)

summary(modelsame)

#when doing that, R gives us the two main effects and interaction.

)‫(נקבל מזה את אותו פלט בדיוק שקיבלנו מהדרך הארוכה‬

‫ אם אני אכפול במשתנה‬.x1*x2-ְ ‫ ו‬,x1, x2 ‫ לנבא באמצעות‬R‫(כשעשינו כפל במודל בעצם אמרנו ל‬
‫ את האינטראקציות הזוגיות וגם את‬,‫נוסף אני אקבל את האפקטים העיקריים של שלושת המשתנים‬
).‫האינטראקציה המשולשת‬
:‫משתני דמה‬

#dummy coding:

,‫ בונה את משתני הדמה בעצמה‬lm-‫ פקודת ה‬,R‫כשאנחנו עושים רגרסיה עם משתנים קטגוריאליים ב‬
.‫ משתנה באופן אקראי‬0,0-‫ומציבה ב‬

#creating a linear model:

regmodel<- lm(y ~ x,data=data)

summary(regmodel)

#asking R to tell us how the variables are coded ( 0-‫ ומה כ‬1-‫)הפקודה מראה לנו מה קודד כ‬

contrasts(data$x)

‫ יש להפוך אותם לכאלה כדי‬,‫(הפקודה הזאת פועלת רק על משתנים קטגוריאליים! אם הם לא‬


)‫לראות‬

#dummy coding- same as contrasts:

data$c1[data$x=="level1"]<- 0

data$c1[data$x=="level2"]<- 1

( #example:

data2$c1[data2$test.preparation.course=="completed"]<- 0

data2$c1[data2$test.preparation.course=="none"]<- 1 )

#‫ בתור נומרי‬1‫אומר לתוכנה להתייחס למשתנה סי‬

data$c1<-as.numeric(data$c1)

#build a model

model<- lm(y ~ c1, data = data)

summary(model)
‫מזה נקבל את הפלט הבא‪:‬‬

‫שבו )‪ a (intercept‬מייצג את הממוצע של המשתנה שקודדנו כ‪0-‬‬

‫ו‪ b-‬הוא ההפרש של הממוצע של המשתנה שקודדנו כ‪ 1-‬מהממוצע ‪.a‬‬

‫כשנעשה מודל עם פקודת ‪ lm‬כאשר יש לנו גם משתנה רציף וגם משתני דמה‪:‬‬

‫ה‪ b-‬של המשתנה הרציף הוא מקדם רגרסיה רגיל‪.‬‬

‫ה‪b-‬ים של המשתנים הקטגוריאלים יהיו ההפרשים של כל משתנה מהממוצע של המשתנה שקודד‬


‫‪ 0,0‬כשהמשתנה הרציף מוחזק קבוע‪.‬‬
‫המשתנה שקודד ‪ 0,0‬יהיה היחיד שלא יופיע בפלט‪.‬‬

You might also like