统计分析技术汇总

上传人:ba****u 文档编号:59155902 上传时间:2022-03-01 格式:DOC 页数:15 大小:167.50KB
收藏 版权申诉 举报 下载
统计分析技术汇总_第1页
第1页 / 共15页
统计分析技术汇总_第2页
第2页 / 共15页
统计分析技术汇总_第3页
第3页 / 共15页
资源描述:

《统计分析技术汇总》由会员分享,可在线阅读,更多相关《统计分析技术汇总(15页珍藏版)》请在装配图网上搜索。

1、SAS统计分析技术汇总非原创,感谢汇总整理的大神一、数据集的建立1. 导入Excel数据表的步骤如下:1)在SAS应用工作空间中,选择菜单 文件” 一导入数据”,打开导入向导“ImportWizard 第一步:选择导入类型(Select import type)。2)在第二步的“ Selectile对话框中,单击“ Browse按钮,在 打开”对话框中选 择所需要的Excel文件,返回。然后,单击 “Option按钮,选择所需的工作表。(注意Excel文件要是2003的! !)3)在第三步的“Select library and membe对话框中,选择导入数据集所存放的 逻辑库以及数据集的名

2、称。4 )在第四步的“Create SAS Statemen对话框中,可以选择将系统生成的程序代码存放的位置,完成导入过程。2. 用INSIGHT创建数据集1) 启动SAS INSIGHT模块,在“ SASNSIGHT: Open”寸话框的”逻辑库 列表框中,选定库逻辑名2)单击 新建”按钮,在行列交汇处的数据区输入数据值(注意列名型变量和区间型变量,这在后面方差分析相关性分析等都要注意!)3)数据集的保存:文件” 一保存”一数据”;选择保存的逻辑库名,并输入数据集名;单击 确定”按钮。即可保存新建的数据集。3. 用VIEWTABLE窗口建立数据集1)打开 VIEWTABLE 窗口2)单击表头

3、顶端单元格,输入变量名3)在变量名下方单元格中输入数据4)变量类型的定义:右击变量名 /colu mn attributes4. 用编程方法建立数据集DATA语句;/*DATA步的开始,给出数据集名*/In put语句;/*描述输入的数据,给出变量名及数据类型和格式等*/(用于DATA步的其它语句)Cards;/*数据行的开始*/数据行;/*数据块的结束*/RUN; /*提交并执行*/例子:data=数据集名字 mylib.a;in put name$ pho ne room height; ($符号代表该列为列名型,就是这一列是文 字!比如名字,性别,科目等等)cards;rebeccah

4、424 112 1.5648(中间是数据集,中间每一行末尾不要加逗号,但是carol 450 112 5.6235 数据集最后要加一个分号! !)louise 409 110 1.2568gina 474 110 1.3652mimi 410 106 1.6542alice 411 106 1.6985brenda 414 106 1.3698brenda 414 105 1.8975david 438 141 1.6547betty 464 141 1.5647holly 466 140 1.5624 ;proc print data=whb.pho nes;(这一过程步是打印出数据集,可要

5、可不要!)run;*数据集中的框架我会用加粗来显示,大家主要记加粗的,下面的编程部分都是 这样! !二、基本统计分析1 1.用INSIGHT计算统计量1)在INSIGHT中打开数据集在菜单中选择 “ Solutio n(解决方案)”f“ An alysis 分析)”f“l nteractivD ata Analysis (交互式数据分析)”,打开“SAS/INSIGHTOper”对话框,在对话框中 选择数据集,单击“Ope(打开)”按钮,即可在INSIGHT中打开数据窗口2)选择菜单 “Analyze分析)”f“ Distribution(Y分布)”,打开 “Distribution (Y)

