Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
从R中的lm对象绘制F分布_R_Models - Fatal编程技术网

从R中的lm对象绘制F分布

从R中的lm对象绘制F分布,r,models,R,Models,假设我们有两个变量,我们希望从中构建模型: set.seed(10239) x <- rnorm(seq(1,100,1)) y <- rnorm(seq(1,100,1)) model <- lm(x~y) class(model) # [1] "lm" summary(model) # # Call: # lm(formula = x ~ y) # # Residuals: # Min 1Q Median 3Q Max

假设我们有两个变量,我们希望从中构建模型:

set.seed(10239)
x <- rnorm(seq(1,100,1))
y <- rnorm(seq(1,100,1))
model <- lm(x~y)

class(model)
# [1] "lm"

summary(model)
# 
# Call:
# lm(formula = x ~ y)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -3.08676 -0.63022 -0.01115  0.75280  2.35169 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.07188    0.11375  -0.632    0.529
# y            0.06999    0.12076   0.580    0.564
# 
# Residual standard error: 1.117 on 98 degrees of freedom
# Multiple R-squared:  0.003416,    Adjusted R-squared:  -0.006754 
# F-statistic: 0.3359 on 1 and 98 DF,  p-value: 0.5635
set.seed(10239)

x如果您检查模型摘要的结构
str(摘要(模型))
,您会注意到,可以通过调用
summary(模型)$fstatistic
找到感兴趣的F分布的参数。列表中的第一个元素是F统计量,接下来的两个元素是分子自由度和分母自由度,按顺序排列。因此,要绘制F分布,请尝试以下方法

df <- summary(model)$fstatistic
curve(df(x, df1 = df[2], df2 = df[3]), from = 0, to = 100)

df我更喜欢以下方式来显示F分布的p值

fstat <- summary(model)$fstatistic

library(HH)
old.omd <- par(omd=c(.05,.88, .05,1))
F.setup(df1=fstat['numdf'], df2=fstat['dendf'])
F.curve(df1=fstat['numdf'], df2=fstat['dendf'], col='blue')
F.observed(fstat['value'], df1=fstat['numdf'], df2=fstat['dendf'])
par(old.omd)

fstat几点意见:i)
df2
可以使用
df计算。残差(模型)
,ii)在一般使用中,要小心从模型中获取残差之类的东西,而不是使用提取函数。当一个模型有多种类型的残差时,
$residuals
可能包含工作残差(例如,
glm()
),它很少是您想要的,而
resids(model)
将返回与工作残差不同且更有用的结果+1用于显示
curve()
。调用F统计变量
df
,会让人感到困惑,因为这也是所使用函数的名称。如果使用其他名称,例如
fs
,则会很清楚。同样值得注意的是,
curve
函数的第一个参数是一个表达式,因此
df
中的
x
与模型中的
x
不同。这仍然是曲线+1的一个很好的用法。
fstat <- summary(model)$fstatistic

library(HH)
old.omd <- par(omd=c(.05,.88, .05,1))
F.setup(df1=fstat['numdf'], df2=fstat['dendf'])
F.curve(df1=fstat['numdf'], df2=fstat['dendf'], col='blue')
F.observed(fstat['value'], df1=fstat['numdf'], df2=fstat['dendf'])
par(old.omd)