我在R中有一个数据集,其中有两列标记为x和y,每列都有超过1000个值。我需要找到sum((xi^2-xbar^2)(yi-ybar))/sum((xi-xbar)^4)
的线性回归问题。我能想到的只有:
sum(((data$x)^2-mean(data$x)^2)(data$y-mean(data$y)))/sum((data$x-mean(data$x))^4)
但这只是给了我Error: attempt to apply non-function
。我还没有弄清楚如何纠正这个问题。任何帮助将不胜感激。
答案 0 :(得分:1)
问题:你怎么弄清楚在一个看起来很难看的表达式中出现了什么问题?
答案:将它分开一块。
df <- data.frame(x = rnorm(10), y = rnorm(10))
df$x^2
# works fine
df$x^2 - mean(x)^2
# works fine **SEE NOTE**
sum(df$x^2 - mean(x)^2)
# works fine
# sum(DF$x^2 - mean(x)^2)(data$y-mean.... oh i see
你试图通过将parens彼此相邻而成倍增加。使用*
注意:没有它没有......在第二次通过时,您可能会发现您的值不正确,但如果您有一个x对象,那么这不会引发错误已经在您的环境中(并且该对象没有任何NA值)
答案 1 :(得分:0)
我认为这与()以及如何从数据中引用x和y变量有关。请尝试以下方法。
sum(((data$x)^2-(mean(data$x))^2)*(data$y-mean(data$y)))/sum((data$x-(mean(data$x))^2))