6、对话框。在数据集的变量列表中,选择分析变量 X、分组变量Y。(注意:分组 变量就是那种可以区别不同种类的变量,例如地区编号、科目、组号等等,而分析变量一般是需要分析的数据,例如成绩,身高书目)3)单击“Output输出)”按钮,在打开的对话框中包含描述性统计量选项。4) 选择选项矩统计量和分位数,取消默认的选项:“ BoxPlot/Mosaic Plot和“ Histogram/BarChart ”单击“OK按钮,即可得到变量按分组的各种矩统计量(Moments)和分位数(Quantiles)*描述性统计选项:Moments矩统计量 Quantiles分位数见书 P37 Basic Confi

7、denee Intervals 基本置信区间Tests for Location 位置检验 Frequency Counts 频数统计Robust Measures of Scale 尺度的稳健估计Tests for Normality 正态性检验2 2用 分析家”计算统计量1)启动分析家”选择主菜单“Solution(解决方案)” “ Analysis分析)” “ Ana(分析家)”, 打开分析家”窗口。选择主菜单“File(文件)”按SAS名称打开”,打开 选择成员”对话框,选择 数据集。2)通过Summary Statistics菜单计算描述性统计量选择主菜单 “Statistic统计)

8、” “Descriptive苗述性统计) “Summary Statistics(汇总统计量)”,打开“Summary Statistic对话框,选择变量列表中分析变量,单击“Analysis按钮,选定分析变量单击“Statistics按钮,打开“Summary Statistics Statistics对话框。对话框中列出 可以计算的所有统计量。3)通过Distributions菜单计算描述性统计量选择主菜单 “Statistics统计)” “ Descripti(苗述性统计)” “ Distributions分布)”,打开“ Distributions对话框,选择变量列表中的分析变量,单击

9、“Analysis ”按钮。单击“OK按钮,即可得到关于分析变量的矩统计量和基本统计测度。3.用编程方法计算统计量1)FREQ过程FREQ过程包括多个控制频数输出与检验的语句和选项,格式如下:PROC FREQ DATA = ;TABLES ;FORMAT 变量1 输出格式1. 变量2 输出格式2.;RUN;其中PROC FREQ语句调用FREQ过程,标志FREQ过程的开始;TABLES语句用于创建有关变量所构成的各种表格并进行相应的假设检验和计 算,可以多次使用。例如:proc freq data = mylib.sryzc;tables R_ld In come;RUN;这个语句提供了频数

10、,所占百分数,累计频数,和累计百分数!2. MEANS 过程MEANS过程的一般格式:PROC MEANS DATA=数据集名 统计量关键字列表;VAR 分析变量列表 ;BY 分组变量名;CLASS 分组变量名;RUN;例如:proc means data = mylib.sryzc;var In come;run;PROC MEANS语句后的选项主要用来指定所要计算的统计量,默认情况下,MEANS过程会给出频数、均数、标准差、最大值和最小值等,其余统计量的计 算均需要在选项中指定。VAR语句引导所要进行分析的所有变量的列表,SAS将对VAR语句所引导的所有变量分别进行描述性统计分析。BY语句

11、与CLASS语句所指定的分类变量用来进行分组统计,但输出格式不同。3. 使用统计量关键字列表1)在PROC MEANS语句中使用统计量关键字列表:proc means data = mylib.sryzc n mean media n p1 p5 p95 p99 q1 q3 max min;var In come;Ru n;关键字所代表的含义关键字所代表的含义n有效数据记录数range极差n miss缺失数据记录数skew ness偏度mea n均值kurtosis峰度std标准差t分布位置假设检验之t统计量stderr标准误probt上述t统计量对应的概率值var方差q1第一四分位数medi

12、a n中位数q3第三四分位数mode众数qrange四分位数间距cv变异系数p1第一百分位数max最大值p5第五百分位数min最小值p10第十百分位数sum总计p90第九十百分位数sumwgt加权值总计p95第九十五百分位数css校正平方和p99第九十九百分位数uss未校正平方和2)使用CLASS语句和BY语句使用CLASS语句和BY语句可以分组计算分析变量的描述统计量值,由CLASS语句和BY语句指定的变量在分析中起分组(类)的作用,被称为分类变量。两 个语句的区别是:使用BY语句时要求数据集须按BY变量排序,使用CLASS语句无此要求。使用BY语句时输出按BY变量的每个值分别提供一个表,使

