Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS上的四因素方差分析。由于错误(df),我的代码没有正确显示F值和P值,我哪里出错了?_Sas_Anova_Factor Analysis - Fatal编程技术网

SAS上的四因素方差分析。由于错误(df),我的代码没有正确显示F值和P值,我哪里出错了?

SAS上的四因素方差分析。由于错误(df),我的代码没有正确显示F值和P值,我哪里出错了?,sas,anova,factor-analysis,Sas,Anova,Factor Analysis,以下是我对上述数据的sas代码: Alloy 97-1-1-1 Alloy AuCa Dentist Method 1500°F 1600°F 1700°F 1500°F 1600°F 1700°F 1 1 813 792 792 907 792 835 2 782 698 66

以下是我对上述数据的sas代码:

             Alloy 97-1-1-1                   Alloy AuCa        
Dentist Method  1500°F  1600°F  1700°F      1500°F  1600°F  1700°F

1        1      813      792     792          907    792     835
         2      782      698     665          1115   835     870
         3      752      620     835          847    560     585

2        1       715      803     813         858    907    882
         2       772      782    743          933    792    824
         3       835      715    673          698    734    681

3        1       743      627    752          858    762    724
         2       813      743    613          824    847    782
         3       743      681    743          715    824    681

4        1       792      743    762          894    792    649
         2       690      882    772          813    870    858
         3       493      707    289          715    813    312

5        1       707      698    715          772    1048   870
         2       803      665    752          824     933   835
         3       421      483    405          536     405   312
我哪里出错了

以下是输出的一部分:

data gold;

do dentist=1, 2, 3, 4, 5;
    do method=1, 2, 3;
        do alloy= 1,2;
           do temp=1500, 1600, 1700; 
              input y @@; output; 
           end;
          end;
        end;
    end;

cards;
813 792 792     907 792 835
782 698 665     1115 835 870
752 620 835     847 560 585

715 803 813     858 907 882
772 782 743     933 792 824
835 715 673     698 734 681

743 627 752     858 762 724
813 743 613     824 847 782
743 681 743     715 824 681

792 743 762     894 792 649
690 882 772     813 870 858
493 707 289     715 813 312

707 698 715     772 1048 870
803 665 752     824 933 835
421 483 405     536 405 312
;
ODS graphics on;
proc GLM data=gold;
class dentist method alloy temp;
model y=dentist|method|alloy|temp;
run; quit;
错误应该是
残差75772.0 16 4735.7

