我正在研究关于年度作物产量和天气参数之间关系的回归模型。作物产量数据从1960年到现在,显然呈上升趋势。许多研究表明这可能是由于技术的改进。为了使回归模型更可靠,可以采用去趋势方法。
任何从事相同主题工作的人都知道如何降低作物产量?我已经尝试了 pracma 包中的detrend函数,它似乎无法正常工作。
作为一个例子,玉米子集如何从1960年到1980年产生两个县的数据,
>view(corn)
year county1 county2
1960 50 52
1961 69 79
1962 75 84
1963 77 87
1964 60 81
1965 81 99
1966 67 83
1967 96 103
1968 81 104
1969 81 84
1970 51 82
1971 91 115
1972 100 118
1973 102 106
1974 69 96
1975 96 107
1976 103 95
1977 98 62
1978 106 105
1979 111 136
1980 95 97
任何人都知道如何做这种去趋势? 非常感谢!
答案 0 :(得分:1)
这是使用pracma的detrend函数的解决方案。 它以特定方式调整数据格式后工作。
require(pracma)
#Create data frame with country data:
df <- data.frame(
"country1"=c(50,69,75,77,60,81,67,96,81,81,51,91,100,102,69,96,
103,98,106,111,95),
"country2"=c(52,79,84,87,81,99,83,103,104,84,82,115,118,106,96,
107,95,62,105,136,97))
#Transpose data frame, making a matrix in the process:
df <- t(df)
#Add dates as column names:
colnames(df) <- c(1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,
1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980)
#Apply detrend:
data.detrend <- detrend(df, tt = 'linear')
#Apply time series:
data.detrend <- ts(as.numeric(data.detrend),
start=c(1960,1), frequency=2)
str(data.detrend) #check date range
#Plot:
plot.ts(data.detrend)