13、用CLASS语句则将所有结果排列在一个表之中。使用BY语句之前先排序,可以在按分组变量统计:(p46)例如:proc sort data = mylib.sryzc;by Rd;run;proc means data = mylib.sryzc n mean media n p1 p5 p95 p99 q1 q3 max min;var In come;by R_Id;run;使用CLASS语句分组较为简单,也可以在按分组变量统计(p47)proc means data = mylib.sryzc n mean media n pl p5 p95 p99 q1 q3 max min;var I

14、n come;class R_Id;RUN;3. UNIVARIATE过程(推荐使用)UNIVARIATE过程的一般格式为:PROC UNIVARIATE DATA = 数据集名 统计量关键字列表;VAR 分析变量列表;BY | CLASS 分组变量名;HISTOGRAM 变量名称/选项列表;OUTPUT OUT = 数据集名 统计量关键字 = 自定义变量名;RUN;UNIVARIATE过程和MEANS过程的格式非常相似,相同的语句和选项其含义也 相同,所不同的是某些统计量只能在 UNIVARIATE过程中计算(如众数),而且 UNIVARIATE过程中具有绘图功能。其中,HISTOGRAM语

15、句用来指示SAS对其后所指定的变量绘制直方图,其后 的选项用来指示SAS添加不同类型的拟合图形(如正态分布的分布密度曲线)。输出包括五个部分:第一部分是矩统计量,各统计量已作了介绍。第二部分为基本的位置和分散程度统计量,位置统计量包括均值、中位数、众数,分散程度统计量包括标准差、方差、极差、四分位间距第三部分为关于均值等于零的三种检验的结果,包括t检验、符号检验和符号秩检验。第四部分为各个重要的分位数。第五部分是观测数据的五个最低值和五个最高值。*因为这个编程含有最齐全的结果,大家做一个这个编程,所有的数据就可以自 己调了,但是要找到那个对的哦! !三、程序绘图1. GCHART 过程(1)语

16、法格式PROC GCHART DATA = 数据集名 ;图形关键字 变量名称/选项列表RUN;v GCHART过程可以使用的图形关键字及其所绘制的图形类型见表图形关键字绘制的图形类型图形关键字绘制的图形类型block方块图pie饼形图hbar水平的条形图pie3d三维饼形图hbar3d水平的三维条形图donut环形图vbar竖立的条形图star星形图vbar3d竖立的三维条形图TYPE =freq |cfreq |pct|cpct|sum|mean统计图形变量的频数|累计频数|Discrete把数字变量当成离散变量处理GROUP=量名 指定并排分组变量SUBGROUPS量名 按分组变量的值分段

17、Patternid=Midpoint|group|subgroup ,规定连续性图形的图案按数字列表中的中心点值|并排分组值|重叠分组值的次序呈现SUMVAR =变量名(数值变量)指定要进行统计计算的变量,也就是“ TYPE =统 计量关键字”选项中统计量的计算所依据的变量举例啦!2)画条形图(直方图)例如: proc gchart data = mylib.sryzc;vbar In come;(分析变量!)run;其中绘图用的变量用VBAR语句给出,如果把VBAR改成HBAR则条形方向变 为横向。用GCHART绘制的条形图和在INSIGHT中绘制的直方图有所不同,它 在横轴标的是区间的中点

18、值,而在INSIGHT中横轴标的是区间的端点值。可以指定分组的变量,例如在每个区段内再分段(就可以出现一个条形出现两个 颜色哦!proc gchart data = mylib.sryzc;vbar In come / subgroup = R_Id;(前一个是分析变量,后一个是分组变量哦 )run;3)画三维条形图使用BLOCK关键字可以画三维条形图。例如,画出数据集中In come变量的三维条形图的代码如下:proc gchart data = mylib.sryzc;block In come/ group = R_ld;( 前一个是分析变量,后一个是分组变量 )Ru n;4)画饼形图使

