标签: t-test

为什么R的t检验函数存在错误和/或不一致的自由度?

我有一个简单的问题.我已经在R中看到了t检验和相关性的这种行为.

我做了一个简单的配对t检验(在这种情况下,两个长度为100的向量).所以配对t检验的df应该是99.但是这不是t检验结果输出中出现的.

dataforTtest.x <- rnorm(100,3,1)
dataforTtest.y <- rnorm(100,1,1)
t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)
Run Code Online (Sandbox Code Playgroud)

这个输出是:

Paired t-test

data:  dataforTtest.x and dataforTtest.y
t = 10, df = 100, p-value <2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.6 2.1
sample estimates:
mean of the differences 
                1.8 
Run Code Online (Sandbox Code Playgroud)

但是,如果我实际查看结果对象,则df是正确的.

> t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)[["parameter"]]

df 
99 
Run Code Online (Sandbox Code Playgroud)

我错过了一些非常愚蠢的东西吗?我正在运行R版本3.3.0(2016-05-03)

r rounding t-test

9
推荐指数
1
解决办法
759
查看次数

如何用置信区间解释数据点的上/下界?

给出一个值列表:

>>> from scipy import stats
>>> import numpy as np
>>> x = list(range(100))
Run Code Online (Sandbox Code Playgroud)

使用学生t检验,我可以找到分布的置信区间,其平均值为0.1(即置信度为90%):

def confidence_interval(alist, v, itv):
    return stats.t.interval(itv, df=len(alist)-1, loc=v, scale=stats.sem(alist))

x = list(range(100))
confidence_interval(x, np.mean(x), 0.1)
Run Code Online (Sandbox Code Playgroud)

[OUT]:

(49.134501289005009, 49.865498710994991)
Run Code Online (Sandbox Code Playgroud)

但是,如果我要在每个数据点找到置信区间,例如10:

>>> confidence_interval(x, 10, 0.1)
(9.6345012890050086, 10.365498710994991)
Run Code Online (Sandbox Code Playgroud)

如何解释值的区间?在统计上/数学上听起来完全可以理解吗?

它是否类似于:

置信度为90%,我们知道数据点10落在区间内(9.6345012890050086, 10.365498710994991),

又名.

置信度为90%,我们可以说数据点下降到10 + - 0.365 ......

那么我们可以将区间解释为某种类型的数据点盒形图吗?

python statistics scipy confidence-interval t-test

7
推荐指数
1
解决办法
1221
查看次数

如何使用 R 对两个回归的斜率进行韦尔奇 t 检验?

我对具有相同自变量的两组进行回归。然后,我想测试两个回归的斜率是否显着不同。

我读到,当两组之间的样本量和方差不相等时,建议进行韦尔奇 t 检验。我发现了这个t.test()功能,但是我没有在斜坡上应用它。

Data <- data.frame(
  gender = sample (c("men", "women"), 2000, replace = TRUE),
  var1 = sample (c("value1", "value2"), 2000, replace = TRUE),
  var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE),
  var3 = sample (c("valueY", "valueZ"), 2000, replace = TRUE),
  y = sample(0:10, 2000, replace = TRUE)
)
Run Code Online (Sandbox Code Playgroud)

我的两个回归:

lm.male <- lm(y ~ var1 + var2 + var3, data = subset(Data, gender == "men"))
summary(lm.male)

