我一直在尝试为Logistic回归构建一些自定义代码(即,我无法为此目的使用GLM软件包-很高兴解释原因。)
下面是提供我正在使用的数据集的初始R代码:
## Load the datasets
data("titanic_train")
data("titanic_test")
## Combining Training and Testing dataset
complete_data <- rbind(titanic_train, titanic_test)
library(dplyr)
titanic_test$Survived <- 2
complete_data <- rbind(titanic_train, titanic_test)
complete_data$Embarked[complete_data$Embarked==""] <- "S"
complete_data$Age[is.na(complete_data$Age)] <-
median(complete_data$Age,na.rm=T)
complete_data <- as.data.frame(complete_data)
titanic_data <- select(complete_data,-c(Cabin, PassengerId, Ticket,
Name))
titanic_data <- titanic_data[!titanic_data$Survived == "2", ]
titanic_model <- model <- glm(Survived
~.,family=binomial(link='logit'),data=titanic_data)
y <- titanic_data$Survived
x <- as.data.frame(cbind(rep(1, dim(titanic_data)
[1]),titanic_data[,-2]))
x <- as.matrix(as.numeric(x))
beta <- as.numeric(rep(0, dim(x)[2]))
beta <- as.matrix(beta)
我在这里遇到的问题是我想计算 beta (px1矩阵)和 x ( anxp矩阵)
我尝试了以下方法-
beta * x
x %*% beta
但是,以上出现以下错误-
FUN中的错误(左,右):二进制运算符的非数字参数
x%*%beta出现错误:需要数字/复杂矩阵/矢量参数
我想这是由于我在数据矩阵 x 中有非数字字段。
作为背景知识,计算线性预测变量将使我能够继续进行用于拟合Logistic回归模型的自定义代码。
我会感谢您的帮助-谢谢!