19、用PIE关键字可以画饼形图,PIE3D关键字可以画三维饼形图。例如,画出数 据集中In come变量的三维饼形图的代码如下:proc gchart data = mylib.sryzc;PIE3D In come;(分析变量哦!)run;2使用GPLOT过程绘制散点图和连线图1)GPLOT过程的一般格式PROC GPLOT DATA = 数据集名 ;PLOT 纵轴变量 * 横轴变量 = 变量/选项;SYMBOLn 选项;RUN;PLOT语句的选项选项意义说明FRAM | NOFRAM在图形四周加入或不加入边框 默认为加入缺省为加入CFRAM =颜色边框内的颜色默认为白色缺省为白色AUTOHRE

20、F(AUTOVEREF):在水平(垂直)轴的每个主刻度处加入水平(垂直) 参考线NOAXIS取消坐标轴及相关的图形元素CAXIS =颜色设定轴的颜色CTEXT =颜色设定与轴相关字符的颜色HAXIS =值列举设定水平轴主刻度的值VAXIS =值列举设定垂直轴主刻度的值overlay多个图共坐标散点图绘制家庭总收入对家庭总支出的散点图,代码如下:proc gplot data = mylib.sryzc;plot Income*outgo;(分析变量哦!)run;如果换成这个样子,图像上面会出现星星或点型,而且线条颜色不同proc gplot data = mylib.sryzc;plot In

21、 come*outgo = r_id;symboll color=black v = star;symbol2 color=blue v = dot;run;连线图为了绘制连线,只要在SYMBOL语句中指定i = join。例如绘制家庭总收入对家 庭编号的连线图,代码如下:proc gplot data = mylib.sryzc;plot In come*id;symbol i=joi n v=star;run;也可以分地区绘制家庭总收入对家庭编号的连线图,代码如下:如果换成这个样子,图像上面会出现星星或点型,而且线条颜色不同proc gplot data = mylib.sryzc;plo

22、t In come*id=r_id;symbol1 color=black i=join v = star;symbol2 color=blue i=joi n v = dot;run;四、正态性检验1. 分布拟合图用“ in sigh绘图选择菜单 “Analyz(分析)” “ Distribution (Y)分布)”,打开 “ Distribution (Y)”对话框设置正态性!2. 绘制QQ图要选择QQ图的选项!1) 选择菜单 “ Curves曲线)QQ Ref LiJQQ 参考线)”,打开 “ QQ Ref Line ” 对话框。选择“Method(方法)”栏下的“Least Squar

23、es最小二乘)”单击“0K按 钮得到带参考线的QQ图选择最小二乘法!2) 选择菜单“ Graphs图形)QQ P(QQ图)”打开“ QQ Plo对话框。 选择“Distribution(分布)”栏下的“Lognormal QQ Plot(对数正态 QQ图)话 单 击“OK按钮得到对数正态QQ图选择对数正态!3. 正态性检验注意:前两种检验都是从图线上直观看出结果,不是很准确,最后这种是最准确的!建议大家做正态性检验时,用这种方法!1) 在INSIGHT中继续上述操作:选择菜单“ Curve(曲线)” Tfcst Distribution (分布检验)话 打开“ Test for Distrib

24、ution对话框。”单击“0K按钮, 得到分析变量的经验分布和拟合的正态累计分布曲线图。2) 列举了拟合正态分布的均值(即样本均值)和标准差(即样本标准差),并 提供了 Kolmogorov D统计量的数值0.1377,而相应的p值 0.05 =,麻以不能 拒绝原假设,可以认为分析变量总体分布为正态分布。这是检验的一步,注意看P值与0.05的比较,当P值大于0.05时,就可以确定这个分析变量总体分布为正 态分布!在分析家”绘图1. 绘制分布拟合图和QQ图1)首先在 分析家”中打开数据集;2) 选择主菜单 “ Statistics ”r“ Descriptive ” f ;打开ribiDonsb

