I. משתנים
נומרי – מספרים.
אלפא נומרי – לא מספרים – ניתן למצוא להם שכיחות, אך לא לעשות עיבוד סטטיסטי.
סוגי משתנים נומריים:
1. נומינלי – Name – אין טעם לעשות עיבוד סטטיסטי, גם אם זה מס’, כמו בת.ז..
2. אורדינלי – משתנה סדר – סולם שביעות רצון, למשל. יש סדר אך אין משמעות לרווח: מס’ 4 (שביעות רצון גבוהה) הוא לא פי 2 ממס’ 2 (לא מרוצה).
3. אינטרוולי - גם לסדר וגם להפרש יש משמעות, יחידות ברורות.
משתנה יכול להיות מסוג String או מסוג נומרי. שם המשתנה חייב להיות חסר רווחים, עד 8 תווים. צריך לבדוק כמה ספרות דרושות אחרי הנקודה ב Decimals.
אם רוצים לעשות משתנה נומרי נומינלי, למשל לתת מס’ לכל צבע – צריך לתת תווית למשתנה דרך Values. בData View אפשר לראות גם תווים וגם משמעויות של התוויות ע”י לחיצה עם Value Label.
כדי לתת תווית לשם של משתנה – נכנסים ל Variable view -> Label -> כותבים.
II. פקודת Frequencies
יוצרת טבלת שכיחויות, סוגי סטטיסטיקות וגרפים.
אפשר לבחור את הפקודה מהתפריט : Analyze -> Descriptive Statistics -> Frequencies.
freq var= religion. -> שם המשתנה עליו יוצרים טבלת שכיחויות.
בטבלה רואים : שורות
שלפיהן נכתבה הטבלה - Valid
שורות
שעבורן קיים ערך חסר – Missing
%
מכלל המדינות, גם אם חסר שם וגם אם מופיע
המשתנה - Percent
% מתוך המדינות בהן מופיע המשתנה – Valid Percent
III. ערך חסר
תצפית עבורה חסר נתון למשתנה מסוים. יש להפריד בין קבוצות של ערכים חסרים, יש הבדל בין : 5 – “לא יודע” ל 6 – “לא רוצה לענות”.
צריך לסמן למערכת שאלו ערכים חסרים כדי שלא ישתתפו בפעולות סטטיסטיות: אפשר לעשות זאת דרך התפריט : Values -> Discrete Missing.
או דרך ה Syntax :
mis val birth_rt (5).
(מתוך משתנה birth_rt, ערך 5 הוא ערך חסר.)
כדי להגדיר משתנים חסרים
לטווח: mis val q1
to q10 (8).
(בכל המשתנים באמצע יהיה 8 ערך חסר).
כדי להגדיר שני ערכים שונים במשתנים שונים: mis val age(99) aliah(-1).
כדי להגדיר עד לערך הגבוה או הנמוך ביותר: mis val life to age(10 thru 99).
או שכותבים (10 thru highest) לגבוה ביותר.
או (lowest thru 10) לנמוך ביותר.
תת פקודות בתוך frequencies :
(ברירת המחדל של הפקודה תיתן את הנתונים הסטטיסטים הכי נפוצים: ממוצע, סטיית תקן, מינימום ומקסימום).
Freq var= lifeexpm / stat = all. נקבל את כל הנתונים הסטטיסטיים של הפקודה.
/stat=stddev. סטיית
תקן
/stat=median. חציון
/stat=mode. שכיח
/stat=variance. שונות
/stat=range. טווח
/stat=max.
/stat=min.
/stat=sum. סכום
אם לא רוצים טבלת שכיחויות: freq var= lifeexpm/ stat=default/ format= notable.
גרפים ונתונים סטטיסטים:
3 סוגים : Histogram - משתנה רציף. Barchart - דיאגרמת מקלות, משתנה לא רציף וpiechart - עוגה (מתאימה לאחוזים).
הפקודה : freq
var= lifeexpm/ histogram.
VI. מיון
מיון נומרי- לפי סדר מספרי עולה או יורד.
מיון אלפא נומרי – לפי סדר א”ב.
sort cases by country.
אם לא נכתוב את הסדר, ברירת המחדל היא סדר עולה.
סדר יורד
סדר עולה
שני מיונים, אחד בתוך
השני: sort cases by
religion(*) country(**).
(*) אם נכתוב (a) אז רק מה שכתוב משמאל יהיה בסדר עולה.
(**) אם נכתוב (d) אז כל מה שכתוב משמאל יהיה בסדר יורד.
V. פקודת Compute
יצירת משתנה חדש. compute lifeexp= (q1+q2)/2.
נראה עמודה חדשה בData view . אם יש משתנה חסר באחד המשתנים שחישבנו, גם במשתנה החדש יהיה ערך חסר.
compute עובדת רק על משתנים נומריים. ברירת המחדל היא לא להראות את הספרות אחרי הנקודה העשרונית. אם רוצים, אפשר לשנות את זה ב Variable View.
בעזרת compute ניתן גם לשנות משתנה קיים: compute grade= grade+5.
ע”י freq אפשר למצוא סטטיסטי של כל התצפיות בעמודה. בעזרת compute נמצא סטטיסטי של כמה משתנים של נבדק אחד בשורה, למשל ממוצע:
compute
a=mean(t1,t2,t3).
או
compute a=mean(t1 to t3).
או סטטיסטי אחר: compute minn= min(t1 to t10).
(פקודה זו תכניס למשתנה minn את הציון הנמוך ביותר).
VI. פקודת If
פקודת התניה. יכולה
לבנות משתנה חדש כמו compute. if
(lifeexp=>67.5) life_gr=2.
exe.
אפשר להשתמש בif ללא compute: if (cast=2) cast=cast-cast*0.1.
(הפקודה שינתה משתנה קיים ונתנה לו ערך קטן ב- 10%).
התניות : or / and
תנאי פשוט – שאלה בוליאנית אחת.
תנאי מורכב – או or ( | - \shift ) או and ( & -shift 7).
תנאי יכול להיות מורכב גם מכמה and וגם מכמה or.
מבחינת אופרציות מתמטיות לוגיות ל and יש עדיפות על or. המחשב קודם ישווה בין משתנים שיש ביניהם and ואח”כ בין משתנים שיש ביניהם or.
Or - if (faculty=1 | faculty=2)
And - if (faculty=1 & faculty=2)
שילוב תנאים: if (mar=1 & child=0 | mar=1 &
child>0) family=2.
אפשר לעשות התניות לפי
ביטוי מתמטי: if
(people/room>1) a=2.
כדי להשוות בין משתנים בתוך if הם חייבים להיות נומריים.
מבחינת המחשב false=0 ו true=1.
בעזרת compute אפשר לבצע גם if (תנאי), אבל מוגבל מבחינת
ערכים, מפני שהמשתנה יקבל רק 0 או 1.compute a=lifem>lifef.
exe.
בעזרת if
אפשר לבנות יותר ערכים
של המשתנה: compute
a=0.
if (lifem>lifef) a=3.
בשתי הדרכים נקבל את אותה תוצאה אם נסמן את a=1. if (lifem>lifef) a=1.
VII. פקודת means
אחרי שהשתמשנו בתנאי הלוגי if כדי להבחין בין קבוצות, פקודת means מבצעת ממוצעים וסטטיסטים שונים לקבוצות שונות של אותו משתנה.
Means pop_incr by life_gr.
• יכולות להיות יותר משתי קבוצות שאליהן life_gr יחלק. משתנה life_gr יכול להיות נומרי או אלפא נומרי.
• משתנה pop_incr, שעליו נבצע את הסטטיסטיקה חייב להיות משתנה נומרי.
כדי להגדיר את ערכי life_gr נלך ל Values ב Variable view, ונגדיר שם.
ברירת המחדל של means היא
הממוצע, מס’ תצפיות וסטיית תקן. כדי להגיע
לעוד סטטיסטים דרכה יש תת פקודה cells:
(או mead או sttdev או var במקום sum)
דוגמה:
כדי להציג את תוחלת החיים של מדינות לפי הדת שלהן : means pop_inc by religion.
כדי להציג את ממוצע תוחלת החיים לפי דתות (ולא מדינות) בשימוש ב life_gr (life_gr מחלק ל-2 קבוצות עיקריות, מעל מתחת לממוצע תוחלת החיים):
means pop_inc by life_gr by
religion.
VIII. פקודת string
מגדירה משתנה חדש מסוג אלפא נומרי. if ו compute לא מסוגלות לעשות זאת.
string b (a5).
• המספר 5 מסמן את מס’ התווים שאפשר להכניס למשתנה החדש b.
• a – מסמן משתנה אלפא נומרי.
f – מסמן משתנה נומרי.
ערכי משתנים אלפא נומריים
יופיעו בין גרשיים ‘ ‘. כך שמשתנה אלפא נומרי
יכול להופיע בתנאי לוגי: if
(religion=’animist’) b=’a’.
• religion הוא משתנה אלפא נומרי.
(ראן הערה למטה).
הסימון ל’לא שווה’ הוא <> או ~=.
במקום a>=5 אפשר 5 ge a (greater).
במקום a<=5 אפשר 5 le a (lower).
במקום a>5 אפשר 5 gt a
במקום a<5 אפשר 5 lt a
במקום a=5 אפשר 5 eg a
IX. פקודת crosstab
מחשבת כמה משתנים בו זמנית לטבלת הצלבת מידע באחוזים. המשתנה הI יהיה בשורות והמשתנה הII יהיה בעמודות:
Cross age by survival.
Survival | |
age |
אם נרצה לשנות את חישוב
ה 100% לפי הטבלה ניתן לחלק לשלושה סוגי אחוזים:
לפי שורות, לפי עמודות ולפי כלל האוכלוסיה:
cross age by survival/ cells=row.
כל שורה הופכת ל100% (מס’ השורות כמס’ הקב’ במשתנה age).
cross survival by age/ cells=col.
כל עמודה הופכת ל100% (מס’ השורות כמס’ הקב’ במשתנה survival).
cross age by survival/ cells=total.
מתוך כל האוכלוסייה מהו אחוז ההישרדות.
ברירת המחדל של crosstab, בלי תת פקודה cells, היא להראות ערכי שכיחות בטבלה. כדי שעדיין נוכל לראות את השכיחות רושמים count: col count. או row או total=/cells
אם מחלקים לפי שלושה
משתנים: cross age
by survival by class.
לפי המשתנה האחרון מתחלקת כל הטבלה :
Class 1 | survival | ||
age | |||
Class 2 | survival | ||
age |
אם נוסיף תת פקודה: cross age by survival by class/
cells= row.
כל מחלקה (class) תהיה 100% וכל גיל יהיה 100%.
cross age by survival by
class/ cells= col.
כל מחלקה (class) תהיה 100% והישרדות תהיה 100%.
cross age by survival by
class/ cells= total.
כל מחלקה (class) תהיה 100% וגיל והישרדות יהיו חלק מה 100%.
X. פקודת recode
נועדה גם לבנות משתנה חדש או לשנות משתנה קיים (מחליפה את if וcompute). היא יוצרת פעולת צמצום: ממס’ משתנים 1,2,,3,4,5 לקטגוריות 1 עד 3 = 1, 3 עד 5 = 2.
דוגמה: חישוב משתנה liffexp
לפי אזור: mean lifeexp
by region.
1. בעזרת compute: compute region1=1.
if (region=4) region1=3.
if (region=5) region1=4.
if (region=6) region1=5.
exe.
2. בעזרת recode:
recode region (1,2=1) (3=2)
(4=3) (5=4) (6=5).
פקודה זו קודדה מחדש
את משתנה recode. אם נרצה לא לאבד נתונים:
recode region (1,2=1) (3=2) (4=3) (5=4) (6=5) into region1.
פקודה זו קודדה את הנתונים לתוך משתנה חדש region1.
recode region (1,2=1) (else=copy)
into region1.
בצורה כזו שאר הקטגוריות יועתקו ללא שינוי.
recode lifeexp (lo thru 67=1)
(67 thru hi=2) into lifeexp1.
פקודה זו תקודד לתוך lifexp1 את המס’ הכי נמוך עד 67 לקטגוריה 1 ואת 67 (כולל) עד המס’ הכי גבוה לקטגוריה שניה.
אפשר גם להחליף ערכים
עם recode: recode
sex (1=2) (2=1).
כדי להגדיר טווח עם to: (to מתאימה לכל הפרוצדורות):
recode q1 to q10 (9=8) (else=copy).
אם לא נכתוב (else=copy) כל מה שלא נגדיר יהפוך לערך חסר.
אפשר לבצע recode למשתנה אלפא נומרי (הופך אלפא נומרי לנומרי):
=2) into sex1. ’m‘)=1) ’f‘recode sex (
פרוצדורות recode וcompute יכולות לבנות רק משתנים נומריים. אם נרצה לבנות משתנה אלפא נומרי נצטרך להגדיר אותו בעזרת string:
(בניית משתנה sex1
כמשתנה אלפא נומרי בעל תו 1). string
sex1 (a1).
Into sex1.(’m’=’male‘)) ‘f’=’female‘recode sex (
recode לא יודעת לבצע פעולות חשבוניות.
XI. פקודת list
לוקחת את כל הטבלה מהdata view
ומדפיסה אותה בoutput . list.
אם נרצה להדפיס רק חלק מהערכים / משתנים :
מדפיס את כל שמות המדינות
ללא מידע נוסף.
ידפיס מס’ משתנים: list var= country lifeexpf.
ידפיס את כל המשתנים
ביניהם:
כדי להדפיס תצפיות: list var= country to lifeexpf/ cases= from 10 to 20.
list
var= country to lifeexpf/ cases= from 10 to 20 by 2.
ידפיס את תצפית 10, 12, 14, וכו’ – בדילוגים של 2.
הערה: כדי לסמן מערך עד ערך בתוך משתנה – thru.
כדי לסמן ממשתנה למשתנה – to.
XII. פקודת filter
סינון לפי משתנה. מאפשרת לסנן בעזרת תנאי לוגי את השורות. הפקודה מאפשרת להתייחס רק למשתנה אחד במקום crosstab שזורקת נתונים נוספים כי היא מבצעת הצלבה בין שני משתנים.
דוגמה: משתנה population, ונרצה לחשב רק מדינות עם אוכלוסייה מעל לממוצע:
קודם נחשב ממוצע ע”י freq או בחירה מתפריטים. קיבלנו ממוצע 48000.
נבנה משתנה: כל מי שגבוה מ48000 יקבל 1. כל מי שנמוך מ48000 יקבל 0:
(a יקבל 1 אם זה נכון ו0 אם זה
לא נכון) compute
a= population>=48000.
אפשר גם בדרך אחרת: compute a=0.
if (population>=48000) a=1.
עכשיו נעשה את הסינון: filter by a.
פרוצדורת filter זורקת את כל ערכי 0 ומשאירה את מה שאינו 0.
(כאשר נריץ לא ישתנה שום דבר, אבל במס’ בצד של השורות נראה סימוני
המחשב יתייחס מעכשיו רק לתצפיות שאינן מסומנות, לגבי כל פעולה שנרצה לבצע).
אם נרצה לחזור למדגם
המקורי : filter off.
חשוב לזכור לגבי filter
שפקודת filter נוספת בהמשך ה syntax
מבטל את הפקודה הראשונה
ועכשיו הסינון מתבצע רק לפי הפקודה השניה
שכתבנו. filter by
b.
כדי שהסינון יתבצע לפי שתי הפקודות (כלומר שתצפית תתבטל או לפי a שווה ל0 או לפי b שווה ל0):
c מקבל
1 כאשר a וגם b שונים מ0.
ואז נבצע לפיו סינון: filter by c.
אם נרצה להיפטר מתצפיות מסוימות לתמיד נשתמש בפקודת select if :
(פעולה זו כדאי לבצע
על קובץ אחר).Select
if (c<>15).
אם נרצה להשתמש בselect אבל לא לאבד את הנתונים צריך להוסיף פקודת temporary:
temporary.
Select if (c<>15).
וכדי לחזור
אחורה:
temporary גורמת לכך שselect לא תמחק את הנתונים לגמרי. היתרון הוא שלא צריך לבנות משתנה חדש.
XIII. פקודת count
פקודת לולאה. סופרת כמה פעמים הופיע ערך מסוים במס’ משתנים.
למשל בשאלוני שביעות
רצון, כאשר רוצים לבדוק כמה פעמים ענה אותו
אדם תשובה חיובית (1): אפשר לעשות זאת בעזרת compute וif: compute work=0.
If (work1=1) work=work+1.
If (work2=1) work=work+1.
If (work3=1) work=work+1.
If (work4=1) work=work+1.
If (work5=1) work=work+1.
נספור בכל משתנה האם האדם ענה בחיוב או לא ונוסף זאת לסה”כ במשתנה work. ניתן לעשות זאת אך זה מסורבל וארוך.
אם נשתמש בcount:work1
to work5(1).
exe.
הפקודה תספור את מס’ הפעמים שהופיע 1 בין ממשתנה 1 עד משתנה 5. work יוכל לקבל ערכים מ0 עד 5 (לא יכול להיות משתנה שלילי).
אפשר לספור יותר מערך אחד, לדוגמא בסקר שביעות רצון:
count satisfy=satisf1 to satisf20(4,5).
הפקודה סופרת כמה שאלות ענו עליהן 4 או 5.
אם יש משתנים באמצע שלא נרצה לספור:
count satisfy=satisf1 to satisf10,
satisf11 to satisf20(4,5).
או
לא חייבים להשתמש בto, נשתמש בפסיקים כאשר המשתנים לא צמודים:
נספור את הערכים מ1 עד
3. count a=a1,a2,a3 (1
thru3).
XIV. פקודת plot
דיאגרמת פיזור לפי מס’
משתנים. יש פרוצדורה דומה ב freq
אך זו עובדת רק על
משתנה יחיד.
• הplot הראשון הוא שם הפרוצדורה.
• הplot השני הוא שם תת הפרוצדורה.
• Lifeexpf, משתנה I הוא על ציר Y.
• Lifeexpm, משתנה II הוא על ציר X.
בהרצה נוכל לבקש להוסיף
קו רגרסיה לדיאגרמת הפיזור: זו תת פרוצדורה
נוספת בתוך plot והיא תמיד באה לפני ה plot
השני: format=regression.
plot format=regression/ plot=lifeexmpf
with lifeexpm.
כדי לקבל R² חייבים לעצב את הגרף – לוחצים על הגרף פעמיים ונפתח חלון chart.
Chart -> options -> scatter plot options -> file options -> regression options: display R-square in legend.
אם נרצה מס’ משתנים על ציר Y: .plot plot= lifeexpf, lifeexpm with literacy
נקבל שתי טבלאות שונות: אחת לפי lifeexpm והשניה לפי lifeexpf.
ניתן גם לכתוב כמה משתנים שיופיעו בציר X.
דרך נוספת לקבלת שתי טבלאות שונות:
plot plot=lifeexpm with literacy/
plot=lifeexpf with literacy.
אם נרצה לקבל על אותו גרף שתי דיאגרמות:
plot format=overlay/ plot=lifeexpf,
lifeexpm with literacy.
בדיוק באותה דרך ניתן לשים כמה משתנים על ציר X.
ב plot נוכל לקצץ חלק מהתצפיות
בלי שימוש ב filter: plot
format=overlay/
נגדיר כי מעניינות אותנו רק התצפיות שערכן מעל מינימום 50, בציר X:
horizonal=min(50)/
plot=lifeexpf, lifeexpm with
literacy.
ניתן לקצץ גם בטווח המקסימילי (max) וגם בציר Y (vertical).
XV. העברת נתונים בין SPSS ו EXCEL
מעבירים דרך קובץ ascii. בוחרים את הנתונים מ spss ושולחים אותם.
Write outfile= ‘d:\data.txt’/ country religion lifeexpf lifeexpm.
exe.
בפקודה זו שלחנו לקובץ שנקרא d מסוג txt את המשתנים שכתבנו.
הרווחים בקובץ טקסט מגיעים מה width של ה variable view.
ניתן בפקודה לומר למחשב איך לסדר את המשתנים ומאיזה סוגים:
Write outfile= ‘d:\data.txt’/ country to literacy (a12, f8, f8, f5, 2x, a8, 2f4).
exe.
• המחשב יאמר לנו אם שכחנו או הגדרנו יותר מדי משתנים.
• a12 – המשתנה הראשון הוא אלפא נומרי בעל 12 מקומות.
• f8 – משתנה נומרי בעל 8 מקומות.
• f5 – משתנה נומרי בעל 5 מקומות.
• 2x – רווח בין שני המשתנים הללו.
• 2f4 – שני משתנים נומריים בעלי 4 מקומות.
• פקודת exe היא קריטית בcompute וב outfile. ב freq לא.
אם נרצה שהמחשב יתחיל לכתוב בקובץ החדש מתור 10, נכתוב בהתחלת הסוגריים:
(t10, ....)
או בין משתנים: (a1, t20, f8 ...)
t הוא אבסולוטי וX הוא יחסית למקום בו נמצאים.
אם נרצה לדלג על משתנה
מסוים: (...a8, 4x,
2f4).
קריאה מקובץ txt חזרה לspss:
data list file=’d:\data.txt’/ country life1 life2 (a20, f8, f5).
exe.
העברת נתונים מspss לexcel :
1. מfile -> save as -> במקום לשמור בפורמט של spss, שומרים בפורמט של excel.
2. פותחים excel וממנו פותחים קובץ txt.
1. The belief in the existence of individual spirits that inhabit natural objects and phenomena.
1. The belief in the existence of spiritual beings that are separable or separate from bodies.
1. The hypothesis holding that an immaterial force animates the universe.