Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 因变量为因子/分类变量时的线性模型(lm)?_R_Lm_Categorical Data_R Factor - Fatal编程技术网

R 因变量为因子/分类变量时的线性模型(lm)?

R 因变量为因子/分类变量时的线性模型(lm)?,r,lm,categorical-data,r-factor,R,Lm,Categorical Data,R Factor,我想用lm函数进行线性回归。我的因变量是一个名为AccountStatus的因子: 1:0 days in arrears, 2:30-60 days in arrears, 3:60-90 days in arrears and 4:90+ days in arrears. (4) 作为自变量,我有几个数字变量:贷款价值比,债务收入比和利率 可以用这些变量进行线性回归吗?我在网上找到了一些关于dummy的东西,但这些都是自变量 这不起作用: fit <- lm(factor(Accou

我想用
lm
函数进行线性回归。我的因变量是一个名为
AccountStatus
的因子:

1:0 days in arrears, 2:30-60 days in arrears, 3:60-90 days in arrears and 4:90+ days in arrears. (4)
作为自变量,我有几个数字变量:
贷款价值比
债务收入比
利率

可以用这些变量进行线性回归吗?我在网上找到了一些关于dummy的东西,但这些都是自变量

这不起作用:

fit <- lm(factor(AccountStatus) ~ OriginalLoanToValue, data=mydata)
summary(fit)

fit线性回归不需要依赖部分的分类变量,它必须是连续的。考虑到AccountStatus变量只有四个级别,将其视为连续变量是不可行的。在开始任何统计分析之前,人们应该了解自己变量的重要性

你能做的就是使用多项式逻辑回归,例如,参见。或者,您可以将AccountStatus重新编码为二分法,并使用简单的逻辑回归


很抱歉让您失望,但这只是多元回归的固有限制,与R无关。如果您想了解更多关于哪种统计技术适用于因变量和自变量测量水平的不同组合的信息,我可以全心全意地建议。

如果您能为变量提供一个数值,那么您可能会有一个解决方案。您必须将值重命名为数字,然后将变量转换为数字。以下是如何:

library(plyr)
my.data2$islamic_leviathan_score <- revalue(my.data2$islamic_leviathan,
               c("(1) Very Suitable"="3", "(2) Suitable"="2", "(3) Somewhat Suitable"="1", "(4) Not Suitable At All"="-1"))

my.data2$islamic_leviathan_score_1 <- as.numeric(as.character(my.data2$islamic_leviathan_score))
库(plyr)

my.data2$islamic_leviathan_score对@MaximK的答案进行了一点扩展:当因子的级别无序时,多项式方法是合适的:但是,在您的情况下,当度量级别为有序时(即有序,但级别之间的距离未知/未定义),通过这样做,您可以从数据中获得更多信息,例如使用
MASS
包中的
polr()
函数或
ordinal
包中的函数。然而,由于顺序回归与简单线性回归具有不同/更复杂的基础理论,您可能应该阅读更多关于它的内容(例如,在上面链接的维基百科文章中,或在
ordinal
软件包的小插曲中,或在,或浏览相关内容中。

谢谢Maxim,这对我来说并不令人失望。我很高兴有其他解决方法。谢谢。或有序回归(
MASS::polr()
ordinal
软件包等)您好;我相信lm函数现在处理分类变量,为每个类别生成一个系数和一个二进制变量。但是,我担心您的句子:“很抱歉让您失望,但这只是多元回归的固有限制,与R无关”。这是否意味着lm()“目前对分类变量的处理只是临时性的,对于一般预测来说效果不太好?@Ovi:这意味着线性回归不是为了处理分类响应而设计的。正如@MaximK所说,它与
lm()
或R无关:任何线性回归过程都会失败。”(或者天真地将分类变量转换为整数值,这可能是有问题的(如果变量是有序的)或完全错误的(如果变量是无序的),这是合理的,但做出了一个非常强烈的假设(即响应的级别是均匀分布的),这可能是合理的,也可能不是合理的