残差/错误不应为0,因为整个代码都是错误的:(

我还需要知道如何为上述代码创建交互绘图/图形。 如果您对我的代码有任何帮助,我们将不胜感激。

这是一个典型的过度拟合示例。 您只有90个测量值,因此模型具有89个自由度(DF)

  • 1拦截
  • 加上不同牙医的5个因素,有一个限制条件:它们的总和必须为0,即4 DF
  • 加上方法M的3个因子,再减去一个约束,即2 DF
  • 加上牙医和方法组合的15个因素,必须满足以下8个约束条件。由于这些约束条件不是完全独立的,这将使DF仅减少7个,即允许
    GLM
    为8个DF
    • 对于每个牙医,所有方法的系数总和必须为0和
    • 对于每种方法,所有牙医的系数总和必须为0
等等

简而言之,您允许
GLM
过程选择1个截距加上89个其他DF,以仅适合90个值。
GLM
可以生成一个完全适合您的数据的模型。难怪该模型没有错误

为了更好地理解它: 例如,引入与真实测量略有不同的假测量值

The GLM Procedure
Dependent Variable: y 

    Source DF Sum of Squares Mean Square F Value Pr > F 
    Model  89 1891095.556     21248.265   .       . 
    Error  0  0.000             .     
    Total 89  1891095.556       

    R-Square Coeff Var Root MSE y Mean 
    1.000000  .        .        741.7778 
现在您的输出可能如下所示

data gold;
do dentist=1, 2, 3, 4, 5;
    do method=1, 2, 3;
        do alloy= 1,2;
            do temp=1500, 1600, 1700; 
                input y @@; 
                output; 
                Y +.1 * rand('NORMAL', 0, 500);
                output; 
            end;
        end;
    end;
end;
cards;
(不完全是,因为我引入了一些随机性) 实际上,您仍然给GLM一个截距和89个因子(DF)供选择,但您要求它拟合180个值(1个截距和179个DF)

你该怎么办 _(除非你要求牙医做90次额外测量)是选择一个更简单的模型。我想你对评估牙医不感兴趣,只对技术感兴趣,例如方法、合金和温度,所以写下来

Source          DF      Sum of Squar    Mean Square     F Value    Pr > F      
Model           89      19556981.91     219741.37       1.45       0.0403      
Error           90      13643754.57     151597.27                                   
Corrected To    179     33200736.48                                                 
                                                                                    
R-Square        Coeff   Root MSE        y Mean                                      
0.589053        51.89   389.3549        750.2041                                    
proc GLM data=gold;
等级:合金温度;
y型=方法|合金|温度;**F
型号17 905055.156 53238.539 3.89 F
方法2 593427.4889 296713.7444 21.67这是过度拟合的经典示例。
您只有90个测量值,因此模型具有89个自由度(DF)

  • 1拦截
  • 加上不同牙医的5个因素,有一个限制条件:它们的总和必须为0,即4 DF
  • 加上方法M的3个因子,再减去一个约束,即2 DF
  • 加上牙医和方法组合的15个因素,必须满足以下8个约束条件。由于这些约束条件不是完全独立的,这将使DF仅减少7个,即允许
    GLM
    为8个DF
    • 对于每个牙医,所有方法的系数总和必须为0和
    • 对于每种方法,所有牙医的系数总和必须为0
等等

简而言之,您允许
GLM
过程选择1个截距加上89个其他DF,以仅适合90个值。
GLM
可以生成一个完全适合您的数据的模型。难怪该模型没有错误

为了更好地理解它: 例如,引入与真实测量略有不同的假测量值

The GLM Procedure
Dependent Variable: y 

    Source DF Sum of Squares Mean Square F Value Pr > F 
    Model  89 1891095.556     21248.265   .       . 
    Error  0  0.000             .     
    Total 89  1891095.556       

    R-Square Coeff Var Root MSE y Mean 
    1.000000  .        .        741.7778 
现在您的输出可能如下所示

data gold;
do dentist=1, 2, 3, 4, 5;
    do method=1, 2, 3;
        do alloy= 1,2;
            do temp=1500, 1600, 1700; 
                input y @@; 
                output; 
                Y +.1 * rand('NORMAL', 0, 500);
                output; 
            end;
        end;
    end;
end;
cards;
(不完全是,因为我引入了一些随机性) 实际上,您仍然给GLM一个截距和89个因子(DF)供选择,但您要求它拟合180个值(1个截距和179个DF)

你该怎么办 _(除非你要求牙医做90次额外测量)是选择一个更简单的模型。我想你对评估牙医不感兴趣,只对技术感兴趣,例如方法、合金和温度,所以写下来

Source          DF      Sum of Squar    Mean Square     F Value    Pr > F      
Model           89      19556981.91     219741.37       1.45       0.0403      
Error           90      13643754.57     151597.27                                   
Corrected To    179     33200736.48                                                 
                                                                                    
R-Square        Coeff   Root MSE        y Mean                                      
0.589053        51.89   389.3549        750.2041                                    
proc GLM data=gold;
等级:合金温度;
y型=方法|合金|温度;**F
型号17 905055.156 53238.539 3.89 F

方法2 593427.4889 296713.7444 21.67我认为你的数据集有太多的术语,而没有足够的观察值。你试图运行的模型是什么?Y=temp+dentor+alloy+方法还是包含所有交互术语的方法?我只需要所有交互术语。如果你能告诉我怎么做,我可能可以x it。我能够正确获取所有SS和MS值,但由于某些原因,错误项显示为0,甚至认为SS为75772,MS为4735.7。请尝试在模型语句中的项后添加@2。我尝试添加@2,但仍然没有显示正确的值。您认为我在SAS代码中键入数据的方式错误吗@JasonSmith这看起来像是RCB中的一个3*2*3阶乘,其中牙医的是块。如果这是设计,那么模型就是这样。y=牙医方法|合金|温度;我认为你的数据集有太多的术语,而没有足够的观察。你试图运行的模型是什么?y=温度+牙医+合金+方法还是一个包含所有交互术语的模型?I j我们需要所有的交互项。如果你能告诉我怎么做,我可能可以修复它。我能够正确地获得所有的SS和MS值,但由于某种原因,错误项显示为0,即使假设SS为75772,MS为4735.7。请尝试在model语句中的项后添加@2。我尝试添加@2,但仍然无法显示正确的值。你认为我在SAS代码中键入数据的方式是错误的吗?@JasonSmith这看起来像是RCB中的一个3*2*3阶乘,其中牙医的是块。如果这是设计,那么模型就是这个。y=Destint method | alloy | temp;非常感谢@Dirk Horsten,这非常有帮助。我需要在结尾添加@3