使用 R 从更大的方程创建特定的线性回归方程
Creating Specific linear regression equations from A larger equation using R
这是我的数据样本,可在 link 中找到:http://www.uwyo.edu/crawford/datasets/drugreactions.txt
我为数据做了这个等式
fit2 <- lm(Allergens~Gender*Race*Druglevel, data=dr)
这把我吐出来
我知道如何重新排序数据以给出
的黑人男性基线
dr$Race<-factor(dr$Race,levels=c("Black","Latino","Indian","Asian","NativeAmerican","Whit e"))
dr$Gender<-factor(dr$Gender,levels=c("Male","Female"))
newfit <- lm(Allergens~Gender*Race, data=dr)
但是我想要的是能够取出某些系数。例如,假设我只想让白人男性和黑人女性出现在模型中,而不是所有其他类别。
我试过了
whitefit <- lm(Allergens~(Gender="Male"), data=dr)
但由于过敏原之间的行不均匀以及性别等于男性,所以出现错误。
理想情况下,我想要一种方法来取出任何类别,以便我可以完全自定义模型并为简单起见取出东西。例如,从上面的模型中取出男性印度人。
您需要通过索引或使用 subset
函数对数据进行子集化:
dr <- read.table("http://www.uwyo.edu/crawford/datasets/drugreactions.txt",
header=TRUE, stringsAsFactors = TRUE)
# Example excluding Indians:
newfit <- lm(Allergens ~ Gender * Race, data = subset(dr, subset = Race != "indian"))
# Example using only White Males and Black Females
wmbf.fit <- lm(Allergens ~ Gender * Race,
data = subset(dr, subset = (Race == "White" & Gender == "Male") |
(Race == "Black" & Gender == "Female")))
但是,如果您想完全排除 性别,则需要更改公式以排除性别,因为所有观察值在性别上都具有相同的值,因此这变量不可能对模型有贡献。
这是我的数据样本,可在 link 中找到:http://www.uwyo.edu/crawford/datasets/drugreactions.txt
我为数据做了这个等式
fit2 <- lm(Allergens~Gender*Race*Druglevel, data=dr)
这把我吐出来
我知道如何重新排序数据以给出
的黑人男性基线 dr$Race<-factor(dr$Race,levels=c("Black","Latino","Indian","Asian","NativeAmerican","Whit e"))
dr$Gender<-factor(dr$Gender,levels=c("Male","Female"))
newfit <- lm(Allergens~Gender*Race, data=dr)
但是我想要的是能够取出某些系数。例如,假设我只想让白人男性和黑人女性出现在模型中,而不是所有其他类别。 我试过了
whitefit <- lm(Allergens~(Gender="Male"), data=dr)
但由于过敏原之间的行不均匀以及性别等于男性,所以出现错误。
理想情况下,我想要一种方法来取出任何类别,以便我可以完全自定义模型并为简单起见取出东西。例如,从上面的模型中取出男性印度人。
您需要通过索引或使用 subset
函数对数据进行子集化:
dr <- read.table("http://www.uwyo.edu/crawford/datasets/drugreactions.txt",
header=TRUE, stringsAsFactors = TRUE)
# Example excluding Indians:
newfit <- lm(Allergens ~ Gender * Race, data = subset(dr, subset = Race != "indian"))
# Example using only White Males and Black Females
wmbf.fit <- lm(Allergens ~ Gender * Race,
data = subset(dr, subset = (Race == "White" & Gender == "Male") |
(Race == "Black" & Gender == "Female")))
但是,如果您想完全排除 性别,则需要更改公式以排除性别,因为所有观察值在性别上都具有相同的值,因此这变量不可能对模型有贡献。