lm.women <- lm(y ~ var1 + var2 + var3, data …
Run Code Online (Sandbox Code Playgroud)

regression r linear-regression t-test

5
推荐指数
1
解决办法
2642
查看次数

根据组/类别执行多个配对t检验

我坚持在Rstudio中为多个类别执行t.tests.我希望得到每种产品类型的t.test的结果,比较在线和离线价格.我有800多种产品类型,因此不希望为每个产品组手动执行此操作.

我有一个数据帧(超过200万行)命名数据,如下所示:

> Product_type   Price_Online   Price_Offline   
1   A            48             37
2   B            29             22
3   B            32             40
4   A            38             36
5   C            32             27
6   C            31             35
7   C            28             24
8   A            47             42
9   C            40             36
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望R将t.test的结果写入另一个名为product_types的数据框:

    > Product_type   
    1   A           
    2   B            
    3   C          
    4   D          
    5   E         
    6   F            
    7   G            
    8   H            
    9   I            
   800 ...
Run Code Online (Sandbox Code Playgroud)

变为:

> Product_type   t         df       p-value   interval    mean of difference            
    1   A           
    2   B            
    3 …
Run Code Online (Sandbox Code Playgroud)

r t-test

5
推荐指数
2
解决办法
7589
查看次数

如何计算(统计)幂函数与python中的样本大小?

这怎么能在python中完成?

  1. 计算给定功率和 alpha 的样本大小?
  2. 计算给定样本量和 alpha 的功效?

注意: 我完全困惑:(python 为(统计)幂函数计算提供的函数。

有人可以帮我在这里下订单吗?

statsmodels下有两个函数:

from statsmodels.stats.power import ttest_power, tt_ind_solve_power()
Run Code Online (Sandbox Code Playgroud)

我们有:

tt_ind_solve_power(effect_size=effect_size, alpha=alpha, power=0.8, ratio=1, alternative='two-sided')
Run Code Online (Sandbox Code Playgroud)

我们还有:

ttest_power(0.2, nobs=sampleSize, alpha=alpha, alternative='two-sided')
Run Code Online (Sandbox Code Playgroud)

还有这样一段代码:

import statsmodels.stats.api as sms
es = sms.proportion_effectsize(prop1, prop2, method='normal')
n = sms.NormalIndPower().solve_power(es, power=0.9, alpha=0.05, ratio=2)
Run Code Online (Sandbox Code Playgroud)

我在某处找到了这个例子,但它没有解释什么是 prop1 和 prop2!

每一个都给了我不同的价值观。

谢谢

python statistics sample-size t-test

5
推荐指数
1
解决办法
8274
查看次数

R 和 Python 之间加权 t 检验的不同结果

我正在 Python 中运行加权 t 测试,但看到了不同的结果。看来问题是自由度计算。想了解为什么我看到不同的输出。

这是一些示例代码。

在 R 中:

library(weights)
x <- c(373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260)
y <- c(411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303)

weightsa = c(rep(1,8), rep(2,8))
weightsb = c(rep(2,8), rep(1,8))

wtd.t.test(x = x,
           y = y,
           weight = weightsa,
           weighty = weightsb, samedata=F)

$test [1] "Two Sample Weighted T-Test (Welch)"

$coefficients
    t.value          df     p.value 
-1.88907197 29.93637837  0.06860382 

$additional Difference     Mean.x     Mean.y   Std. Err   -80.50000 
267.12500  347.62500   42.61352
Run Code Online (Sandbox Code Playgroud)

在 Python 中:

import numpy as np
from statsmodels.stats.weightstats import ttest_ind
x = np.asarray([373,398,245,272,238,241,134,410,158,125,198,252,577,272,208,260])
y = np.asarray([411,471,320,364,311,390,163,424,228,144,246,371,680,384,279,303])

weightsa = …
Run Code Online (Sandbox Code Playgroud)

python r t-test

5
推荐指数
1
解决办法
728
查看次数

R t. 检验分组依据

我偶然发现了一个恼人的问题。我正在尝试一次执行多个独立样本 t 检验,并按值分组。

举个例子:我们在5个城市测量了男性和女性的工作满意度。对于每个主题,我们都知道他们的城市、性别和满意度得分。我们可以像这样对整个样本进行 t 检验:

t.test(Score ~ Gender, paired = FALSE)
Run Code Online (Sandbox Code Playgroud)

但是,我想对每个城市进行 t 检验,看看每个城市每个性别的平均工作满意度是否存在差异。我该怎么做呢?

statistics r t-test

5
推荐指数
1
解决办法
5627
查看次数

R:t测试2个数据帧的行

我有两个dataframes,我希望做就行独立的2组的t检验(即t.test(y1, y2),其中y1是在dataframe1行和y2被匹配dataframe2行)

什么是实现这一目标的最佳方式?

编辑:我刚刚找到格式:dataframe1 [i,] dataframe2 [i,].这将循环工作.这是最好的解决方案吗?

statistics r dataframe t-test

4
推荐指数
1
解决办法
3310
查看次数

对数据集中每行的列进行 t.test

我有一组数据x,由 12 列和 167 行组成。第一列是每行的复合 ID。我想t.test将 3 列作为一组运行,将其他 3 组作为第二组运行,每行分别运行。我的代码如下,但它不起作用。

for (i in 1:nrow(x)) {
 function(i)c(compound=i,
    t.test(x[2:4],x[8:10],
      x[x$compound==i, ],
      alternative='two.sided',conf.level=0.95)
    )
}
print(c(compound=i,t.test(x[2:4],x[8:10],x[x$compound==i,],
    alternative='two.sided',conf.level=0.95)))
Run Code Online (Sandbox Code Playgroud)

我的目的是t.test对 AC 组和 SC 组之间的每种代谢物(化合物)进行分析,这是两组细胞。

compound    AC-1     AC-2     AC-3     AM-1      AM-2      AM-3      SC-1     SC-2     SC-3     SM-1      SM-2      SM-3
alanine     27612820 22338050 15359640 19741350  18726880  18510800  10914980 12071660 16036180 16890860  16066960  16364300
arginine    7067206  7172234  5933320  136272600 131596800 134717600 6102838  7186256  6770344  140127100 155341300 151748000
asparagine  3151398  2141378  1240904  11522180  8907711 …
Run Code Online (Sandbox Code Playgroud)

statistics r dataframe hypothesis-test t-test

3
推荐指数
1
解决办法
2万
查看次数

如何在 python 中对两个 np.array 执行两个样本大小不等的 t 检验?

我有两个不同大小的 numpy 数组,我想直接在 python 中运行 t 测试来查看 p 值。

python statistics numpy p-value t-test

2
推荐指数
1
解决办法
2693
查看次数

在R中使用不相等的样本量运行两次样本t.test

我正在尝试进行两个样本的t检验,以了解治疗组和对照组之间的差异。数据未配对。当我对原始数据帧进行子集处理时,我发现样本大小不相等(不是一个手工问题,但是R似乎使它成为问题)。这是我的代码:

CG<-subset(data,treat=="Control")
TG<-subset(data,treat!="Control")
agep <-t.test(CG$age~TG$age)$p.value
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

Error in model.frame.default(formula = CG$age ~ TG$age) : 
variable lengths differ (found for 'TG$age')
Run Code Online (Sandbox Code Playgroud)

是! 长度确实不同。如果我没有进行配对测试,不确定为什么会出问题吗?在此先感谢您的帮助。

r t-test

1
推荐指数
1
解决办法
4271
查看次数