I have a dataset (data frame) with 5 columns all containing numeric values.
I'm looking to run a simple linear regression for each pair in the dataset.
For example, If the columns were named A, B, C, D, E, I want to run lm(A~B), lm(A~C), lm(A~D), ...., lm(D~E),... and, then I want to plot the data for each pair along with the regression line.
我对R很陌生,所以我在如何实现这一目标的过程中如何旋转.我应该用ddply吗?还是lapply?我真的不确定如何解决这个问题.
假设我有一组线段,如这张图片中的红线(或绿线) 
我想知道如何用最接近它们的线段替换它们。或者您可以建议要搜索的内容,因为这可能是统计中的常见问题。
问题背景:这其实来自于使用OpenCV的概率霍夫变换。我想检测一张纸的角。当我将它应用于图像时,我会在边缘处得到一组线条,我想将这些线条转换为单线连续段。
我想到的一种方法是从直线上取几个点,然后使用直线回归得到直线的方程。一旦我有了它,我应该把它剪成一段。
algorithm statistics opencv image-processing linear-regression
我正在尝试使用 sk-learn 在 Python 中运行通常的线性回归,但是我有一些我不知道如何处理的分类数据,尤其是因为我使用 Pandas 导入了数据read.csv()并且我从以前的经验和阅读中学到了Pandas 和 sk-learn 相处得不太好(还)。
我的数据如下所示:
Salary AtBat Hits League EastDivision
475 315 81 1 0
480 479 130 0 0
500 496 141 1 1
Run Code Online (Sandbox Code Playgroud)
我想使用 AtBat、Hits、League 和 EastDivision 预测薪水,其中 League 和 EastDivision 是分类的。
如果我通过 numpy's 导入数据,loadtext()我会得到一个 numpy 数组,理论上我可以与 sklearn 一起使用,但是当我使用 DictVectorizer 时,我得到一个错误。我的代码是:
import numpy as np
from sklearn.feature_extraction import DictVectorizer as DV
nphitters=np.loadtxt('Hitters.csv',delimiter=',', skiprows=1)
vec = DV( sparse = False )
catL=vec.fit_transform(nphitters[:,3:4])
Run Code Online (Sandbox Code Playgroud)
当我运行最后一行catL=vec.fit_transform(nphitters[:,3:4])时出现错误,错误是
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用 R 对变量进行逐步选择。这是我的代码:
library(lattice)#to get the matrix plot, assuming this package is already installed
library(ftsa) #to get the out-of sample performance metrics, assuming this package is already installed
library(car)
mydata=read.csv("C:/Users/jgozal1/Desktop/Multivariate Project/Raw data/FINAL_alldata_norowsunder90_subgroups.csv")
names(mydata)
str(mydata)
mydata$country_name=NULL
mydata$country_code=NULL
mydata$year=NULL
mydata$Unemployment.female....of.female.labor.force...modeled.ILO.estimate.=NULL
mydata$Unemployment.male....of.male.labor.force...modeled.ILO.estimate.=NULL
mydata$Life.expectancy.at.birth.male..years.= NULL
mydata$Life.expectancy.at.birth.female..years. = NULL
str(mydata)
Full_model=lm(mydata$Fertility.rate.total..births.per.woman. + mydata$Immunization.DPT....of.children.ages.12.23.months. + mydata$Immunization.measles....of.children.ages.12.23.months. + mydata$Life.expectancy.at.birth.total..years. + mydata$Mortality.rate.under.5..per.1000.live.births. + mydata$Improved.sanitation.facilities....of.population.with.access. ~ mydata$Primary.completion.rate.female....of.relevant.age.group. + mydata$School.enrollment.primary....gross. + mydata$School.enrollment.secondary....gross. + mydata$School.enrollment.tertiary....gross. + mydata$Internet.users..per.100.people. + mydata$Primary.completion.rate.male....of.relevant.age.group. + mydata$Mobile.cellular.subscriptions..per.100.people. + mydata$Foreign.direct.investment.net.inflows..BoP.current.US.. + mydata$Unemployment.total....of.total.labor.force...modeled.ILO.estimate., data= mydata)
summary(Full_model) #this provides the …Run Code Online (Sandbox Code Playgroud) 我按照以下步骤绘制了带有一个断点的分段线性回归的结果,这是我通过segmented包完成的:
lin.mod <- lm(ChH~CL)
segmented.mod <- segmented(lin.mod, seg.Z=~CL)
data1 <- data.frame(x = CL, y = ChH)
data2 <- data.frame(x = CL, y = broken.line(segmented.mod)$fit)
ggplot(data1, aes(x = CL, y = ChH)) +
geom_point() +
geom_line(data = data2, color = 'blue')
Run Code Online (Sandbox Code Playgroud)
我得到这个图,它不显示带有断点的两行!我应该如何更改代码才能获得正确的绘图?
这是我的数据集:(ChH 有 11 个缺失数据)
CL <- c(9.26, 9.38, 9.41, 9.44, 9.52, 9.58, 9.74, 9.91, 10.03, 10.22,
10.23, 10.4, 10.92, 11.15, 11.38, 11.77, 11.79, 12, 12.45, 12.5,
12.54, 12.79, 12.98, 13.04, 13.04, 13.54, 14.26, 14.33, 14.4,
14.56, 14.77, …Run Code Online (Sandbox Code Playgroud) 我正在尝试训练一个非常简单的线性回归模型。
我的代码是:
from scipy import stats
xs = [[ 0, 1, 153]
[ 1, 2, 0]
[ 2, 3, 125]
[ 3, 1, 93]
[ 2, 24, 5851]
[ 3, 1, 524]
[ 4, 1, 0]
[ 2, 3, 0]
[ 2, 1, 0]
[ 5, 1, 0]]
ys = [1, 1, 1, 1, 1, 0, 1, 1, 0, 1]
slope, intercept, r_value, p_value, std_err = stats.linregress(xs, ys)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/stats/stats.py", line 3100, in linregress
ssxm, ssxym, ssyxm, ssym = …Run Code Online (Sandbox Code Playgroud) 我有一个DataFrame如下:
Ticker Date Close
0 ADBE 2016-02-16 78.88
1 ADBE 2016-02-17 81.85
2 ADBE 2016-02-18 80.53
3 ADBE 2016-02-19 80.87
4 ADBE 2016-02-22 83.80
5 ADBE 2016-02-23 83.07
Run Code Online (Sandbox Code Playgroud)
...等等。该Date列是问题。我正在尝试使用Date列获取列的线性回归Close:
ols1 = pd.ols(y=ADBE['Close'], x=ADBE['Date'], intercept=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: cannot astype a datetimelike from [datetime64[ns]] to [float64]
Run Code Online (Sandbox Code Playgroud)
我尝试了多种方法来消除此错误,例如:
dates_input = ADBE['Date'].values.astype('datetime64[D]')
dates_input = ADBE['Date'].values.astype('float')
Run Code Online (Sandbox Code Playgroud)
第二次dates_input尝试返回的类型为,pandas.core.series.Series但是我仍然收到错误消息。
有谁知道如何使Date列工作并摆脱此TypeError?
是否可以在 Julia 的 GLM 包中进行多项式回归?考虑到与 R 语法的相似性,我希望
fit(LinearModel, @formula(y ~ poly(x,5)), dataset)
Run Code Online (Sandbox Code Playgroud)
会起作用(用于拟合 5 次多项式)。它不是。
问题是找到具有两条线组成的折线的实值二维曲线(由点集给出)的最佳拟合。
一种蛮力方法是为曲线的每个点找到“左”和“右”线性拟合,并选择误差最小的对。我可以在迭代曲线的点时增量计算两个线性拟合,但我找不到增量计算误差的方法。因此,这种方法产生二次复杂度。
问题是是否有一种算法可以提供次二次复杂度?
第二个问题是是否有用于此类算法的方便的 C++ 库?
编辑 对于单线拟合,有公式:
m = (?xiyi - ?xi?yi/N) / (?xi2 - (?xi)2/N)
b = ?yi/N - m * ?xi/N
Run Code Online (Sandbox Code Playgroud)
其中m是斜率,b是线的偏移量。拥有这样一个拟合误差公式可以以最好的方式解决问题。
我想在 R studio 中应用调查权重进行线性回归。我已经看到可以使用该lm()函数来做到这一点,这使我能够指定我想要使用的权重。然而,也可以使用该函数来执行此svyglm()操作,该函数对调查设计对象中已按所需变量加权的变量进行回归。
从理论上讲,我认为这两个回归模型的结果没有理由不同,而且 beta 估计值是相同的。然而,每个模型中的标准误不同,导致不同的 p 值,从而导致不同的显着性水平。
哪种型号最合适?任何帮助将不胜感激。
这是 R 代码:
dat <- read.csv("https://raw.githubusercontent.com/LucasTremlett/questions/master/questiondata.csv")
model.weighted1 <- lm(DV~IV1+IV2+IV3, data=dat, weights = weight)
summary(model.weighted1)
dat.weighted<- svydesign(ids = ~1, data = dat, weights = dat$weight)
model.weighted2<- svyglm(DV~IV1+IV2+IV3, design=dat.weighted)
summary(model.weighted2)
Run Code Online (Sandbox Code Playgroud)