R中日期和某些相关输出的线性回归

R中日期和某些相关输出的线性回归,r,datetime,regression,linear-regression,R,Datetime,Regression,Linear Regression,实际上,我需要使用线性回归计算参数θ0和θ1。 我的数据框(data.1)由两列组成,第一列是日期时间,第二列是依赖于此日期的结果。 像这样: data.1[[1]] data.1[[2]] 2004-07-08 14:30:00 12.41 现在,我有了这段代码,它反复多次计算参数theta0,theta1 x=as.vector(data.1[[1]]) y=as.vector(data.1[[2]]) plot(x,y) theta0=10 theta

实际上,我需要使用线性回归计算参数θ0和θ1。 我的数据框(data.1)由两列组成,第一列是日期时间,第二列是依赖于此日期的结果。
像这样:

        data.1[[1]]  data.1[[2]]
2004-07-08 14:30:00        12.41
现在,我有了这段代码,它反复多次计算参数
theta0
theta1

x=as.vector(data.1[[1]])
y=as.vector(data.1[[2]])

plot(x,y)

theta0=10
theta1=10
alpha=0.0001
initialJ=100000
learningIterations=200000

J=function(x,y,theta0,theta1){
m=length(x)
sum=0
for(i in 1:m){
  sum=sum+((theta0+theta1*x[i]-y[i])^2)
}
sum=sum/(2*m)
return(sum)
}

updateTheta=function(x,y,theta0,theta1){
sum0=0
sum1=0
m=length(x)
for(i in 1:m){
   sum0=sum0+(theta0+theta1*x[i]-y[i])
   sum1=sum1+((theta0+theta1*x[i]-y[i])*x[i])
 }
sum0=sum0/m
sum1=sum1/m
theta0=theta0-(alpha*sum0)
theta1=theta1-(alpha*sum1)
 return(c(theta0,theta1))
}    

for(i in 1:learningIterations){
thetas=updateTheta(x,y,theta0,theta1)
tempSoln=0
tempSoln=J(x,y,theta0,theta1)
if(tempSoln<initialJ){
  initialJ=tempSoln
}
if(tempSoln>initialJ){
   break
 }
theta0=thetas[1]
theta1=thetas[2]
#print(thetas)
#print(initialJ)
plot(x,y)
lines(x,(theta0+theta1*x), col="red")
  }
  lines(x,(theta0+theta1*x), col="green")
x=as.vector(data.1[[1]])
y=as.vector(数据.1[[2]])
绘图(x,y)
θ0=10
θ1=10
α=0.0001
初始值j=100000
学习迭代次数=200000
J=函数(x,y,θ0,θ1){
m=长度(x)
总和=0
对于(1:m中的i){
总和=总和+((θ0+θ1*x[i]-y[i])^2)
}
总和=总和/(2*m)
回报(总和)
}
updateTheta=函数(x,y,θ0,θ1){
sum0=0
sum1=0
m=长度(x)
对于(1:m中的i){
sum0=sum0+(θ0+θ1*x[i]-y[i])
sum1=sum1+((θ0+θ1*x[i]-y[i])*x[i])
}
sum0=sum0/m
sum1=sum1/m
θ0=θ0-(α*sum0)
θ1=θ1-(α*sum1)
返回(c(θ0,θ1))
}    
for(i in 1:learningIterations){
θ=更新θ(x,y,θ0,θ1)
tempSoln=0
tempSoln=J(x,y,θ0,θ1)
if(tempSolninitialJ){
打破
}
θ0=θ[1]
θ1=θ[2]
#打印(θ)
#打印(缩写J)
绘图(x,y)
行(x,(θ0+θ1*x),col=“红色”)
}
行(x,(θ0+θ1*x),col=“绿色”)
现在我想使用以下场景计算θ0和θ1:

  • y=data.1[[2]]
    x=dates
    ,无论年份如何,它们都是相似的
  • y=data.1[[2]]
    x=months
    ,无论年份如何,它们都是相似的

  • 请建议..

    正如@Nicola所说,您需要在
    R

    如果您想了解有关
    线性回归的更多信息,请查看或遵循

    首先,你必须确定你的公式。您希望使用
    数据计算
    Theta0
    Theta1
    。1[[2]]
    日期
    /
    月份

    您的第一个公式大致如下:

    formula <- Theta0 ~ data.1[[2]] + dates
    
    之后,您可以使用输出进行各种计算。
    例如,您可以计算方差分析,或者只打印摘要:

    anova(variablename)
    summary(variablename)
    

    旁注:
    我注意到您使用
    =
    分配变量。不建议使用括号。有关更多信息,请查看

    R
    中,最好使用
    R中的
    线性回归通过
    lm
    函数实现。有关详细信息,请参见
    ?lm
    。@Mohit如果我的答案对您有帮助,请将其标记为已接受:)
    =
    作业没有“错误”是一种样式选择,甚至可能是Mohit工作的样式指南的一部分。
    anova(variablename)
    summary(variablename)
    
    x <- as.vector(data.1[[1]])
    y <- as.vector(data.1[[2]])
    
    plot(x,y)
    
    theta0 <- 10
    theta1 <- 10
    alpha <- 0.0001
    initialJ <- 100000
    learningIterations <- 200000