Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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公式y~1是什么意思?_R_R Formula - Fatal编程技术网

R公式y~1是什么意思?

R公式y~1是什么意思?,r,r-formula,R,R Formula,我正在阅读上的文档,并试图找出如何使用 现在,在depmixS4的文档中,示例公式往往类似于y~1。 对于像y~x这样的简单情况,它定义了输入x和输出y之间的关系,因此我得到它类似于y=a*x+b,其中a是斜率,b是截距 如果我们回到y~1,这个公式会把我甩了。它是否等同于y=1(y=1处的水平线) 要添加位上下文,请查看depmixs4文档,下面有一个示例 depmix(list(rt~1,corr~1),data=speed,nstates=2,family=list(gaussian(),

我正在阅读上的文档,并试图找出如何使用

现在,在depmixS4的文档中,示例公式往往类似于
y~1
。 对于像
y~x
这样的简单情况,它定义了输入x和输出y之间的关系,因此我得到它类似于
y=a*x+b
,其中
a
是斜率,
b
是截距

如果我们回到
y~1
,这个公式会把我甩了。它是否等同于y=1(y=1处的水平线)

要添加位上下文,请查看depmixs4文档,下面有一个示例

depmix(list(rt~1,corr~1),data=speed,nstates=2,family=list(gaussian(),多项式())


我认为一般来说,以
~1
结尾的公式让我感到困惑。有什么能解释
~1
y~1
的意思吗?

一般来说,这种公式以线性模型的形式描述因变量和自变量之间的关系。左侧为因变量,右侧为独立变量。自变量用于计算线性模型的趋势分量,然后假设残差具有某种分布。当独立变量等于1时,趋势分量为单个值,例如数据的平均值,即线性模型只有一个截距。

R中模型公式(asterix,plus,caret)中使用的许多运算符,具有特定于模型的含义,这是其中之一:“一”符号表示截距

换句话说,当自变量为零或没有影响时,它是因变量的预期值。(要使用模型术语更常见的数学含义,请将它们包装在
I()
)中)。拦截通常是假定的,因此最常见的情况是在没有拦截的情况下显式声明模型

这里有两种方法可以为y对x的线性回归模型指定相同的模型。第一个具有隐式截距项,第二个具有显式截距项:

y ~ x
y ~ 1 + x
以下是通过原点(即,无截距项)给出y对x的线性回归的方法:

在您提到的特定情况下(y~1),y不是由其他变量预测的,因此自然预测是y的平均值,如Paul Hiemstra所述:

> data(city)
> r <- lm(x~1, data=city)
> r

Call:
lm(formula = x ~ 1, data = city)

Coefficients:
(Intercept)  
       97.3  

> mean(city$x)
[1] 97.3

formula()
是一个用于从对象中提取公式的函数,其帮助文件不是阅读在R中指定模型公式的最佳位置。我建议您查看。

的第11章,如果您的模型的形式为
y~x1+x2
,则这(粗略地说)表示:

 y = β0 + β1(x1) + β2(x2)

 Which is of course the same as 
 y = β0(1) + β1(x1) + β2(x2)
上述公式中有一个隐式
+1
。实际上,上面的公式是
y~1+x1+x2

我们可以得到一个非常简单的公式,其中y不依赖于任何其他变量。这是您引用的公式,
y~1
大致相当于

 y = β0(1) = β0
正如@Paul所指出的,当你解这个简单模型时,你会得到
β0=mean(y)




这里有一个例子
#让我们制作一个小样本数据帧

谢谢你的解释,答案非常全面。我学到了很多!MattBagg,在ksvm(kernlab软件包)中,该样本的公式显示为
type~。
,这再次让我感到困惑。你知道那是什么意思吗?我知道这不在原始问题中,但我也不确定创建一个SO问题是否是一个好主意,因此,我在这里提问。一般来说,你应该问一个真实的问题,得到一个真实的问题,这样双方都能得到信任,重要的是,其他人也能找到答案。这里的公式表示数据帧中所有其他变量预测的类型。句号是其他所有词的缩写。仍然令人困惑。人们期望得到像“inta;”或“double sin(double x);”这样的解释,因为这是一种编程语言。
 y = β0 + β1(x1) + β2(x2)

 Which is of course the same as 
 y = β0(1) + β1(x1) + β2(x2)
 y = β0(1) = β0
  # Let's make a small sample data frame
  dat <- data.frame(y= (-2):3, x=3:8)

  # Create the linear model as above
  simpleModel <- lm(y ~ 1, data=dat)

  ## COMPARE THE COEFFICIENTS OF THE MODEL TO THE MEAN(y)
  simpleModel$coef
    # (Intercept) 
    #         0.5 

  mean(dat$y)
    # [1] 0.5