我有一个数据框,其中有几列和几行。例如,下面的数据框显示第1列到第4列是我的土壤水分数据,第5列到第8列是蒸散(ET),第9列到第12列是降水数据(p)。我有156colum土壤水分,ET,P。现在,我想对土壤水分列和相应的降水和蒸散列进行多元线性回归,其中我的土壤水分是因变量,ET和P是自变量。在运行多元回归时,我想使用以下方程作为我的自变量,并计算a1,a2和b1,b2等系数。
ΔΦ(j.t+1) = a1P(j.t) + a2P(J.t-1) + b1ET(j.t) + b2ET(J.t-1)+εt+1其中Δθ(j,t+1)是t和t+1之间的土壤水分差,a和b是要确定的降水量(P)和蒸散(ET)的系数,εt+1是模型的误差项。
我的数据框如下所示:
1 2 3 4 5 6 7 8 9 10 11 12
NA NaN NA 645 732 1010 1050 169.7152863 264.919281 174.5597839 117.1220169 117.1220169 1.788969846 1.769300308 1.881795708 1.798497618 NaN 183.5778961 272.1306458 164.4124298 3.41084 3.41084 NA 576 657 840 817 166.3976135 263.9378357 161.8202972 97.60928345 1.995551665 2.037976549 2.144578129 2.065179551 533 597 747 744 151.7550201 265.6147766 155.722702 91.79171753
到目前为止,我使用了以下代码在R编程语言中创建了数据框架和矩阵,并希望得到进一步的帮助来完成任务。
data = read.table('MasterPiece.csv',header=TRUE, sep=',')
SMDI = data.frame(data1[3:158]) #Soil moisture
MODET = data.frame(data[159:314]) #Evapotranspiration
PRCP = data.frame(data[315:470]) #Precipitation
smdi1 = data.matrix(SMDI)
modet1 = data.matrix(MODET)
prcp1 = data.matrix(PRCP)发布于 2015-03-02 05:15:00
线性回归函数lm()采用以下参数:
lm(dependentVariable ~ independentVariable1 + independentVariable2, data = df)其他人可能会指出一种绕过它的方法,但我认为这意味着所有的变量(列)必须在一个数据框中。因此,您的第一行代码是正确的:
data <- read.table("MasterPiece.csv", header = TRUE, sep = ",")(注意:赋值时建议使用<-,不要使用= )。您不需要将变量放在单独的数据框中。
例如,如果您的变量名是:smdi1...,modet1...,prcp1...您可以使用以下命令运行模型:
m1 <- lm(smdi1 ~ modet1 + prcp1, data = data)
summary(m1)https://stackoverflow.com/questions/28773154
复制相似问题