חזרה לאתר

SPSS - פקודות

I. משתנים

נומרי – מספרים.

אלפא נומרי – לא מספרים – ניתן למצוא להם שכיחות, אך לא לעשות עיבוד סטטיסטי.

סוגי משתנים נומריים:

1. נומינלי – Name – אין טעם לעשות עיבוד סטטיסטי, גם אם זה מס’, כמו בת.ז..

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 country(d).

סדר עולה sort cases by country(a).

שני מיונים, אחד בתוך השני: 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 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. (הפקודה בוחרת את הנשואים בלי הילדים או את הנשואים עם ילדים ובמקרים האלו נותנת ערך 2 למשתנה family.)

אפשר לעשות התניות לפי ביטוי מתמטי: 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 נלך ל Values ב Variable view, ונגדיר שם.

ברירת המחדל של means היא הממוצע, מס’ תצפיות וסטיית תקן. כדי להגיע לעוד סטטיסטים דרכה יש תת פקודה cells: ./cells= sum

(או 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).

f – מסמן משתנה נומרי.

ערכי משתנים אלפא נומריים יופיעו בין גרשיים ‘ ‘. כך שמשתנה אלפא נומרי יכול להופיע בתנאי לוגי: if (religion=’animist’) b=’a’.

(ראן הערה למטה).

סימונים

הסימון ל’לא שווה’ הוא <> או ~=.

במקום 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. אם נרצה לצמצם את מס’ הקטגוריות בregion מ6 קטגוריות ל5 :

exe.

בצורה כזו שאר הקטגוריות יועתקו ללא שינוי.

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.

ידפיס מס’ משתנים: list var= country lifeexpf.

ידפיס את כל המשתנים ביניהם: list var= country to 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. compute c=a<>0 & b<>0.

ואז נבצע לפיו סינון: filter by c.

אם נרצה להיפטר מתצפיות מסוימות לתמיד נשתמש בפקודת select if :

(פעולה זו כדאי לבצע על קובץ אחר).Select if (c<>15).

אם נרצה להשתמש בselect אבל לא לאבד את הנתונים צריך להוסיף פקודת temporary:

temporary.

Select if (c<>15).

וכדי לחזור אחורה: filter off.

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). count work=

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 with lifeexpm.

בהרצה נוכל לבקש להוסיף קו רגרסיה לדיאגרמת הפיזור: זו תת פרוצדורה נוספת בתוך 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.

אם נרצה שהמחשב יתחיל לכתוב בקובץ החדש מתור 10, נכתוב בהתחלת הסוגריים:

(t10, ....)

או בין משתנים: (a1, t20, f8 ...)

t הוא אבסולוטי וX הוא יחסית למקום בו נמצאים.

אם נרצה לדלג על משתנה מסוים: (...a8, 4x, 2f4). (דילוג על 4 מקומות שהם המשתנה המיותר).

קריאה מקובץ txt חזרה לspss:

data list file=’d:\data.txt’/ country life1 life2 (a20, f8, f5).

exe.

העברת נתונים מspss לexcel :

Animist