SPSS常见问题解答.docx
- 文档编号:7845425
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:7
- 大小:22.64KB
SPSS常见问题解答.docx
《SPSS常见问题解答.docx》由会员分享,可在线阅读,更多相关《SPSS常见问题解答.docx(7页珍藏版)》请在冰豆网上搜索。
SPSS常见问题解答
Q:
在SPSS中能否直接读入EXCEL97数据文件?
有无读入数据的简便方法?
A:
在SPSS 10.0版中,任何版本的EXCEL文件都可以在OPEN对话框中直接打开。
但在9.0及以前版本中就比较复杂,实际上SPSS7.0以上的版本都可以读入EXCEL97和ACCESS97的数据文件。
但这些文件类型不能在打开文件对话框的文件类型中找到,SPSS是利用ODBC来实现对这些数据文件的读取的。
例如在SPSS9.0中,请选择File菜单->databasecapture->newquery,会弹出数据库读取向导的对话框,按提示操作即可(你所能够读取的ODBC数据类型取决于你所用计算机上安装的ODBC驱动程序的多少)。
实际上对于老版本的SPSS来说,读入EXCEL97数据文件最简单的方法是先在EXCEL97中选择并复制所需数据(不要选择变量名),然后在SPSS数据界面中选择一行一列的单元格,将数据粘贴过来,最后将变量名改为原变量名。
当变量少而记录数多时,这种方法是最快的。
返回
Q:
如何将SPSS的结果文件(*.spo文件)转换为其它格式?
A:
SPSS的结果文件从7.0版本起就是专用的*.spo文件,据我所知,还没有那种文字处理软件可以将他读出来,但SPSS提供了将该文件转存为其它格式的功能。
在SPSS的OUTPUT窗口中选择File菜单->export,可以将结果文件另存为HTML文件和TXT文件。
当然,要比spo文件难看的多。
图表则自动转化为JPG图片,不能再编辑。
因此,最好在所有修改都完成后再EXPORT。
另外,该命令也可以针对单个图片或表格进行,选中所需图片或表格,单击右键,选择快捷菜单中的EXPORT即可。
(详情请参见网站教程)
返回
Q:
想将SPSS的结果表格直接粘贴到WORD中使用,但一粘过去表格的格式就乱了,如何保持原有的格式?
A:
选中所需表格,单击右键,选择快捷菜单中的copyobject即可,此时粘贴过去的表格就会保持原有的格式(实际上粘贴过去的是一幅图片)。
返回
Q:
如何在SPSS中实现四格表的卡方检验?
A:
在多数统计软件中,四格表(和行*列表)的数据格式均为行变量、列变量和频数变量。
如下面这个四格表的数据及相应格式如下:
阳性
阴性
正常
34
12
发病
23
26
行变量
列变量
频数
1
1
34
1
2
12
2
1
23
2
2
26
分析时首先选择菜单Data->WeightCases,将频数变量选入Frequency格中,按OK确认。
此时系统就会以频数表的形式来读取所输入的数据,既记录数应为34+12+23+26=95例,而不是4例。
然后选择菜单Analyze->DescriptiveStatistics->CrossTables,将行、列变量分别选入相应的Row、Column格中,再按下方的Statistics钮,选中左上角的Chi-square复选框,按Continue钮,最后按OK即可。
返回
Q:
在打开已有的Excel表格时可以成功地读入数据,但同时出现Output1-SPSSViewer窗:
>Warning.Commandname:
GETDATA
>(2109)EncounteredavalueincompatiblewithSpssPercenttype.Possible
>lossofdata.EnsurethatalldatawithinthecolumncontainsPercenttype
>values.
>Note:
Futurewarningsofthistypewillnotbereportedbecausetheymaybe
>toonumerous.
>*(Row#12,Column#5)
这是什么原因?
A:
该提示的意思是EXCEL表格的的12行第五列的数据和SPSS的格式不兼容,从而该数值可能无法正确导入,可能的原因是小数点后的位数太多。
这需要谈到一点编程的问题,EXCEL和ACCESS等的默认数据长度都是24位的,无论你的实际数值为多大。
精度高是好事,但这个精度也太高了,会导致小数点后面跟了一大堆的0,从而超出SPSS所能够承受的精度范围,导致出现警告。
这时你需要检查一下你的数据,比如说太长、或者数字中间打入了一个逗号等,许多时候将该列的默认数据格式改一下就可以了。
返回
Q:
如何在SPSS中进行正交设计及正交分析?
A:
我以前以为SPSS不能作正交设计,感谢网友edof@sh的提醒,经研究,做法如下:
设要做二因素的正交设计,A因素有三个水平,B因素有两个水平。
则选择Data-->OrthogonalDesign-->generate,弹出的就是正交设计窗口:
Factorname框:
输入A:
单击ADD钮:
单击Definevalue钮:
分别在Value列的头三行输入1、2和3,单击continue钮,这样就定义好了变量A。
按类似的方法定义好变量B的2个水平。
单击OK,系统就输出一个新定义的数据集,前两个变量就是要分析的A和B,各个水平已经按正交设计的要求排列好了。
后面的status_和card_变量是系统产生的LOG变量,可以不管它。
现在你再建立一个结果变量,输入实验结果,就可以进行正交设计的分析了。
正交设计的分析用GLM模块进行。
具体操作如下:
Analyze->GeneralLinearModel->Univariate...dependent中选入应变量,fixedfactor中选入自变量。
然后进入model钮进行模型设置,这一步非常重要!
设置模型为custom,然后选择需要分析的主效应和交互作用。
然后确认,就可以得到所需要的结果。
请注意,如果model钮进行模型设置时选择错误,则得到的结果肯定是不正确的。
返回
Q:
如何在SPSS中作条件Logistic回归分析和哑变量分析?
A:
SPSS对条件Logistic回归是无能为力的,但可以参照SAS答疑解惑中的变换方式对原数据进行变换再进行拟合。
至于哑变量,如果将原变量设为分类变量(即选定为CAT),则拟合时许多模型会自动按哑变量拟合,但多数情况下得自行产生新变量。
返回
Q:
SPSS能否用另外一个具有同样数据结构的数据库更新数据?
如同foxpro中的Replace命令?
A:
SPSS中DATA菜单提供的MERGEFILES过程就是用于横向和纵向合并数据文件的,一般情况的数据合并问题该菜单都可以解决,具体用法请参见网站的SPSS教程第二章。
返回
Q:
在SPSS中有无编程语言可写?
如IF....Else..等编程语句?
A:
SPSS中有IF....Else..等编程语句,实际上也可以象其它编程语言一样的使用。
即可以用SPSS的SYNTAX窗口编写SPSS程序来解决,在教程的第四章我有简单的介绍。
更复杂的情况可以用专门的SPSSPRODUCTIONFACILITY来完成。
不过,我们所能碰到的多数问题可以用菜单来完成,如COMPUTE中的IF子菜单,不需要去编SPSS程序。
返回
Q:
方差分析(ANOVA)多个样本均数间的两两比较,即PostHoc对话框中提供了两种不同情况下的选项,请问EqualVarianceNotAssumed是在方差不齐时选用的吗?
其下所提供的四种陌生的检验方法可以介绍一下吗?
A:
是的,的确如此,这些方法就是在方差不齐时选用的。
不过>这四种检验方法我也不熟悉,实际上除了SNK、LSD等少数几种方法外,对于方差分析的两两比较理论上就没有统一起来,真正是各说各的理,结果谁也不服谁。
不信你去看看SAS,这四种检验方法根本就找不到!
从SPSS的帮助内容翻译出来的意思如下:
Tamhanes’sh2:
基于T检验的一种保守的两两比较方法。
Dunnetts’st3:
基于标准化最大系数的两两比较方法。
Games-howell:
有时标准过松的两两比较方法。
Dunnett’sC:
基于标准化全距的两两比较方法。
以上四种方法在方差不齐时使用才合适。
返回
Q:
SPSS中HomogeneousSubsets下的S-N-K是国内教科书中所指的S-N-K法吗?
他提供的LSD法可用于各组间的两两比较吗?
或者说,可以替代国内教科书中此种情况下所介绍的S-N-K法吗(因为您知道LSD法在教科书中是用于各治疗组与对照组之间两两比较的)?
A:
你说的对,此S-N-K即彼S-N-K。
不过SPSS提供的LSD法不能就这样简单的代替SNK法,因为每种方法都有它的设计思想和适用范围,LSD在推导时就是在假设有一个标准对照的情况下进行的,如果用它来作任意两组的两两比较,则相当于随便改变了alpha水准,自然不对了。
返回
Q:
怎么在SPSS中做多组等级资料的等级相关分析,即等级的一致性检验?
怎么做有序表的线性趋势检验?
这些统计方法基本上都在corsstable过程中,单击下方的statisitcs钮,会弹出Statistics对话框:
Norminal复选框组:
就是反映分类资料相关性的一系列指标,其中:
Contingencycoefficient复选框:
即列联系数;
Uncertaintycoefficient复选框:
不确定系数。
Ordinal复选框组:
反映有序分类资料相关性的指标,可能有用的有:
Kendall'stau-b复选框;
Kendall'stau-c复选框;
剩下的有:
Kappa复选框:
计算Kappa值,即内部一致性系数;
Risk复选框:
计算比数比OR值;
McNemanr复选框:
进行McNemanr检验(一种非参检验);
Cochran'sandMantel-Haenszelstatistics复选框:
计算X2M-H统计量。
更详细的内容可以参见网站教程的第六课,或其他统计书籍。
返回
Q:
两因素以上的方差分析在SPSS中用什么来完成?
A:
这些方差分析一律可归入一般线性模型,所以在SPSS中都被归入了GeneralLinealModel子菜单。
详情可参见网站的SPSS教程。
返回
Q:
配对病例对照研究的原始数据如何直接用SPSS分析?
A:
这个问题据我所知可能无法直接用SPSS菜单解决。
需要先用程序将数据集换算成四格表那样的格式再进行分析。
编程思路:
结果中有case和control两个变量,依次读入原数据,由第一条记录得case=1,第二条记录得control=1,即以前的两条变为一条,取值由以前的暴露史决定。
1为暴露,0则为未暴露。
这样就可以得到最终分析用数据,这是我能想到的最简单的方法了。
返回
Q:
SPSS能在Windows2000系统中使用吗?
A:
Windows2000系统在许多方面是和WIN9X系统完全兼容的,在使用SPSS上也是如此,理论上完全可以使用,但问题出在D版的执照上,Windows2000的Workstation相当于一个个人操作系统,SPSS在上面使用的是单机执照,类似于WIN9X的情况(即市面上D版提供的执照),使用时一点问题都没有;而他的Server版本是一个服务器,在上面使用SPSS需要NETWORK执照,这是我们所无法得到的,因此不能安装使用。
以下补充内容由网友Elan提供,谢谢他的热心帮助:
spss10在win2000下,syntax是无法识别中文字符的。
所以在用varlabels或valuelabels语句加标签时,如果存在中文字符,syntax运行出错。
其他语句只要存在中文也都是如此。
这个问题可以通过更换syntaxedit所用的richedit控件版本来解决。
只有spss10.0.7是spss官方承认支持win2k的。
syntax存在中文不会出错。
返回
Q:
如何删除多个变量?
A:
在spss中,可以通过选中一列变量,再点菜单“clear”的方式来删除变量。
但是,如果要删除的变量很多,并且不是排列在一起的话,用这样的方式无疑是非常辛苦的。
这时候可以用syntax来快速完成。
假设要删除的变量为VAR1、VAR2、VAR3、…VAR10,并且在SPSS文件中的顺序是连续的,可以用
MATCHFILESfile=*/drop=var1tovar10.
如果顺序是不连续的,那么就不能用TO关键字,而只能将各个变量名都写出来,如var2var2var3..。
“/drop”子命令表示要删除这些变量。
或者使用“/keep”子命令,则表示仅保留这些变量,其它的都删除。
删除变量标签
可以用语句“variablelabels变量A"".”将变量A的标签删除。
但是在要清空标签的变量很多的情况下,可以定义一个宏(Macro)来完成。
下面就是一个这样的宏Syntax:
define!
nolabel(!
positional!
cmdend).
!
do!
x!
in(!
1).
variablelabels!
x"".
!
doend.
!
enddefine.
使用该宏用:
!
nolabel变量A变量B变量C.
一种简单的书写变量名的方法是从菜单“Utilities->Variables”中选择变量,并点paste,粘贴到Syntax窗口中。
返回
Q:
如何更改变量在SPSS文件中的顺序?
A:
SPSS没有提供相应的对话框来更改变量在文件中的顺序,通过在窗口中拖动变量来之执行这个操作无疑是非常麻烦的。
只有通过以下语句:
SAVEOUTFILE='文件名'/keep=var1var10var2tovar7var9var8
/COMPRESSED.
OUTFILE指定一个文件名,SPSS将把当前的数据保存为该文件;KEEP语句后要写上所有的变量名,按照您想要的顺序书写。
未写上的变量将被删除。
运行该语句以后打开OUTFILE指向的文件,变量顺序就已经改变了。
如果变量很多的话,逐个书写变量名将是一件很烦的事情,这时一个简便的方法是通过菜单(Utilities->Variables)选择变量并paste到SYNTAX中。
以上语句适用于一般情况下的数据,下面再介绍另一种方法。
如果只想让变量按照变量名的顺序排列(升序或降序),并且变量中不包含任何字符型变量。
那么可以将SPSS的数据进行行列转置,转换后SPSS自动将原来的变量名保存在一个新变量case_lbl中,再接着对数据按变量case_lbl进行排序(升序或降序),然后再进行一次行列转置,这样就可以实现排序的目的。
用syntax来实现就是:
FLIP.
SORTCASESBYcase_lbl.
FLIPNEWNAMES=case_lbl.
用对话框来执行以上操作就是:
1、从菜单Data>Transpose,在对话框中选中所有变量进入“Variables”列表框,然后点“OK”,将数据行列转置
2、从菜单“Data>SortCases”,将数据按照变量case_lbl排序
3、再回到菜单“Data>Transpose”,选中变量case_lbl进入“NameVariable”,将剩下的所有变量选进“Variables”列表框,按“OK”执行。
和进行行列转置前的数据相对比,数据中多了一个变量case_lbl,我们可以把它删除。
但是更重要的差别是:
行列转置后的数据,所有的变量标签、数值标签和格式都丢失了,需要重新设置。
如果有字符型变量,那么该变量数据将全部丢失,成为sysmis。
所以我们在进行数据的行列转置之前,先将文件保存。
在执行完以上三个步骤后,从菜单“File>ApplyDataDictionary”选择先前保存过的文件将其变量标签、数值标签、格式等信息导到转换过的数据中。
相应的syntax就是:
APPLYDICTIONARY
FROM='D:
\aa.sav'.
至于数据中存在字符型变量而又确实要执行以上操作的,可以先用“AutomaticRecode”将字符变量转化成数值变量,然后再执行以上操作。
[color=red]创建连续变量名[color]]
需要创建很多变量,但是这些变量名称存在连续性,比如“lvstyl1,lvstyl2,lvstyl3....lvstyl80”,可以用datalist命令的to关键字:
datalist/var1tovar801-80(a).
begindata.
…
enddata.
execute.
但是运行了datalist命令后产生新的数据文件,而不是往现有的数据文件里添加变量。
所以,如果是要继续添加变量的话,vector()命令是很好的选择:
VECTORlvsty(180).
上述命令创建180个连续的以字符“lvsty”开头的变量,lvsty1到lvsty180。
Vector()命令还可以指定变量的格式,如:
VECTORlvsty(180,A5).
创建180个5个字符宽度的字符串类型变量。
在spss10.07的另一种方法就是在variableview视图里输入变量名,比如“var01”,拷贝这个名称,然后在其下方某处(要创建几个变量,就往下数几行)粘贴,SPSS就会自动创建一串连续的变量var02var03….
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SPSS 常见问题 解答