25、utions ” 对话框。选择分布拟合图和QQ图! !2. 分布检验1 )继续上述步骤。在分析家窗口的项目管理器中双击“ FittedDistributions ofGcjg 项,得到检验结果2)分析结果时, 注意看 P值与0.05的比较,当P值大于0.05时,就可以确定这 个分析变量总体分布为正态分布! !用编程方法进行检验用编程方法是最方便的方法,也比较省时间,所以建议大家用这种方法!使用UNIVARIATE过程在PROC UNIVARIATE语句中加上NORMAL选项可以进行正态性检验。例如:proc uni variate data =Mylib.yczl no rmal;var we

26、ight; (分析变量! !)run;检验结果:结果中给出了分析变量的四种正态性检验结果,其中Shapiro-Wilk检验是首选的。当看到p值很大大于0.05,所以在0.05水平下不能拒绝原假设,即 认为分析变量服从正态分布五、假设实验1. 总体均值的区间估计用“ in sigh计算统计量1)启动INSIGHT模块,并打开数据集;2)选择菜单“ Analyz(分析)”Distribution(Y分布)”;3)在打开的“Distribution(Y)对话框算进行区间估计的设置将分析变量放入丫4) 单击Output,在打开的对话框中选中 Basic Confidenee Interval5)两次单

27、击OK按钮结果包括一个名为“9%Confidenee Intervals (95%置信区间)”的列表,表中给出 了均值、标准差、方差的估计值(Estimate)、置信下限(LCL)和置信上限(UCL)若想得到其他置信水平的置信区间:选择表”一置信区间”一其他”然后可以修改置信水平用分析家”计算统计量1)在 分析家算莫块中打开数据集;2)选择菜单 “ Statistic统计)”f“ Hypothesists假设检验)”f“ Oaample t - test for a Mean单样本均值t -检验)”;3)在打开的“One Sample ttest for a Mean对话框中设置均值的置信区间

28、先选择分析变量,然后单击“tes后选择“interval,写置信区间用编程方法计算统计量Means过程实现:proc means data=sasdata.yczl elm alpha=0.05;/*关键字elm用于计算置信区间,“ alpha=用于指定显著性水平*/var weight;(分析变量!)run;ttest过程实现:proc ttest data=sasdata.yczl alpha=0.05;/* alpha= ”用于指定显著性水平 */var weight;run;uni variate过程实现:proc uni variate data=sasdata.yczl cibas

29、ic(alpha=0.05);/*关键字“ cibasicpha=R于指”显著性水平 */var weight;run;重点介绍使用TTEST过程:TTEST过程可以执行单样本均值的t检验、配对数据的t检验以及双样本均值比 较的t检验。语法格式-PROC TTEST 选项列表 ;-CLASS 分组变量名;-VAR 分析变量名列表;-PAIED 变量名列表;BY 分组变量名;-RUN;第一句和最后一句是必需的,中间的可以交换位置!CLASS语句所指定的分组变量是用来进行组间比较的;而BY语句所指定的分组 变量是用来将数据分为若干个更小的样本,以便 SAS分别在各小样本内进行各 自独立的处理。VA

30、R语句引导要检验的所有变量列表,SAS将对VAR语句所引导的所有变量分别进行组间均值比较的t检验。PAIED语句用来指定配对t检验中要进行比较的变量对,其后所带的变量名列表 一般形式及其产生的效果见表变量名列表形式产生的效果a*ba -ba*b c*da -b, c -d(a b)*(c d)a -c, a -d, b -c, b -d(a b)*(c b)a -c, a -b, b -cPROC TTEST语句后可跟的选项及其表示的含义如表所示选项代表的含义data =等号后为SAS数据集名,指定ttest过程所要处理的数据集,默认值为最 近处理的数据集alpha =等号后为01之间的任何值

