其實我需要使用線性迴歸來計算參數theta0和theta1。 我的數據框(data.1)由兩列組成,第一個是日期時間,第二個是依賴於此日期的結果。
像這樣:R中日期和一些相關輸出的線性迴歸
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")
現在我想用計算theta0和theta1以下情況:
y=data.1[[2]]
和x=dates
wh ICH是相似的,不論今年y=data.1[[2]]
和x=months
這是類似當年
請建議不論..
在'R'線性迴歸通過'lm'功能實現。有關詳細信息,請參閱'?lm'。 – nicola
@Mohit如果我的回答對你有幫助,請將其標記爲已接受:) – Bas