Модель OLS не запускается и выдает ошибку в model.frame.default - PullRequest
0 голосов
/ 11 ноября 2018

Я только начал программировать на R, начиная с прошлой недели, и пытаюсь создать линейную модель, но столкнулся с двумя ошибками. Сначала я попытался запустить регрессию, используя

reg1 <- lm(Ex ~ Im)

Ex и Im - это экспорт и импорт в США по странам, и матрицы имеют одинаковый размер. Ниже приведен код, который он мне показывает.

  Error in model.frame.default(formula = Ex ~ Im, drop.unused.levels = TRUE) : invalid type (list) for variable 'Ex'

Затем я попытался выяснить, позволит ли создание фрейма данных для всех переменных работать.

Im <- data.frame(Im, Im = unlist(Im), row.names = NULL)
Ex <- data.frame(Ex, Ex = unlist(Ex), row.names = NULL)
er <- data.frame(er, er = unlist(er), row.names = NULL)
FTA <- data.frame(FTA, FTA = unlist(FTA), row.names = NULL)
NAFTA <- data.frame(NAFTA, NAFTA = unlist(NAFTA), row.names = NULL)
t <- data.frame(t, t = unlist(t), row.names = NULL)
u <- data.frame(u, u = unlist(u), row.names = NULL) 
d <- data.frame(D, d=unlist(D), row.names = NULL)
FBP <- data.frame(FBP, FBP = unlist(FBP), row.names = NULL)

Моя третья попытка состояла в том, чтобы объединить наборы данных, чтобы я мог затем запустить регрессию и объединить наборы данных, которые, я думал, могли бы это исправить.

IE <- merge(NAFTA, FTA, by=c(Year, Year))

R, затем выплюнуть

Error in fix.by(by.x, x) : object 'Year' not found

Понятия не имею, что нужно сделать, чтобы код заработал.

Ниже я поместил весь свой код на случай, если это кому-нибудь пригодится.

Import datasets
```{r}
 Im = read.csv("Imports2.csv")
 Ex = read.csv("Exports2.csv")
 er = read.csv("erfinished2.csv")
 FTA = read.csv("FTA2.csv")
 NAFTA = read.csv("NAFTA2.csv")
 t = read.csv("TData_US2.csv")
 u = read.csv("Unemployment.csv")
 D = read.csv("DtoDC.csv")
 FBP = read.csv("Fiscal_Balance_US 3.csv")
 ```

входные NA {r} u[u == ""] <- NA t[t == ""] <- NA er[er == ""] <- NA FBP[FBP == ""] <- NA NAFTA[NAFTA == ""] <- NA Im[Im == ""] <- NA Ex[Ex == ""] <- NA FTA[FTA == ""] <- NA просмотреть набор данных {r} View(Im) View(Ex) View(er) View(FTA) View(NAFTA) View(t) View(u) View(D) View(FBP)

log distance
```{r}
lnd = data.frame(D$Capital,log(D$Air_Distance_.miles.))
View(lnd)
ls() 
```
make data frame
```{r}
Im <- data.frame(Im, Im = unlist(Im), row.names = NULL)
Ex <- data.frame(Ex, Ex = unlist(Ex), row.names = NULL)
er <- data.frame(er, er = unlist(er), row.names = NULL)
FTA <- data.frame(FTA, FTA = unlist(FTA), row.names = NULL)
NAFTA <- data.frame(NAFTA, NAFTA = unlist(NAFTA), row.names = NULL)
t <- data.frame(t, t = unlist(t), row.names = NULL)
u <- data.frame(u, u = unlist(u), row.names = NULL)
d <- data.frame(D, d=unlist(D), row.names = NULL)
FBP <- data.frame(FBP, FBP = unlist(FBP), row.names = NULL)
 ```
merge
```{r}
IE <- merge(NAFTA, FTA, by=c(Year, Year))
``` 
...