31、,指定置信水平,默认为0.05ci =等号后为equal, umpu, non中的一个,表示标准差的置信区间的显示形式,默认为ci = equalcochra n有此选项时,ttest过程对方差不齐时的近似t检验增加cochran近似法h0 =等号后为任意实数,表示检验假设中对两均值差值的设定,默认值为02.总体均值的置信区间1)使用最简代码求均值、标准差的置信区间:proc ttest data = sjcj;? run;2)结果分析:代码运行结果给出两个变量在 95%置信水平下的均值、标准差的 置信区间,以及对原假设 4= 0所作的t检验的p值3. 单样本总体均值的假设检验 ? proc

32、ttest h0=70 alpha = 0.01 data=sjcj;? var A;? run;结果分析:代码运行结果除了给出变量 A在99%置信水平下的均值、标准差的置信区间外,还给出对假设= 70 ,所作的t-检验的p值 注意:颜色一样的地方是代码所代表的含义,一一对应的! 显示t统计量的p值大于0.05时,不能拒绝原假设:均值 =70。4. 配对两样本均值的假设检验? proc ttest data=sjcj;? paired A*B;(两个分析变量!要相关的)? run;代码运行结果给出了对原假设皿-2 = 0所作的t检验的p值结果分析:显示t统计量的p值 0.05,因此拒绝原假设,

33、p值0.05,不能拒绝 原假设。5. 独立两样本均值的假设检验过程TTEST还可以用于进行独立双样本均值比较的t检验法。它的用法为-PROC TTEST DATA = 数据集名 ;-CLASS 分组变量名;-VAR 分析变量名列;-RUN;使用这一格式要求将两个样本中被比较均值的变量的观测值记在同一分析变量 下,不同的样本用另一个分类变量的不同值加以区分,而且分类变量只能取两个值,否则将报错。讲分析变量记录在同一分析变量f之下,而两种方法的差别是由分类变量 g的值 加以区分的。检验代码如下:原理类似后面相关分析和回归分析中的建数据集! !? proc ttest data=zzcpsj;? c

34、lass g;? var f;? run;结果分析:1)在检验中,先看其最后关于方差等式的检验结果,检验方差相等是用的F 统计量,相应的p值0.05 =,不能拒绝方差相等的假设;当 P值V 0.05时, 方差不相等,看第三步。2)在方差相等的前提下,检验均值差异使用Pooled方法,对应统计量的t值为 2.16,相应的p值为V 0.05 = ,0所以两种方法所需的时间是有显著差异的,若 p 值 0.05,则两种变量没有显著差异。3)在异方差的情况下,使用Satterthwaite法检验均值的差异。关于置信区间1. 总体比例的置信区间1)在 分析家”中打开数据集;2)选择主菜单“Edi(编辑)M

35、od模式)”一“ Ed编辑)”,使数据集可 以被编辑(修改);3)选择主菜单 “Data数据)”f“ Transf(变换)”f“ Recode RangSSS码 范围)”,打开 “Recode Ranges Informatio对话框4)单击“OK按钮,打开“ RecodRanges对话框,按图3-18右所示生成新变量price_f注意列类型要改变,还要写明名称!6)选择菜单 “ Statistics统计)”f“ Hypothesis Tes假设检验)”f“ One SampleTest for a Proportion (单样本比例检验)”;7)在打开的“One Sample Test fo

36、r a Proportion话框中选择分析变量,然后按章前面所示设置置信区间。2. 总体方差的置信区间1)在 分析家”中打开数据集;2)选择菜单 “ Statistics统计)”f“ Hypothesis Te假设检验)”f“ One Sample Test for a Varia nce(方差的单样本检验)”3)在打开的“One Sample Test for a Varian对话框中设置方差的置信区间, 还是如以前所示!3. 两样本总体方差的比较若s1和s2分别表示两个分析变量的方差,则检验的是:H0: s1 s2, H1 : s1 s2 ;检验步骤如下:1)首先,将数据生成数据集,两个分析变量可用两个变量表示,如分别用s和w表示。2)在分析家中打开数据集后,选择菜单“ Statistics ” “ Hypothesis Tests ” “ TSample Test for Varianee双样本方差检验)”,打开 “ Tw-Sample Testfor Varianee对话框并按图设置;单击 “OK按钮,得到分析结果。注意要选两个变量!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!